Harness Setup
The setup wizard can configure supported harnesses for you. Use this page when you want to edit a harness config file by hand or verify what sleev writes.
Before you start, check that the local gateway is running:
Claude Code
Claude Code reads its config from
~/.claude/settings.json.
Merge the env block below into
that file: create it if it doesn't exist, or add these keys to your existing
env object.
{
"env": {
"ANTHROPIC_BASE_URL": "http://127.0.0.1:17321",
"ANTHROPIC_CUSTOM_HEADERS": "sleeve-provider: anthropic
sleeve-harness: claude code"
}
} This sends Claude Code through the local Sleev gateway.
Codex CLI
Codex picks its upstream by named provider in
~/.codex/config.toml, which
takes two edits. If you're unsure exactly where to place them, put the first
part at the very top of the file,
model_provider = "sleev" and the second part at the very bottom:
[model_providers.sleev]
name = "Sleev"
base_url = "http://127.0.0.1:17321/v1"
wire_api = "responses"
supports_websockets = true
requires_openai_auth = true
[model_providers.sleev.http_headers]
"sleeve-provider" = "openai"
"sleeve-harness" = "codex cli"
This creates a Sleev provider in Codex and makes it the active provider. Use
openai for an OpenAI API key,
or
codex for ChatGPT sign-in as the
sleeve-provider.
OpenCode
OpenCode manages each provider directly, so you override the connection per
provider in
~/.config/opencode/opencode.json. Merge the block below into your existing config: deep-merge under
provider and
compaction rather than replacing
them. The example below configures Anthropic. Repeat the provider block for each
provider you use.
{
"compaction": {
"prune": false
},
"provider": {
"anthropic": {
"options": {
"baseURL": "http://127.0.0.1:17321",
"headers": {
"sleeve-provider": "anthropic",
"sleeve-harness": "opencode"
}
}
}
}
}
This sends the Anthropic provider through the local Sleev gateway. Setting
compaction.prune to
false leaves context management
to Sleev.