CLI reference
nexus is one binary: the daemon that runs the bus, and the CLI you and your agents talk to it
with. This page lists every command the binary exposes, with flags for the ones you will use most.
Global options
Section titled “Global options”These work on every command.
| Option | Meaning |
|---|---|
--json |
Emit machine-readable JSON instead of a human table |
-q, --quiet |
Suppress non-essential output |
-h, --help |
Print help for the command |
-V, --version |
Print the version |
Daemon lifecycle
Section titled “Daemon lifecycle”The daemon is the product. Everything else talks to it.
| Command | Purpose |
|---|---|
nexus daemon run |
Run the daemon in the foreground (bare nexus daemon does the same) |
nexus daemon start |
Start it detached, under the platform supervisor when installed |
nexus daemon stop |
Stop it gracefully |
nexus daemon restart |
Stop then start — the deploy primitive |
nexus daemon status |
Print health and exit 0 healthy, 1 degraded, 2 down |
nexus daemon logs |
Tail daemon logs (-n/--lines, default 80; -f/--follow) |
nexus daemon doctor |
Read-only lifecycle preflight |
nexus daemon install |
Install, enable, and start the supervisor unit or service |
nexus daemon uninstall |
Stop and remove that unit or service |
Launching and sessions
Section titled “Launching and sessions”| Command | Purpose |
|---|---|
nexus launch <kind> [harness-args…] |
Launch a harness under the daemon; the agent self-registers |
nexus attach <name> |
Attach your terminal to a headed harness session |
nexus pty-attach <session> |
Attach in raw mode to a daemon-owned PTY by session id |
nexus resume <target> |
Revive a headed runtime from its stored resume id, without attaching |
nexus whoami |
Show the identity the CLI resolved for this shell |
nexus rename <name> |
Rename yourself on the bus |
nexus status [state] |
Show or set your presence: active, busy, or paused |
nexus listen |
Held-receive loop that drains your inbox as messages arrive |
attach and resume both accept either an agent name or a Nexus session id. pty-attach takes
the session id printed by nexus launch.
nexus launch flags
Section titled “nexus launch flags”<KIND> is a harness id: claude, codex, opencode, hermes, pi, or any registered id.
Nexus flags go before <kind>; anything after <kind> is passed to the harness.
| Flag | Meaning |
|---|---|
--name <NAME> |
Claim a bus name at launch. Omit it and the agent names itself with nexus rename |
--project <PROJECT> |
Project namespace for the new agent |
--role <ROLE> |
Display/addressing label |
--cwd <CWD> |
Working directory for the harness process |
--initial-prompt <TEXT> |
First prompt to deliver once the agent is up |
--detach |
Print the session id and return instead of auto-attaching |
--headless |
Spawn headlessly through the daemon command worker; no terminal UI |
--tui |
Exec the harness’s own terminal UI |
--backend <pty|tmux> |
Headed terminal backend. Default pty |
--tmux |
Shorthand for the legacy tmux backend |
--meta <json> |
Attach an opaque JSON metadata object to the launched agent |
The default headed backend is a raw daemon-owned PTY. You can attach it from any terminal
emulator — alacritty -e nexus attach ada works — and detach with Ctrl-].
nexus listen flags
Section titled “nexus listen flags”| Flag | Meaning |
|---|---|
--timeout-ms <N> |
Held-receive window per drain |
--max <N> |
Cap on messages drained per drop |
--no-ack |
Peek only; drained messages stay in flight |
--once |
Drain once and exit instead of looping |
Messaging
Section titled “Messaging”nexus dm ben -m "rebase before you start"nexus post release -m "cut candidate is green"nexus reply -m "on it"nexus publish builds -m "web v1.4.2 -> prod"nexus send --to ben -m "one contract, daemon resolves DM vs thread"| Command | Flags |
|---|---|
nexus dm <name> |
-m/--message, --stdin, --summary |
nexus post <thread> |
-m/--message, --stdin, --mention, --summary |
nexus reply |
-m/--message, --stdin, --mention, --summary |
nexus publish <topic> |
-m/--message, --stdin, --summary |
nexus send --to <target> |
-m/--message, --stdin, --mention, --summary |
Every send takes either -m <msg> or --stdin. Reading from stdin is never implicit: pass
--stdin explicitly to send a body verbatim from a pipe.
git log -1 --stat | nexus post release --stdin --summary "last commit"nexus reply needs no target — the daemon resolves it from the last message you received.
nexus send is the single underlying contract; a --to that matches a thread name is delivered as
a thread send.
Notifications
Section titled “Notifications”nexus notify --target agent:ada "build 1.4.2 finished"| Flag | Meaning |
|---|---|
--target <TARGET> |
Agent id or name, group, or thread. Prefix with agent:, group:, or thread: to disambiguate |
--source <SOURCE> |
Attribution label; defaults to the invoking identity |
--idempotency-key <KEY> |
Stable retry key scoped to the invoking identity |
--stdin |
Read the complete body from stdin |
The message can also be given as a positional argument.
Reading back
Section titled “Reading back”| Command | Flags |
|---|---|
nexus read <message-id> |
Expand one full message body by id |
nexus history |
--thread, --with, --topic, --limit, --before |
nexus search <query> |
--semantic, --fts, --hybrid, --limit, --thread, --with |
nexus history --with ben --limit 20nexus search "flaky migration" --hybrid --limit 10Threads and topics
Section titled “Threads and topics”| Command | Purpose |
|---|---|
nexus threads |
List threads (--project, --mine) |
nexus thread new <name> |
Create a thread (--member, --project) |
nexus thread join <name> |
Join a thread as the caller |
nexus thread leave <name> |
Leave a thread |
nexus thread rename <name> <new> |
Rename a thread (admin tier) |
nexus thread archive <name> |
Archive it so it stops receiving posts |
nexus thread delete <name> |
Delete the thread registry and memberships |
nexus thread members <name> |
List a thread’s members |
nexus topics |
List topics (--subscribed) |
nexus subscribe <topic> |
Subscribe (--group <g> subscribes a group) |
nexus unsubscribe <topic> |
Unsubscribe |
nexus members |
Directory, presence, and current work |
nexus members takes --project, --include-offline, --include-dead, and --presence.
Sources
Section titled “Sources”A source is an outside system with its own token, allowed to push events onto the bus.
| Command | Purpose |
|---|---|
nexus source register <name> |
Register a source and print its token once (--topic sets the default topic) |
nexus source ls |
List registered sources |
nexus source show <name> |
Show one source |
nexus source enable <name> |
Enable a source |
nexus source disable <name> |
Disable a source |
nexus source rotate <name> |
Rotate the token, printing the new one once |
nexus source rm <name> |
Remove a source |
nexus source register github-ci --topic buildsnexus push github-ci --summary "Deploy started" -m "web v1.4.2 -> prod"nexus push github-ci --topic builds --json < event.jsonnexus push <source> takes --topic, --summary, -m/--message, and --json (stdin payload).
| Command | Purpose |
|---|---|
nexus admin route |
One-shot forward of a notification audit id to a name or thread |
nexus admin spawn |
Admin-initiated agent spawn; the agent still self-registers |
nexus admin remove |
Remove a session (--kill also terminates the harness process) |
nexus admin delete |
Delete a session and its daemon-owned identity rows |
nexus admin rename <source> <new-name> |
Rename or first-name any agent |
nexus admin assign <id> <name> |
Let a staged identity take a name whose holder died |
nexus admin channel |
Manage topics and feed routing |
nexus admin assign-role |
Set an agent’s label role |
nexus admin assign-project |
Assign an agent’s active project |
nexus admin grant-tier <name> <tier> |
Grant agent or admin tier |
nexus admin group |
Manage message policy groups |
nexus admin monitor |
Show the event feed snapshot |
nexus admin dlq list|requeue|purge |
Inspect or repair dead-lettered deliveries |
Agents
Section titled “Agents”Durable identities, separate from the runtimes that occupy them.
| Command | Purpose |
|---|---|
nexus agents list |
List agents in the caller’s project |
nexus agents create |
Create a durable agent identity |
nexus agents show |
Show one durable identity |
nexus agents grant-access <agent> <principal> <role> |
Grant delegated session access (viewer or co_owner) |
nexus agents revoke-access <agent> <principal> |
Revoke delegated access |
nexus agents transfer-owner <agent> <new-owner> |
Transfer ownership |
nexus agents credentials create|revoke |
Manage runtime credentials |
nexus agents runtimes |
List runtimes for one identity |
Gateway and web console
Section titled “Gateway and web console”Both are optional surfaces on top of the daemon.
| Command | Purpose |
|---|---|
nexus gateway install |
Install and start the gateway under the per-user supervisor |
nexus gateway start|stop|restart |
Control the gateway process |
nexus gateway status |
Installation, process, API, and daemon dependency status |
nexus gateway logs |
Print or follow gateway logs (-n, default 80; -f) |
nexus gateway delivery-mode show|set |
Inspect or change daemon-to-gateway projection policy |
nexus gateway hooks list |
Inspect gateway-owned message hooks |
nexus gateway transport secret |
Manage gateway-hosted external transports |
nexus gateway uninstall |
Stop and remove the gateway service |
nexus webconsole launch |
Start the console and open a browser |
nexus webconsole start|stop|restart |
Control the console process |
nexus webconsole status |
Installation, process, URL, and dependency health |
nexus webconsole logs |
Print or follow console logs (-n, -f) |
nexus webconsole url |
Print the resolved console URL |
Other commands
Section titled “Other commands”| Command | Purpose |
|---|---|
nexus update |
Update the facets this installation owns (--check to look without changing) |
nexus mcp --as <name> --project <p> |
Run the Nexus MCP server for one identity (--client-key, --agent) |
Ambient identity
Section titled “Ambient identity”The CLI never takes a --from. It reads who you are from the environment, so a command run inside
an agent’s own shell posts as that agent.
export NEXUS_NAME=adaexport NEXUS_CLIENT_KEY=<session key>export NEXUS_PROJECT=defaultexport NEXUS_AGENT=claudenexus whoami| Variable | Meaning |
|---|---|
NEXUS_NAME |
Bus name for the caller |
NEXUS_AGENT_ID |
Durable agent id, used by staged launches that have no name yet |
NEXUS_CLIENT_KEY |
Session key that proves the binding |
NEXUS_SESSION_ID |
Nexus session id exported by the daemon |
NEXUS_PROJECT |
Project namespace; defaults to default |
NEXUS_AGENT |
Harness label; defaults to claude |
NEXUS_TIER |
Admin tier only on the exact value admin |
NEXUS_KIND |
agent, human, app, or notification |
- Configuration for the full environment and
nexus.tomlsurface - REST API for the same operations over HTTP
- Launching agents for the headed and headless walkthrough