Skip to main content
All admin endpoints are under /api/ and require authentication (except /api/auth/* and setup mode).

Status

GET /api/status
Response
{
  "running": true,
  "uptime_seconds": 3600,
  "model": "gpt-4o",
  "version": "0.1.0",
  "os": "darwin",
  "sessions_count": 5
}

Configuration

MethodPathDescription
GET/api/configRead current configuration
PUT/api/configUpdate configuration (triggers agent reinit)

Sessions

MethodPathDescription
GET/api/sessionsList all sessions (newest first)
GET/api/sessions/{id}Get session with messages
DELETE/api/sessions/{id}Delete session and messages

Session response

{
  "meta": {
    "id": "uuid",
    "title": "Chat about Go",
    "model": "gpt-4o",
    "created_at": "2025-01-15T10:00:00Z",
    "updated_at": "2025-01-15T10:30:00Z",
    "message_count": 12
  },
  "messages": [
    {"role": "user", "content": "Hello!", "timestamp": "2025-01-15T10:00:00Z"},
    {"role": "assistant", "content": "Hi!", "timestamp": "2025-01-15T10:00:01Z", "tool_calls": []}
  ]
}

Memory

MethodPathDescription
GET/api/memoryRead facts + soul
PUT/api/memoryOverwrite facts ({content})

Persona & soul

MethodPathDescription
GET/api/personaRead system prompt template
PUT/api/personaUpdate system prompt (triggers reinit)
GET/api/soulRead agent personality
PUT/api/soulUpdate soul (triggers reinit)

Tools

MethodPathDescription
GET/api/toolsRead tool configuration
PUT/api/toolsUpdate tool config (triggers reinit)

Models

POST /api/models
Fetch available models from a provider endpoint. Uses the active provider if no endpoint is given. Body (optional): {"endpoint": "https://api.openai.com/v1", "api_key": "sk-..."}

User profile

MethodPathDescription
GET/api/userRead profile {name, timezone, country}
PUT/api/userUpdate profile

Logs

GET /api/logs?lines=200&date=2025-01-15
Response
{
  "date": "2025-01-15",
  "entries": [{"time": "...", "level": "INFO", "msg": "...", "attrs": {}}],
  "available_dates": ["2025-01-15", "2025-01-14"]
}
Default 200 lines, maximum 2000.

Workspace

MethodPathDescription
GET/api/workspace?path=subdirList directory contents
GET/api/workspace/file?path=file.txtRead file (text up to 1MB, images as base64)
POST/api/workspace/uploadUpload files (multipart form, files + path)
POST/api/workspace/mkdirCreate directory {path}
DELETE/api/workspace?path=file.txtDelete file or directory

Cron jobs

MethodPathDescription
GET/api/cron/jobsList all jobs
POST/api/cron/jobsCreate job
GET/api/cron/jobs/{id}Get job details
PUT/api/cron/jobs/{id}Update job ({enabled}, {message})
DELETE/api/cron/jobs/{id}Delete job
GET/api/cron/jobs/{id}/logsExecution logs (last 20)
POST/api/cron/jobs/{id}/runRun job immediately

Create job request

{
  "name": "hourly-check",
  "schedule": {"kind": "every", "every_ms": 3600000},
  "payload": {"kind": "message", "message": "Check system health"}
}

Skills

MethodPathDescription
GET/api/skillsList installed skills
POST/api/skills/searchSearch registries {query, limit}
POST/api/skills/installInstall skill {source, slug/repo}
GET/api/skills/{name}Get skill details and content
GET/api/skills/{name}/filesList skill files
GET/api/skills/{name}/fileRead a specific skill file
PUT/api/skills/{name}Enable/disable {enabled}
DELETE/api/skills/{name}Uninstall skill