Six tenants, one lease
Work, personal, client — each profile holds its own Claude, Codex, Grok, Gemini, Cursor and opencode login. Switch them together, or pin one at a time. A macOS menu bar app and a small CLI.
One profile
Many labs
Your environment
01 — The model
agents use Work moves Claude, Codex and Grok in one step — instead of switching each tool by hand and hoping you got them all.
~/.n2-agents/ Work/ claude/ → CLAUDE_CONFIG_DIR codex/ → CODEX_HOME grok/ → GROK_HOME Personal/ claude/ codex/ Client/ claude/ codex/ grok/
Each slot is a real config directory, so two profiles can be signed in to the same lab at once.
claude-work, codex-personal and grok-client are executables, not shell functions — editors, GUI apps and scripts get them too.
agents adopt symlinks existing claudes profiles in rather than copying them, so nothing has to re-login.
02 — Isolation
Which tier a lab gets isn't a preference. It's whatever that CLI actually supports — verified against the shipped binary rather than taken from its documentation.
The CLI reads a config-dir environment variable, so two profiles run side by side — and a running session keeps its profile no matter what you switch to later.
No such variable exists, so the only lever is swapping the dot-dir symlink. agents run refuses to start a swap lab as a non-active profile unless you pass --switch — because that's a side effect you should see coming.
04 — The CLI
agents is the authoritative implementation — the menu bar is a reader of it. Tab completion ships for zsh, bash and fish.
05 — Supported labs
| Lab | CLI | Config home | Isolation | Desktop app | Usage API | Sessions |
|---|---|---|---|---|---|---|
| Claude | claude | ~/.claude | ENV | cloned per profile | YES | YES |
| Codex | codex | ~/.codex | ENV | codex app | — | YES |
| Grok | grok | ~/.grok | ENV | — | — | — |
| Cursor | cursor-agent | ~/.cursor | ENV | — | — | — |
| opencode | opencode | ~/.config/opencode | ENV | — | — | — |
| Gemini | gemini | ~/.gemini | SWAP | — | — | — |
06 — Move in
curl -fsSL https://raw.githubusercontent.com/noisyneighborstudio/n2-agents/main/install.sh | zsh