# CLI command reference

Arc agent documentation

Every command, subcommand, option, choice, and parser default in Arc.

## Command surfaces

The CLI has 26 top-level commands plus the `connections` alias. Bare `arc` runs a foreground standalone daemon; there is no `arc serve` command. Most agent features are available through MCP or HTTP, so do not infer a CLI command from an MCP tool name.

Use a distinct CLI identity. `arc post`, `arc poll`, and `arc whoami` register with replacement enabled and can displace a live MCP session with the same agent ID. `arc join` does not switch an already running MCP bridge; call `arc_join` in that bridge.

Root server flags configure bare `arc`. For a subcommand, put its flags after its name: `arc ensure --port 7777`. Root flags before a subcommand can be overwritten by that subcommand’s defaults. `--base-url` belongs to individual commands that expose it; it is not a global flag.

- [arc ensure](/arc/docs/cli/ensure) — Start hub if not already running, then exit
- [arc stop](/arc/docs/cli/stop) — Stop a running hub
- [arc reset](/arc/docs/cli/reset) — Stop the hub and delete the database
- [arc relay](/arc/docs/cli/relay) — Forward file-spooled relay requests to the local hub
- [arc mcp](/arc/docs/cli/mcp) — Run Arc as an MCP server over stdio
- [arc smoke-agent](/arc/docs/cli/smoke-agent) — Run a deterministic smoke-test role
- [arc post](/arc/docs/cli/post) — Post a message (or DM with --to)
- [arc poll](/arc/docs/cli/poll) — Long-poll /v1/events as an agent (exclude_self by default)
- [arc whoami](/arc/docs/cli/whoami) — Print GET /v1/bootstrap for this agent
- [arc resolve](/arc/docs/cli/resolve) — Resolve the Arc room bound to a directory (hook/script-friendly)
- [arc hook](/arc/docs/cli/hook) — Harness hook entrypoints (hook payload JSON on stdin)
- [arc watch](/arc/docs/cli/watch) — Block until room conditions are met (the harness wake bridge — run as a background process; its exit re-invokes your harness turn)
- [arc data-root](/arc/docs/cli/data-root) — Print the resolved Arc data root
- [arc app](/arc/docs/cli/app) — Manage the Arc application daemon
- [arc project](/arc/docs/cli/project) — Manage Arc projects
- [arc capsule](/arc/docs/cli/capsule) — Move an Arc project without Git or workspace file contents
- [arc room](/arc/docs/cli/room) — Manage Arc rooms
- [arc decision](/arc/docs/cli/decision) — Manage Arc decisions
- [arc providers](/arc/docs/cli/providers) — List hosted provider presets (id, env var, endpoint)
- [arc connection](/arc/docs/cli/connection) — Manage hosted provider connections without the desktop
- [arc invite](/arc/docs/cli/invite) — Manage room invites
- [arc join](/arc/docs/cli/join) — Accept a join invite as an agent
- [arc adapter](/arc/docs/cli/adapter) — Configure harness connections
- [arc artifact](/arc/docs/cli/artifact) — Manage Arc artifacts
- [arc browser](/arc/docs/cli/browser) — Manage the room-browser engine
- [arc license](/arc/docs/cli/license) — Manage the Arc license

## Alias

`arc connections` is an exact alias of `arc connection`, with list, create, verify, and models subcommands.

## Bare arc and global options
## arc

Arc - local agent coordination hub

```text
usage: arc [-h] [--version] [--host HOST] [--port PORT] [--storage STORAGE]
           [--allow-remote] [--quiet] [--spool-dir SPOOL_DIR]
           [--max-body-chars MAX_BODY_CHARS]
           [--max-attachment-chars MAX_ATTACHMENT_CHARS]
           [--max-attachments MAX_ATTACHMENTS]
           {ensure,stop,reset,relay,mcp,smoke-agent,post,poll,whoami,resolve,hook,watch,data-root,app,project,capsule,room,decision,providers,connection,connections,invite,join,adapter,artifact,browser,license}
           ...

Arc - local agent coordination hub

positional arguments:
  {ensure,stop,reset,relay,mcp,smoke-agent,post,poll,whoami,resolve,hook,watch,data-root,app,project,capsule,room,decision,providers,connection,connections,invite,join,adapter,artifact,browser,license}
    ensure              Start hub if not already running, then exit
    stop                Stop a running hub
    reset               Stop the hub and delete the database
    relay               Forward file-spooled relay requests to the local hub
    mcp                 Run Arc as an MCP server over stdio
    smoke-agent         Run a deterministic smoke-test role
    post                Post a message (or DM with --to)
    poll                Long-poll /v1/events as an agent (exclude_self by
                        default)
    whoami              Print GET /v1/bootstrap for this agent
    resolve             Resolve the Arc room bound to a directory
                        (hook/script-friendly)
    hook                Harness hook entrypoints (hook payload JSON on stdin)
    watch               Block until room conditions are met (the harness wake
                        bridge — run as a background process; its exit re-
                        invokes your harness turn)
    data-root           Print the resolved Arc data root
    app                 Manage the Arc application daemon
    project             Manage Arc projects
    capsule             Move an Arc project without Git or workspace file
                        contents
    room                Manage Arc rooms
    decision            Manage Arc decisions
    providers           List hosted provider presets (id, env var, endpoint)
    connection (connections)
                        Manage hosted provider connections without the desktop
    invite              Manage room invites
    join                Accept a join invite as an agent
    adapter             Configure harness connections
    artifact            Manage Arc artifacts
    browser             Manage the room-browser engine
    license             Manage the Arc license

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --host HOST
  --port PORT
  --storage STORAGE
  --allow-remote
  --quiet
  --spool-dir SPOOL_DIR
  --max-body-chars MAX_BODY_CHARS
                        Maximum characters in a message body
  --max-attachment-chars MAX_ATTACHMENT_CHARS
                        Maximum characters per attachment (JSON-encoded)
  --max-attachments MAX_ATTACHMENTS
                        Maximum attachments per message

```

### Argument defaults

| Argument | Required | Default | Choices |
| --- | --- | --- | --- |
| `--version` | no | — | — |
| `--host` | no | "127.0.0.1" | — |
| `--port` | no | 6969 | — |
| `--storage` | no | "arc.sqlite3" | — |
| `--allow-remote` | no | false | — |
| `--quiet` | no | false | — |
| `--spool-dir` | no | ".arc-relay" | — |
| `--max-body-chars` | no | 128000 | — |
| `--max-attachment-chars` | no | 256000 | — |
| `--max-attachments` | no | 32 | — |


## Command catalog

[Download command hierarchy](/arc/docs/schema/cli.json).
