Configuration & Updates
Three commands manage the CLI itself rather than any Gene: rotifer config for
global settings, rotifer self-update for staying current, and
rotifer telemetry for the anonymous usage heartbeat.
rotifer config
Section titled “rotifer config”Read and write global Rotifer configuration. Settings are stored per-user and apply to every project on the machine.
rotifer config <subcommand>rotifer config list
Section titled “rotifer config list”Show every configuration value currently set.
rotifer config listConfiguration───────────────update-check: truerotifer config get
Section titled “rotifer config get”Read a single value.
rotifer config get <key>| Argument | Required | Description |
|---|---|---|
key | Yes | Configuration key to read |
rotifer config get update-checkrotifer config set
Section titled “rotifer config set”Write a single value.
rotifer config set <key> <value>| Argument | Required | Description |
|---|---|---|
key | Yes | Configuration key to write |
value | Yes | New value |
rotifer config set update-check false| Key | Meaning |
|---|---|
update-check | Whether the CLI checks for a newer release in the background. Set to false to disable the check entirely — useful on CI or offline machines. |
last-version | The version last seen by the update check. Maintained by the CLI; you rarely set this by hand. |
default-publish | Default target used by rotifer publish when none is given. |
rotifer self-update
Section titled “rotifer self-update”Check whether a newer Rotifer release is available and upgrade to it.
rotifer self-update [options]Options:
| Flag | Description |
|---|---|
--rollback | Return to the previously installed version instead of upgrading. Use this if an upgrade turns out to break something. |
# Check and upgraderotifer self-update
# Undo the last upgraderotifer self-update --rollbackrotifer telemetry
Section titled “rotifer telemetry”Show or change the anonymous usage heartbeat.
rotifer telemetry [status|on|off]| Command | What it does |
|---|---|
rotifer telemetry status | Show whether the heartbeat is on, and why. Plain rotifer telemetry does the same. |
rotifer telemetry on | Turn the heartbeat on. |
rotifer telemetry off | Turn telemetry off: the heartbeat and, when you are signed in, the invocation report. Nothing is sent afterwards, not even an opted-out notice. |
What is sent: a random machine ID, the channel (cli), the CLI version, and a count of one. No code, no gene names, no account. The heartbeat is on by default; the first time it is sent, the CLI prints a one-line notice on stderr saying so and how to turn it off.
Where your choice is stored: ~/.rotifer/telemetry.json, readable only by your user.
What overrides it: environment variables in the current shell beat the stored choice.
DO_NOT_TRACK=1turns it off, and wins over everything else.ROTIFER_TELEMETRY=0(orfalse,off) turns it off. Any other non-empty value turns it on, even if you storedoff.
When you are signed in, the CLI also reports each gene invocation, and so does the MCP server. Every switch above stops that report too: rotifer telemetry off, ROTIFER_TELEMETRY=0 and DO_NOT_TRACK=1 each stop both the heartbeat and the invocation report, in the CLI and in the MCP server, which read the same ~/.rotifer/telemetry.json. In CLI 0.30.1 and MCP server 0.19.4 and earlier, rotifer telemetry off stopped only the heartbeat; set one of the environment variables there.
Example:
$ rotifer telemetry status Telemetry ─────────── Anonymous heartbeat: on Reason: on — default (ADR-329); nobody has chosen otherwise yet Machine ID: 3f1c2b7e-…
ℹ `rotifer telemetry off` / ROTIFER_TELEMETRY=0 / DO_NOT_TRACK=1 all disable it.
$ rotifer telemetry off Anonymous usage heartbeat: off Nothing is sent — not even an opted-out notice.status names one of five reasons: the environment turned it off, the environment turned it on, your stored choice (off or on), or the default.