Reference
API Endpoints Reference
The daemon HTTP API, grouped by resource.
The daemon exposes a loopback HTTP API (127.0.0.1:3001 by default, DAEMON_HOST / DAEMON_PORT to override). The Tauri UI reaches it through the shell proxy; tools and scripts can call it directly from the same machine.
Responses are JSON. Collections are wrapped as { "data": [...] } or { "entries": [...], "total": n, "count": n } depending on the route.
| Method | Path | Purpose |
|---|
| GET | /api/health, /health | { status, timestamp, storageMode, aiProvider, aiModel } |
| GET | /api/runtime/status | pid, uptime, memory, storage mode, paths, per-runtime health |
| GET | /api/runtime/components | Registered runtime components and status |
| POST | /api/runtime/shutdown | Stop the daemon (loopback peers only) |
| GET | /api/runtime/queue · /status · /resources | Queue depth, slot status, resource usage |
| GET | /api/runtimes/coding/diagnostics | Coding executor diagnostics |
| POST | /api/runtimes/coding/:id/dry-run | Dry-run an executor |
| Method | Path | Purpose |
|---|
| POST | /api/chat | One-shot chat |
| POST | /api/chat/stream | Streaming chat (SSE) |
| POST | /api/chat/debug/context | Inspect assembled context |
| GET/POST | /api/conversations | List / create |
| GET/PATCH/DELETE | /api/conversations/:id | Read / update / delete |
| POST | /api/conversations/:id/messages | Send a message |
| POST | /api/conversations/:id/messages/stream | Send with SSE streaming |
| PUT | /api/conversations/:id/messages/:msgId | Edit a message |
| POST | /api/conversations/:id/messages/:msgId/regenerate | Regenerate |
| GET | /api/conversations/:id/messages/:msgId/branches | Read branches |
| GET | /api/conversations/:id/tree | Conversation tree |
| GET | /api/conversations/messages/search | Search messages |
| GET | /api/conversations/:id/export | Export |
| Method | Path | Purpose |
|---|
| GET | /api/runs?limit= | Recent runs |
| GET | /api/runs/:id | Run detail |
| GET | /api/runs/:id/events | Run event stream |
| GET | /api/runs/:id/artifacts | Run artifacts |
| POST | /api/runs/:id/cancel | Cancel |
| POST | /api/runs/:id/retry | Retry a failed run |
| GET | /api/runs/:id/trajectory | Trajectory bundle |
| POST | /api/runs/:id/message | 410 Gone — mid-run message injection was removed with the hand-written loop |
| Method | Path | Purpose |
|---|
| GET/POST | /api/workspaces | List / create |
| GET | /api/workspaces/default | Default workspace |
| POST | /api/workspaces/from-goal | Create a workspace from a goal |
| GET/PATCH/DELETE | /api/workspaces/:id | Read / update / delete |
| GET | /api/workspaces/:id/detail | Workspace with agents and runs |
| POST/DELETE | /api/workspaces/:id/agents[/:agentId] | Attach / detach an agent |
| GET | /api/workspaces/:id/artifacts | Artifacts |
| GET | /api/workspaces/:id/deliveries | Delivery branches |
| POST | /api/workspaces/:id/deliveries/merge | Merge a delivery branch |
| — | /api/projects | Project CRUD |
| Method | Path | Purpose |
|---|
| GET | /api/tools | List registered tools |
| GET | /api/tools/:id | One tool |
| POST | /api/tools/filter | Filter by source / risk |
| POST | /api/tools/:id/execute | Execute (permission-checked) |
| GET | /api/tools/logs | Recent call log |
| GET | /api/tools/pending-confirmations | Inline confirmations awaiting a decision |
| POST | /api/tools/confirm/:id | Resolve an inline confirmation |
| Method | Path | Purpose |
|---|
| GET | /api/approvals | Pending and recent |
| GET | /api/approvals/:id | One request |
| POST | /api/approvals/:id/approve | Approve and resume |
| POST | /api/approvals/:id/deny | Deny and fail the run |
| POST | /api/approvals/:id/remember | Approve and store a permission memory |
| POST | /api/approvals/batch/approve · /batch/deny | Batch decisions |
| POST | /api/approvals/expire-stale | Close unanswered requests |
There is no /api/permissions/* group. Approvals and audit are separate resources.
| Method | Path | Query |
|---|
| GET | /api/audit | actor, action, riskLevel, since, limit, offset |
| GET | /api/events | type, projectId, workspaceId, agentRunId, runtimeId, since, limit, offset |
| Method | Path | Purpose |
|---|
| GET | /api/memories | List; filters type, scopeType + scopeId |
| GET | /api/memories/search?q=&limit= | Scored search (default limit 20) |
| PATCH/DELETE | /api/memories/:id | Update (key, value, type) / delete |
| Method | Path | Purpose |
|---|
| — | /api/tasks | Task CRUD |
| — | /api/tasks/scheduled | Scheduled tasks |
| — | /api/articles | Reading list |
| — | /api/reviews | Daily / weekly reviews |
These route groups still exist and back the native task, reading, and review tools.
| Method | Path | Purpose |
|---|
| — | /api/mcp | MCP server CRUD, restart, auth |
| — | /api/settings | Models, providers, storage, tick, usage |
| — | /api/voice | Voice session control |
| — | /api/agent-profiles | Agent profiles |
| — | /api/agent-broker | Agent broker |
No token is required: the API is bound to loopback and is not exposed to the network. /api/runtime/shutdown additionally checks that the peer address is loopback.