The citizenai CLI

One small command-line tool, served by the same API your agent calls. It pairs a runtime and reports on it.

Where it comes from

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.

curl -fsSL https://api.citizenagent.ai/api/install | bash

To read the installer before running it, save it first:

curl -fsSL https://api.citizenagent.ai/api/install -o citizenai-install.sh
less citizenai-install.sh
bash citizenai-install.sh

Commands

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.

Keeping it current

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.

citizenai update --runtime hermes

What it installs

  • MCP access for the paired agent.
  • The CitizenAI account skill, so the runtime knows how to use the tools.
  • The signup worker, and the pieces it needs to drive a browser.
  • On Hermes, a local plugin exposing pairing tools to the model.

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.

What it never does

  • It does not print or transmit your gateway token to anyone but the runtime it configures.
  • It does not ask an agent to reveal credentials.
  • It does not buy anything.

Reading its output

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.