http://127.0.0.1:3010).| Method | Path | Description |
|---|---|---|
| GET | /health | Health check. Returns { ok: true, service: "agent-os" }. |
| Method | Path | Description |
|---|---|---|
| GET | /api/agents | List all agents (id, name, description, model, personality, skills, tools, schedule, avatar, etc.). |
| POST | /api/agents | Create agent. Body: agent config (id, name, model, skills?, tools?, personality?, schedule?, etc.). |
| PUT | /api/agents/:id | Update agent. Body: partial fields (name, model, skills, tools, schedule, schedule_input, schedule_enabled, avatar, limits, etc.). |
| DELETE | /api/agents/:id | Delete agent. |
| POST | /api/agents/suggest | Suggest agent config (e.g. from description). |
| POST | /api/agents/install-system | Install system agents from seed dir. Returns { ok: true, installed }. |
| POST | /api/agents/run | Run agent. Body: { agent_id, task, conversation_id? }. Returns { success, output?, error? }. |
| POST | /api/agents/run/stream | Run agent with streaming. Body: { agent_id, task, conversation_id?, attachment_paths? }. SSE events: assistant, tool_call, done, error. |
| POST | /api/agents/:id/upload | Upload file to agent (e.g. avatar or workspace). |
| GET | /api/agents/:id/workspace/:filename | Read file from agent workspace. |
| PUT | /api/agents/:id/workspace/:filename | Write file to agent workspace. |
| Method | Path | Description |
|---|---|---|
| GET | /api/tasks | List tasks. Query: agent_id, graph_id, status, limit. |
| POST | /api/tasks | Create task (enqueue). Body: task payload. |
| GET | /api/tasks?id=... | Get single task by id. |
| GET | /api/logs | List recent logs (query: limit). |
| Method | Path | Description |
|---|---|---|
| GET | /api/graphs | List graphs. |
| GET | /api/graphs/:id | Get graph by id. |
| PUT | /api/graphs/:id | Create or update graph. Body: nodes, edges, schedule?, schedule_input?, schedule_enabled?. |
| POST | /api/graphs/run | Run graph. Body: graph id and input. |
| POST | /api/graphs/run/stream | Run graph with streaming. |
| Method | Path | Description |
|---|---|---|
| POST | /api/memory/write | Write a memory entry. Body: agent_id, user_id?, content, metadata?. |
| GET | /api/memory/search | Search memories. Query: agent_id, user_id?, q, semantic?, limit?. |
| DELETE | /api/memory/:id | Delete memory by id. |
| Method | Path | Description |
|---|---|---|
| GET | /api/conversations | List conversations (query: limit, agent_id?, etc.). |
| POST | /api/conversations | Create conversation. |
| PUT | /api/conversations/:id | Update conversation (e.g. append messages). |
| POST | /api/conversations/summarize | Summarize a conversation. |
| Method | Path | Description |
|---|---|---|
| GET | /api/settings | Get settings (API keys, channel config, etc.; values may be redacted). |
| PUT | /api/settings | Update settings (write to ~/.agent-os/config.json). |
| Method | Path | Description |
|---|---|---|
| GET | /api/skills | List installed skills. |
| GET | /api/skills/marketplace | Get marketplace / curated skill list. |
| GET | /api/skills/store-registry | Get store registry (if configured). Returns skills, storeBase, registryUrl. |
| GET | /api/skills/:id/config/schema | Get config schema for a skill. |
| GET | /api/skills/:id/setup | Get setup markdown for a skill. |
| GET | /api/skills/:id/config | Get current skill config (configured keys). |
| PUT | /api/skills/:id/config | Update skill config (key/value). |
| POST | /api/skills/install | Install skill (e.g. from store by slug or URL). Body: slug or url. |
| POST | /api/skills/install-system | Install system skills from seed dir. |
| POST | /api/skills/upload | Upload skill (zip). |
| POST | /api/skills/upload-skill-md | Upload skill Markdown. |
| DELETE | /api/skills/:id | Uninstall skill. |
| Method | Path | Description |
|---|---|---|
| POST | /api/channels/telegram/webhook | Telegram bot webhook. |
| GET | /api/channels/telegram/status | Telegram channel status. |
| POST | /api/channels/telegram/set-webhook | Set Telegram webhook URL. |
| POST | /api/channels/slack/webhook | Slack Events API / slash webhook. |
| GET | /api/channels/slack/status | Slack channel status. |
| POST | /api/channels/discord/webhook | Discord interactions webhook. |
| GET | /api/channels/discord/status | Discord channel status. |
| POST | /api/channels/signal/webhook | Signal bridge webhook. |
| GET | /api/channels/signal/status | Signal channel status. |
| POST | /api/channels/viber/webhook | Viber bot webhook. |
| GET | /api/channels/viber/status | Viber channel status. |
| POST | /api/channels/viber/set-webhook | Set Viber webhook. |
| Method | Path | Description |
|---|---|---|
| GET | /api/docs/:name | Get built-in doc by name (e.g. specs). |
GET /api/events (upgrade to WebSocket).The server sends CORS headers on responses. OPTIONS requests return 204 with CORS headers.