Documentation

Editors & agents

Point Continue, Cline, Roo Code or Aider at Sothe.

What every tool needs

Sothe speaks the OpenAI API, so anything that lets you point it at your own base URL works. Whichever tool you use, it needs the same three values:

SettingValue
Base URLhttps://api.sothe.net/v1
API keysk-so-v1-…, created under API Keys
ModelAn id from the model list, e.g. anthropic/claude-haiku-4-5-20251001-v1:0

Pick the provider called OpenAI Compatible — some tools name it "Custom" or "OpenAI-compatible endpoint" — rather than "OpenAI", and keep the /v1 on the end of the base URL. Without it the request goes to the wrong path and comes back 404.

Continue

Continue keeps its settings in a file rather than a settings screen, which makes it the hardest of these to get wrong. Put this in ~/.continue/config.yaml and restart the extension:

YAML
1name: Sothe2version: 0.0.13schema: v14models:5  - name: Claude Haiku 4.5 (Sothe)6    provider: openai7    model: anthropic/claude-haiku-4-5-20251001-v1:08    apiBase: https://api.sothe.net/v19    apiKey: sk-so-v1-...10    roles: [chat, edit, apply]

provider: openai together with apiBase is what sends the request to us instead of to OpenAI. Add one entry per model you want in the picker.

Cline

Settings → API Provider → OpenAI Compatible:

FieldValue
Base URLhttps://api.sothe.net/v1
API Keysk-so-v1-…
Model IDanthropic/claude-haiku-4-5-20251001-v1:0

Cline reads the model list from https://api.sothe.net/v1/models, but not the details behind it, so fill in the model configuration yourself: the context_length the model list reports, and 8,192 for max output tokens unless you want to ask for more.

Roo Code

Settings → API Provider → OpenAI Compatible, then the same three values:

FieldValue
Base URLhttps://api.sothe.net/v1
API Keysk-so-v1-…
Modelanthropic/claude-haiku-4-5-20251001-v1:0, from the dropdown it fills from https://api.sothe.net/v1/models
Press Save, and mind the numbers below the model

Roo Code keeps settings changes pending until you press Save — until then the task keeps running against the previous provider, which looks like your new settings being ignored. It also shows its own defaults under the model (a 128,000-token window, $0.00 prices) rather than ours, because it reads only the ids from the model list. Set the window to the model's real context_length so it doesn't trim your conversation early. Those fields never affect what you are charged — billing happens here, at the published price.

Roo Code's OpenRouter provider also accepts a custom base URL, but it takes its model list from openrouter.ai rather than from you, so the names in the dropdown are theirs. Those short ids work against us anyway — see Model ids — but the prices it displays beside them are not ours.

Aider

A terminal agent: no extension, it edits files in your repo directly. Install it, then:

Shell
1OPENAI_API_BASE=https://api.sothe.net/v1 OPENAI_API_KEY=sk-so-v1-... aider --model openai/anthropic/claude-haiku-4-5-20251001-v1:0

The openai/ prefix tells Aider to treat the model as an OpenAI-compatible one and use the base URL above; everything after it is our model id, passed through untouched.

Choosing the model

These agents work by calling tools, so pick a model whose supports_tools is true — the Models page has a filter for it. A model that can't call functions will chat happily and then fail on its first action.

Both id forms work: the full anthropic/claude-haiku-4-5-20251001-v1:0 and the short anthropic/claude-haiku-4.5 that most editor catalogues use. Prompt caching is on by default where the provider publishes cache rates, which is worth real money in an agent loop — the same system prompt and tool list go up on every turn. See Billing.

If it doesn't work

What you seeWhat it means
404 model not foundThe id isn't one of ours, or it is a short form matching more than one model. Copy it from https://api.sothe.net/v1/models.
404 on a pathThe base URL is missing /v1.
401Wrong or disabled key, or a management key where an inference key is needed.
402Out of credits, or a limit was reached — see Billing.
503 model unavailableA model we list but can't serve yet. Pick another; see Availability.
It just spinsCheck the tool's own output log first — an agent that cannot parse a reply often retries silently. Every request you make, failed ones included, appears in Logs with its status: if nothing is there, the request never reached us and the problem is between the tool and its settings.