Server API
CLI-JAW exposes 141 HTTP API endpoints across 15 route modules. All mutation routes require authentication.
Base URL
http://localhost:3457 # Single instance (jaw serve)
http://localhost:24576 # Dashboard (jaw dashboard)
Authentication
Loopback requests (127.0.0.1, localhost, ::1) are authenticated automatically. Remote requests need a Bearer token from GET /api/auth/token.
Route Modules
| Module | Routes | Description |
| server.ts | 14 | Bootstrap, health, WebSocket |
| settings.ts | 18 | Settings, prompt, heartbeat, MCP, CLI registry |
| memory.ts | 13 | Memory runtime + KV + files |
| browser.ts | 41 | CDP, web-ai, tabs, debug |
| jaw-memory.ts | 11 | Jaw memory search/read/save |
| orchestrate.ts | 11 | PABCD state, workers, dispatch |
| goal.ts | 3 | Goal CRUD |
| goal-run.ts | 3 | Bounded goal execution |
| messaging.ts | 6 | Upload, voice, channel send |
| employees.ts | 5 | Employee CRUD |
| skills.ts | 5 | Skills list/enable/disable |
| avatar.ts | 4 | Avatar images |
| traces.ts | 3 | Trace read |
| heartbeat.ts | 2 | Heartbeat config |
| i18n.ts | 2 | Language/locale |
Key Endpoints
Chat
| Method | Path | Description |
| POST | /api/chat | Send message (streaming NDJSON response) |
| GET | /api/chat/history | Get chat history |
| POST | /api/chat/stop | Stop generation |
Goal
| Method | Path | Description |
| GET | /api/goal | Get active goal |
| POST | /api/goal | Set/update/done/cancel goal |
| GET | /api/goal/history | Goal history |
Orchestration
| Method | Path | Description |
| GET | /api/orchestrate/state | Current PABCD state |
| PUT | /api/orchestrate/state | Transition state |
| POST | /api/orchestrate/reset | Reset to IDLE |
| POST | /api/orchestrate/dispatch | Dispatch worker |
Settings
| Method | Path | Description |
| GET | /api/settings | Get settings |
| PATCH | /api/settings | Update settings |
| GET | /api/settings/prompt | Get system prompt |