Daemon
The daemon is Anode as a long-running process. Start work in the background, list it, attach to it, or stream its events over HTTP.
Default Unix socket:
anode daemonDefault socket path:
~/.config/anode/daemon.sockTCP address:
anode daemon --addr 127.0.0.1:7433Unix socket path:
anode daemon --addr /tmp/anode.sockManage Runs From The CLI
Section titled “Manage Runs From The CLI”anode runs listanode runs list --limit 10anode runs start "investigate flaky tests"anode runs start --profile study --model openai/gpt-5.5 --max-turns 10 --approval auto "summarize failures"anode attach <run-id>anode attach --stream-json <run-id>anode runs cancel <run-id>Use a non-default daemon:
anode runs list --daemon 127.0.0.1:7433anode attach <run-id> --daemon 127.0.0.1:7433runs start sends prompt, profile, model, max_turns,
approval_mode, and run_label to the daemon.
Use --limit <n> to return at most n runs; 0 means all runs.
HTTP API
Section titled “HTTP API”Endpoints:
| Method | Path | Use |
|---|---|---|
GET | /health | Health check and active run count. |
POST | /runs | Start a run. |
GET | /runs | List runs, newest first. |
GET | /runs/{id} | Get one run summary. |
GET | /runs/{id}/events | Stream run events with SSE. |
DELETE | /runs/{id} | Cancel a run. |
Start A Run
Section titled “Start A Run”curl -sS -X POST http://127.0.0.1:7433/runs \ -H "Content-Type: application/json" \ -d '{ "prompt": "summarize this repository", "profile": "craft", "model": "anthropic/claude-sonnet-4-6", "max_turns": 20, "approval_mode": "auto", "run_label": "summary" }'Response:
{"run_id":"R-1760000000000000000_1"}prompt is required. profile defaults to craft. approval_mode can be
empty, ask, auto, or unrestricted; yolo is an alias for
unrestricted.
List Runs
Section titled “List Runs”curl -sS http://127.0.0.1:7433/runsEach summary includes id, status, profile, label, prompt,
started_at, optional ended_at, and final result fields when available.
Stream Events
Section titled “Stream Events”curl -N http://127.0.0.1:7433/runs/<run-id>/eventsThe endpoint first replays buffered events, then streams new events while the
run is active. Each SSE message has a JSON RunEvent in its data: line.
Cancel
Section titled “Cancel”curl -sS -X DELETE http://127.0.0.1:7433/runs/<run-id>The response is:
{"status":"canceled"}Behavior
Section titled “Behavior”- Runs live in daemon memory. Restarting the daemon loses the daemon run list.
- The run itself still uses normal Anode config, providers, permissions, tools, hooks, plugins, MCP, and session storage.
attachworks for running and completed runs as long as the daemon still has the run in memory.- The daemon does not expose a separate review endpoint. Use
anode reviewfor review mode, or start a normal daemon run with a review-style prompt/profile.
Keep going: