Skip to content

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.

Read and write global Rotifer configuration. Settings are stored per-user and apply to every project on the machine.

Terminal window
rotifer config <subcommand>

Show every configuration value currently set.

Terminal window
rotifer config list
Configuration
───────────────
update-check: true

Read a single value.

Terminal window
rotifer config get <key>
ArgumentRequiredDescription
keyYesConfiguration key to read
Terminal window
rotifer config get update-check

Write a single value.

Terminal window
rotifer config set <key> <value>
ArgumentRequiredDescription
keyYesConfiguration key to write
valueYesNew value
Terminal window
rotifer config set update-check false
KeyMeaning
update-checkWhether 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-versionThe version last seen by the update check. Maintained by the CLI; you rarely set this by hand.
default-publishDefault target used by rotifer publish when none is given.

Check whether a newer Rotifer release is available and upgrade to it.

Terminal window
rotifer self-update [options]

Options:

FlagDescription
--rollbackReturn to the previously installed version instead of upgrading. Use this if an upgrade turns out to break something.
Terminal window
# Check and upgrade
rotifer self-update
# Undo the last upgrade
rotifer self-update --rollback

Show or change the anonymous usage heartbeat.

Terminal window
rotifer telemetry [status|on|off]
CommandWhat it does
rotifer telemetry statusShow whether the heartbeat is on, and why. Plain rotifer telemetry does the same.
rotifer telemetry onTurn the heartbeat on.
rotifer telemetry offTurn 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=1 turns it off, and wins over everything else.
  • ROTIFER_TELEMETRY=0 (or false, off) turns it off. Any other non-empty value turns it on, even if you stored off.

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:

Terminal window
$ 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.