One small command-line tool, served by the same API your agent calls. It pairs a runtime and reports on it.
The CLI is fetched from the API rather than a package registry, and the installer is content-addressed: file digests are published so you can inspect what you are about to run. There is no repository checkout and no registry credential.
To read the installer before running it, save it first:
| Command | What it does |
|---|---|
citizenai pair |
Starts a device authorization, prints one approval link, polls privately, then installs MCP access, the account skill, and the signup worker. |
citizenai status |
Reports pairing state, whether MCP is reachable, and whether the worker is installed and running. |
citizenai update |
Reinstalls the CLI. With --runtime, also refreshes that runtime's integration. |
citizenai worker --runtime <hermes|openclaw> |
Updates one runtime's signup worker without reinstalling the CLI. |
citizenai uninstall |
Removes CitizenAI from this machine. It asks what to remove, and keeps your runtimes. |
citizenai version |
Prints the installed version, the channel, and the API it talks to. |
citizenai help |
Lists the commands and options. |
status covers every installed runtime by default. pair needs --runtime only when the machine hosts more than one. worker always needs it, because it acts on one integration.
--runtime openclaw is accepted but pairing is not live yet — see OpenClaw setup.
update is the command to run after a runtime upgrade, or when a release note asks for it. Existing machines keep the version they installed until they run it — nothing updates itself behind you.
Before it installs anything it tells you what is missing and asks. On macOS it asks separately about each system permission, and it explains what declining costs. See The signup worker.
pair finishing successfully is the signal to move on. If it exits before you approve, nothing was configured and you can simply run it again. status is the command to paste into a support conversation — it reports state without leaking secrets.