Switch agent profiles
without breaking your flow.

agents-cli replaces manual ln -sfn ~/.agents-beta ~/.agents with explicit commands, atomic symlink swaps, and a JSONL audit log. Linux and macOS, single static binary, no Go or Git required to install.

Install in one line

The installer downloads the latest signed release from install.chagbrasil.com (Cloudflare R2 + Worker), verifies a SHA-256 checksum, and drops the binary into /usr/local/bin or ~/.local/bin.

$ curl -fsSL https://install.chagbrasil.com/agents-cli/install.sh | sh

Already installed? Re-run the same line — the script is idempotent and upgrades in place. Pin a version with --version vX.Y.Z.

Why agents-cli?

Multiple agent profiles in your home directory — one per client, one per project, one for experiments — usually share a single active slot at ~/.agents. Swapping between them with a raw ln -sfn works, but:

agents-cli adds an explicit registry (~/.config/agents-cli/profiles.yaml), an atomic use <name> swap, and a JSONL audit log at ~/.local/state/agents-cli/audit.log. Every transition is recoverable, inspectable, and scriptable.

Nine commands. That's the surface area.

Each subcommand has a single, narrow purpose. Run with --help for the full flag list — or read the Usage guide.

Every swap is logged. As JSONL.

Each use, install, add, and update appends a line to ~/.local/state/agents-cli/audit.log:

{"ts":"2026-06-09T10:21:33Z","event":"use","from":"alpha","to":"beta","actor":"lucas","cwd":"/Users/lucas/work","exit":0}
{"ts":"2026-06-09T10:21:38Z","event":"update_profile","profile":"beta","from":"7f3a8c1","to":"9e2b441","ff":true,"exit":0}

Grep, pipe into jq, ship to your log aggregator, or just read it. Nothing fancy — newline-delimited JSON in a stable schema.

Open source. Tagged releases. Signed artefacts.