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.

~/.claude/settings.json
{
  "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,

~/.codex/config.toml
model_provider = "sleev"

and the second part at the very bottom:

~/.codex/config.toml
[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.

~/.config/opencode/opencode.json
{
  "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.