Usage data

The sim CLI reports anonymous usage data so the team can see which commands are used, which fail, and how long they take. Reporting is on by default and takes one command to turn off.

What is sent

One event per command, after the command finishes:

FieldExampleNotes
Commandworkflows listThe command's name, never its arguments
Flags--output, --workspaceFlag names only, never their values
Argument count1How many positional arguments, never what they were
Outcomeexit code 0, SimApiError, HTTP 404, API code NOT_FOUNDNever an error message
Duration1432 msFrom process start to completion
CLI, Node, OS, CPU2.1.2, 22.14.0, darwin, arm64
Terminal and CIis_tty, is_ciWhether stdout is a terminal, whether a CI variable is set
Coding agentclaude-codeWhen the CLI runs inside an AI coding agent's shell
Deployment kindhosted or self_hostedNever the address
Device and session idsrandom UUIDsSee below

What is never sent

Nothing you type. No argument values, flag values, file paths, workflow or workspace ids, error messages, environment variable values, credentials, or the address of the deployment you talk to. The report leaves your machine from a separate short-lived process that is not given your API key.

Identity

The first run mints a random device id and stores it in telemetry.json under ~/.sim (or SIM_CONFIG_DIR). It is not derived from your hardware, account, or network. Commands run within thirty minutes of each other share a session id and are numbered, so a sequence of commands can be read back. No profile is created for the device, and the data is not joined to your Sim account.

Deleting telemetry.json forgets the device id and shows the first-run notice again.

Turning it off

Any of these turns reporting off. The first one that applies is the one sim telemetry status names.

export DO_NOT_TRACK=1            # the cross-tool convention, honoured before anything else
export SIM_TELEMETRY_DISABLED=1  # this CLI only, for one shell or CI job
sim telemetry disable            # this machine, saved in telemetry.json

sim telemetry enable reverses the saved setting. sim telemetry status shows the current state.

Turning reporting off also stops the CLI from telling the API which coding agent, if any, is driving it. The CLI still identifies itself as the CLI on every request, the way every official client does; that is how a request is attributed, not usage data.

The first-run notice

The first time the CLI would report from an interactive terminal it prints a short notice on stderr and does not report that run. The notice is not shown in CI or when stderr is redirected, and it is shown once per device.

Self-hosted deployments

Reporting is tied to the CLI build, not to the deployment it talks to. The published sim package reports to Sim. A build made from the repository without SIM_CLI_TELEMETRY_KEY set has no destination and reports nothing; setting it to your own PostHog project token at build time reports to your own project.