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/meCurrent user info
GET/api/auth/checkCheck if any users exist (onboarding)

Conversations

MethodPathBodyDescription
GET/api/conversationsList all conversations
POST/api/conversations{title?, model?, mode?}Create conversation
GET/api/conversations/:uuidGet conversation + messages
DELETE/api/conversations/:uuidDelete conversation

Messaging

MethodPathBodyDescription
POST/api/message{message, mode?}Send message (mode: plan/execute)
POST/api/answers{answers: {qid: label}}Answer structured questions
POST/api/interruptCancel current agent turn (Redis relay)
POST/api/approval{approvals: {id: bool}}Approve/reject tool calls
POST/api/undoUndo last turn
POST/api/compactCompact 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"}