Spaces:
Sleeping
Sleeping
| # Direct CLI Integration | |
| Connect CLI tools (Claude Code, Codex, custom agents) directly to Mission Control without a gateway. | |
| ## Quick Start | |
| ### 1. Register a connection | |
| ```bash | |
| curl -X POST http://localhost:3000/api/connect \ | |
| -H "Content-Type: application/json" \ | |
| -H "x-api-key: YOUR_API_KEY" \ | |
| -d '{ | |
| "tool_name": "claude-code", | |
| "tool_version": "1.0.0", | |
| "agent_name": "my-agent", | |
| "agent_role": "developer" | |
| }' | |
| ``` | |
| Response: | |
| ```json | |
| { | |
| "connection_id": "550e8400-e29b-41d4-a716-446655440000", | |
| "agent_id": 42, | |
| "agent_name": "my-agent", | |
| "status": "connected", | |
| "sse_url": "/api/events", | |
| "heartbeat_url": "/api/agents/42/heartbeat", | |
| "token_report_url": "/api/tokens" | |
| } | |
| ``` | |
| - If `agent_name` doesn't exist, it's auto-created. | |
| - Previous connections for the same agent are automatically deactivated. | |
| ### 2. Heartbeat loop | |
| Send heartbeats to stay alive and optionally report token usage: | |
| ```bash | |
| curl -X POST http://localhost:3000/api/agents/42/heartbeat \ | |
| -H "Content-Type: application/json" \ | |
| -H "x-api-key: YOUR_API_KEY" \ | |
| -d '{ | |
| "connection_id": "550e8400-e29b-41d4-a716-446655440000", | |
| "token_usage": { | |
| "model": "claude-sonnet-4", | |
| "inputTokens": 1500, | |
| "outputTokens": 800 | |
| } | |
| }' | |
| ``` | |
| Response includes work items (mentions, assigned tasks, notifications) plus `"token_recorded": true` if usage was reported. | |
| Recommended heartbeat interval: **30 seconds**. | |
| ### 3. Subscribe to events (SSE) | |
| ```bash | |
| curl -N http://localhost:3000/api/events \ | |
| -H "x-api-key: YOUR_API_KEY" | |
| ``` | |
| Receives real-time events: task assignments, mentions, agent status changes, etc. | |
| ### 4. Report token usage | |
| For bulk token reporting (separate from heartbeat): | |
| ```bash | |
| curl -X POST http://localhost:3000/api/tokens \ | |
| -H "Content-Type: application/json" \ | |
| -H "x-api-key: YOUR_API_KEY" \ | |
| -d '{ | |
| "model": "claude-sonnet-4", | |
| "sessionId": "my-agent:chat", | |
| "inputTokens": 5000, | |
| "outputTokens": 2000 | |
| }' | |
| ``` | |
| ### 5. Disconnect | |
| ```bash | |
| curl -X DELETE http://localhost:3000/api/connect \ | |
| -H "Content-Type: application/json" \ | |
| -H "x-api-key: YOUR_API_KEY" \ | |
| -d '{"connection_id": "550e8400-e29b-41d4-a716-446655440000"}' | |
| ``` | |
| Sets the agent offline if no other active connections exist. | |
| ## API Reference | |
| | Method | Endpoint | Auth | Description | | |
| |--------|----------|------|-------------| | |
| | POST | `/api/connect` | operator | Register CLI connection | | |
| | GET | `/api/connect` | viewer | List all connections | | |
| | DELETE | `/api/connect` | operator | Disconnect by connection_id | | |
| | POST | `/api/agents/{id}/heartbeat` | operator | Heartbeat with optional token reporting | | |
| | GET | `/api/events` | viewer | SSE event stream | | |
| | POST | `/api/tokens` | operator | Report token usage | | |
| ## Connection Lifecycle | |
| ``` | |
| POST /api/connect β Agent set online | |
| β | |
| Heartbeat loop (30s) β Reports tokens, receives work items | |
| β | |
| DELETE /api/connect β Agent set offline (if no other connections) | |
| ``` | |
| ## Notes | |
| - Each agent can only have one active connection at a time. A new `POST /api/connect` for the same agent deactivates the previous connection. | |
| - The `sessionId` format for token reporting follows `{agentName}:{chatType}` convention (e.g., `my-agent:chat`, `my-agent:cli`). | |
| - Heartbeat responses include pending work items (assigned tasks, mentions, notifications) so CLI tools can act on them. | |