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.
- 1Set environment variables before launching; ANTHROPIC_BASE_URL must end with /claude/.
- 2ANTHROPIC_AUTH_TOKEN and ANTHROPIC_API_KEY should both contain your JWT token.
- 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>
claudeSubagents 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.
- 1Developer Mode: Help → Troubleshooting → Enable Developer Mode.
- 2Developer → Configure third-party inference; provider = Gateway.
- 3Under Custom inference headers add X-Maestro-Client: claude-desktop (required).
- 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>"
codexThe 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.
- 1Cursor Pro is required for custom API keys; Manifold must be publicly reachable (VPS/tunnel).
- 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.