07/Integrations

Client Setups

Step-by-step setup for popular IDEs and tools.


In the examples below, replace <gateway-host> with your address and <token> with your Manifold JWT token.

#Claude Code

Anthropic CLI tool with custom base URL support.

  1. 1Set environment variables before launching; ANTHROPIC_BASE_URL must end with /claude/.
  2. 2ANTHROPIC_AUTH_TOKEN and ANTHROPIC_API_KEY should both contain your JWT token.
  3. 3Pin the Opus/Sonnet/Haiku and subagent tiers to mapped model names.
shell
export ANTHROPIC_BASE_URL=https://<gateway-host>/claude/
export ANTHROPIC_AUTH_TOKEN=<token>
export ANTHROPIC_API_KEY=<token>
export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
export ANTHROPIC_DEFAULT_OPUS_MODEL=<mapped-model>
export ANTHROPIC_DEFAULT_SONNET_MODEL=<mapped-model>
export ANTHROPIC_DEFAULT_HAIKU_MODEL=<mapped-model>
export CLAUDE_CODE_SUBAGENT_MODEL=<mapped-model>
claude
Subagents and background tasks use Haiku/subagent variables — if unset, requests may fail with 404. ANTHROPIC_SMALL_FAST_MODEL is deprecated; use ANTHROPIC_DEFAULT_HAIKU_MODEL.

#Claude Desktop

Claude Desktop in third-party inference mode — routes chat through Manifold as an Anthropic-compatible gateway.

  1. 1Developer Mode: Help → Troubleshooting → Enable Developer Mode.
  2. 2Developer → Configure third-party inference; provider = Gateway.
  3. 3Under Custom inference headers add X-Maestro-Client: claude-desktop (required).
  4. 4Pick models from discovery using the opaque id (claude-maestro-…).
config
Gateway base URL:  https://<gateway-host>/claude
Gateway API key:   <token>   (auth scheme: bearer)

inferenceCustomHeaders:
{ "X-Maestro-Client": "claude-desktop" }
Without the X-Maestro-Client header, claude-maestro-{hash} ids are not resolved (404). Discovery returns opaque ids; display_name shows the real catalog name.

#OpenClaw

Universal AI IDE plugin reading provider config from ~/.openclaw/openclaw.json.

~/.openclaw/openclaw.json
{
  "models": {
    "mode": "merge",
    "providers": {
      "manifold": {
        "baseUrl": "https://<gateway-host>/openclaw",
        "apiKey": "<token>",
        "api": "openai-completions",
        "models": [{ "id": "<mapped-model>", "name": "<mapped-model>" }]
      }
    }
  }
}

#Codex (OpenAI)

Via the Desktop App launcher script (recommended) or the VS Code extension / CLI with env vars.

shell
# Desktop App — recommended (do NOT put /v1 in MAESTRO_URL)
MAESTRO_URL=https://<gateway-host> MAESTRO_TOKEN=<token> \
  MAESTRO_MODEL=<mapped-model> ./scripts/codex-maestro

# VS Code Extension / CLI
export OPENAI_BASE_URL="https://<gateway-host>/v1"
export OPENAI_API_KEY="<token>"
codex
The Desktop App uses the Responses API; Manifold converts to Chat Completions on the fly and streams back Codex-compatible SSE. In-app model switching is unreliable with custom providers — use a model group.

#Cursor IDE

Editor using a custom OpenAI base URL. Also supports the Cursor AI provider node directly.

  1. 1Cursor Pro is required for custom API keys; Manifold must be publicly reachable (VPS/tunnel).
  2. 2Settings → Models → OpenAI → Override Base URL.
Cursor
OpenAI API Key:            <token>
Override OpenAI Base URL:  https://<gateway-host>/cursor

#Grafana Assistant

Official Grafana plugin for AI-powered dashboards (Grafana ≥ 13.0.0).

Grafana
Backend URL:  https://<gateway-host>/grafana/assistant
API Token:    <token>

#VS Code

Claude Code, Codex and Kilo Code extensions are supported. Most work via env vars or the /v1 base URL.

settings.json (Codex/Kilo)
{
  "terminal.integrated.env.osx": {
    "OPENAI_BASE_URL": "https://<gateway-host>/v1",
    "OPENAI_API_KEY": "<token>"
  }
}
For dynamic model switching, select a Manifold model group as the default model — swap members from the admin panel.