Skip to content

REST API ​

All endpoints are prefixed with /api. Authentication uses JWT Bearer tokens.

Auth ​

MethodPathBodyDescription
POST/api/auth/register{username, password, display_name?}Create account, returns token
POST/api/auth/login{username, password}Login, returns token
GET/api/auth/me—Current user info
GET/api/auth/check—Check if any users exist (onboarding)

Conversations ​

MethodPathBodyDescription
GET/api/conversations—List all conversations
POST/api/conversations{title?, model?, mode?}Create conversation
GET/api/conversations/:uuid—Get conversation + messages
DELETE/api/conversations/:uuid—Delete conversation

Messaging ​

MethodPathBodyDescription
POST/api/message{message, mode?}Send message (mode: plan/execute)
POST/api/answers{answers: {qid: label}}Answer structured questions
POST/api/interrupt—Cancel current agent turn (Redis relay)
POST/api/approval{approvals: {id: bool}}Approve/reject tool calls
POST/api/undo—Undo last turn
POST/api/compact—Compact conversation context
POST/api/model{model}Switch LLM model (sticky, persisted)

SSE ​

MethodPathDescription
GET/api/events?token=JWTServer-Sent Events stream (supports reconnection catch-up)

Settings ​

MethodPathDescription
GET/api/settingsAll settings
GET/api/settings/:categorySettings by category
PUT/api/settings/:category/:keyUpdate setting
DELETE/api/settings/:category/:keyDelete setting
GET/api/providersList provider status
GET/api/modelsList available models
GET/api/statusCurrent model + config

Frontend Routes ​

The frontend is a single-page app served from /:

RouteDescription
/loginAuthentication
/Chat UI (protected, redirects to /login if unauthenticated)
/:uuidSpecific conversation
/settings/providersAPI key management
/settings/agentModel & behavior settings
/settings/sandboxExecution environment settings
/settings/writingPaper writing preferences

Health ​

MethodPathDescription
GET/health{"status": "ok", "version": "0.2.0"}