Base URL: http://localhost:11420
Adelaide exposes two compatible API dialects (Ollama and OpenAI) plus native endpoints.
POST /v1/chat/completions
OpenAI-compatible chat completion with streaming support.
Request Body:
{
"model": "qwen3.5-0.8b",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true,
"temperature": 0.7,
"max_tokens": 2048
}Response: Streaming SSE or JSON (OpenAI format).
POST /v1/completions
Text completion (non-chat). Same request format as chat but with prompt instead of messages.
POST /v1/embeddings
Generate vector embeddings for text.
Request Body:
{
"model": "qwen3-embedding-0.6b",
"input": "text to embed"
}Response:
{
"data": [{"embedding": [0.1, 0.2, ...], "index": 0}],
"model": "qwen3-embedding-0.6b",
"usage": {"prompt_tokens": 5, "total_tokens": 5}
}GET /v1/models
Returns available models. Alias for /api/tags.
POST /v1/messages
Claude API-compatible message endpoint.
POST /v1/audio/transcriptions
Speech-to-text using Moonshine ONNX.
Request: Raw Float32 PCM audio data with header Content-Type: text/plain.
Response:
{
"text": "transcribed text here"
}POST /v1/audio/speech
Text-to-speech using Kokoro ONNX.
Request Body:
{
"input": "Hello, how are you?",
"voice": "default",
"response_format": "wav"
}Response: Raw WAV audio bytes.
POST /v1/images/generations
Image generation using FLUX Schnell (two-stage: sparse → refinement).
Request Body:
{
"prompt": "a sunset over mountains",
"n": 1,
"size": "1024x1024"
}Response: Base64-encoded image or URL.
POST /api/chat
Ollama-compatible chat. Same behavior as /v1/chat/completions but Ollama response format.
POST /api/generate
Ollama-compatible text generation.
GET /api/tags
List available models with sizes and formats.
POST /api/show
Show detailed model information.
POST /api/embeddings
POST /api/embed
Generate embeddings. Both endpoints are aliases.
GET /api/ps
Show currently loaded models and their memory usage.
GET /api/version
Return server version, git commit, and build info.
POST /api/create — Create model (stub)
POST /api/pull — Pull model (stub)
POST /api/push — Push model (stub)
POST /api/copy — Copy model (stub)
DELETE /api/delete — Delete model (stub)
POST /api/signin — Sign in (stub)
POST /api/signout — Sign out (stub)
GET /api/power
Returns system power state, GPU memory, and StellaIcarus telemetry.
GET /api/telemetry
Returns detailed system telemetry: CPU usage, memory, GPU stats, uptime.
GET /api/ZenithRoutine
Returns ZenithOrion pacing loop status (ELP3).
POST /api/agenticZephyHandlessMode
Voice interaction mode — accepts audio input, returns audio output.
GET /
HEAD /
HEAD /— Heartbeat check (returns 200 if alive)GET /— Server info JSON
POST /api/acp
ACP is a standard JSON-RPC 2.0 interface used by clients like Zed, VS Code plugins, and @agentclientprotocol/sdk in Node.js.
Connection Guide:
- Configure the client to use HTTP transport.
- Set the endpoint URL to
http://<server-ip>:11420/api/acp. - Send standard JSON-RPC payloads:
{ "jsonrpc": "2.0", "method": "initialize", "params": {}, "id": 1 } { "jsonrpc": "2.0", "method": "chat/completion", "params": { "prompt": "Hello!" }, "id": 2 }
The local Model_Manager handles agent reasoning natively.
These endpoints are served by the Python sidecar UI (separate process):
| Endpoint | Method | Description |
|---|---|---|
/api/sessions |
GET/POST | List or create chat sessions |
/api/sessions/{id} |
PUT/DELETE | Rename or delete session |
/api/sessions/{id}/duplicate |
POST | Duplicate a session |
/api/messages |
GET | Message history |
/api/adelaideenginestats |
GET | Engine statistics |
/api/knowledgestackfrontend/upload |
POST | Upload knowledge |
/api/knowledgestackfrontend/search |
GET | Search knowledge |
/api/knowledgestackfrontend/memory/upload |
POST | Upload memory |
/api/knowledgestackfrontend/memory/search |
GET | Search memory |
/api/knowledgestackfrontend/graph |
GET | Knowledge graph |
/api/knowledgestackfrontend/memory/graph |
GET | Memory graph |
All endpoints return standard HTTP status codes:
200— Success400— Bad request / invalid JSON404— Unknown endpoint500— Internal server error (check server logs)
Error responses include a JSON body with error field:
{
"error": "description of what went wrong"
}