Coding agents
Which model?
| Model | ID | Note |
|---|---|---|
| Hippo Coding (recommended to start) | hippo-coding (= openhippo/Qwen3.8-27B) | Self-hosted in Augsburg, suitable for § 203 StGB, works with the starting credit |
| GLM 5.3 | aki-io/glm5.3-754b | Partner model |
| DeepSeek V4.1 | aki-io/deepseek-v4.1-flash-552b | Partner model |
With these models we have had Claude Code and OpenCode complete multi-step tasks with tool calls. Partner models work only after your first top-up, otherwise 403 permission_denied, and are not intended for § 203 StGB, see Models.
Coding agents use a lot of tokens: set a budget on the key.
Coding agents send your prompts and the contents of your files (code, configuration, command output) to the API. With hippo-coding the processing stays on our hardware in Augsburg. With partner models it goes to the respective partner, see Data, security, compliance. Keep secrets out of files the agent reads.
Claude Code
Claude Code speaks the Anthropic Messages API.
Recommended: ~/.claude/settings.json
Put the settings into the env block of your user settings. They then apply in every project, and model switches with /model also end up at Open Hippo:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.openhippo.io",
"ANTHROPIC_AUTH_TOKEN": "hk_live_...",
"ANTHROPIC_MODEL": "hippo-coding",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "hippo-coding",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "hippo-coding",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "hippo-coding",
"CLAUDE_CODE_SUBAGENT_MODEL": "hippo-coding"
}
}
| Variable | Purpose |
|---|---|
ANTHROPIC_BASE_URL | without /v1: Claude Code appends /v1/messages itself. |
ANTHROPIC_AUTH_TOKEN | sends the key as Authorization: Bearer. Do not use ANTHROPIC_API_KEY. |
ANTHROPIC_MODEL | Main model. |
ANTHROPIC_DEFAULT_OPUS_MODEL, ANTHROPIC_DEFAULT_SONNET_MODEL | Target of the opus and sonnet aliases, e.g. with /model. |
ANTHROPIC_DEFAULT_HAIKU_MODEL | Target of the haiku alias, also used for background tasks. Replaces the deprecated ANTHROPIC_SMALL_FAST_MODEL. |
CLAUDE_CODE_SUBAGENT_MODEL | Default model for subagents. |
If one of these variables is left empty, Claude Code requests a Claude model at that point, which we do not have (400). Names as per the Anthropic docs. Do not put the key into a project's .claude/settings.json; that file gets committed.
Alternative: environment variables
For a single try in the shell:
export ANTHROPIC_BASE_URL="https://api.openhippo.io"
export ANTHROPIC_AUTH_TOKEN="$OPENHIPPO_API_KEY"
export ANTHROPIC_MODEL="hippo-coding"
export ANTHROPIC_DEFAULT_OPUS_MODEL="hippo-coding"
export ANTHROPIC_DEFAULT_SONNET_MODEL="hippo-coding"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="hippo-coding"
export CLAUDE_CODE_SUBAGENT_MODEL="hippo-coding"
claude
If both set the same variable, Anthropic says the value from settings.json applies.
Variant with a partner model (after your first top-up, otherwise 403 permission_denied): replace hippo-coding everywhere with e.g. aki-io/glm5.3-754b.
Check
- Create an empty folder and start
claudein it. - Type:
Create a file hello.txt containing "Hello from Augsburg". - Claude Code proposes creating the file and asks for your permission. Afterwards
hello.txtis in the folder. - The usage shows up in the console under Analytics or via
GET /v1/usage.
Typical errors: 401 = wrong key or not set as ANTHROPIC_AUTH_TOKEN; 400 = a model name is wrong; 403 = partner model without a top-up. See Errors.
Anthropic officially supports Claude Code only with Claude models. Running it with other models through a gateway works in our tests but is outside Anthropic's support. If a model rejects Claude Code's experimental fields with 400, Anthropic names CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 as the fix (Anthropic docs).
OpenCode
OpenCode connects to Open Hippo as an OpenAI-compatible provider. In opencode.json in your project, or globally in ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"openhippo": {
"npm": "@ai-sdk/openai-compatible",
"name": "Open Hippo",
"options": {
"baseURL": "https://api.openhippo.io/v1",
"apiKey": "{env:OPENHIPPO_API_KEY}"
},
"models": {
"hippo-coding": { "name": "Hippo Coding (Augsburg)" },
"aki-io/glm5.3-754b": { "name": "GLM 5.3" },
"aki-io/deepseek-v4.1-flash-552b": { "name": "DeepSeek V4.1" }
}
}
}
}
{env:OPENHIPPO_API_KEY} reads the key from the environment. Then pick an "Open Hippo" model in OpenCode with /models. Format as per the OpenCode docs.
Cline
In Cline's settings:
| Field | Value |
|---|---|
| API Provider | OpenAI Compatible |
| Base URL | https://api.openhippo.io/v1 |
| API Key | your key (hk_live_...) |
| Model ID | e.g. hippo-coding |
Field names as per the Cline docs. We have not tested Open Hippo with Cline yet. The model's context length is in the model list.