Getting started
Local API
The REST API KOLDOS serves on your own computer.
Start it with koldos serve. It listens on 127.0.0.1:8128 by default, so nothing outside your computer can reach it. The Brain inspector uses port 8129 and never touches the API.
koldos serveAuthentication
An access token is optional. When one is set in the KOLDOS configuration, every /v1 request needs Authorization: Bearer <token>, except /v1/health, so a monitor can check the service without holding the credential.
Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/health | Model, context window and cache type. Open even when a token is set. |
| GET | /v1/models | Lists the model, served as "koldos". |
| POST | /v1/chat/completions | A full KOLDOS turn in the common chat completions format, with optional streaming. |
| POST | /v1/turns | A turn with the KOLDOS-specific result, including route and trace. |
| GET | /v1/capabilities | What this build implements, including vision availability. |
| POST | /v1/attachments | Attach files to the next turn. They are copied into the workspace. |
| GET | /v1/chats | Saved conversations. Also POST, GET by id and DELETE. |
| GET | /v1/workspace | The project folder KOLDOS works in. POST changes it. |
| GET | /v1/project/tree | The file tree of the workspace. |
Use it from any compatible client
Point a client that speaks the common chat completions format at http://127.0.0.1:8128/v1 and use the model koldos. Editor extensions, scripts and bots then get the whole KOLDOS turn: routing, tools and verification, not just the model.
Target
Runs on your computer with koldos serve. This request works today against a running KOLDOS.
Sent as the user message. KOLDOS runs one turn for it.
temperature, max_tokens, top_p are accepted and ignored. KOLDOS sets its own budgets for every turn.
curl http://127.0.0.1:8128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "koldos",
"messages": [
{
"role": "user",
"content": "Explain what the function main does in src/app.py."
}
]
}'This page never sends requests or asks for a key. Run the snippet from your own environment.
Errors
400when the request has no user message.401when a token is set and the request does not carry it.413when the message is longer than the configured limit.429when the turn runs out of its budget.