# KI-Coding-Agenten und Harnesses - GateLLM

> Verbinden Sie Claude Code, Codex CLI, OpenClaw, Cline, Cursor, Zed, Goose, Aider und 25+ Coding-Agenten mit GateLLM — Basis-URL, Konfigurationsziel und Gotcha jedes Harness an einem Ort.

Kanonisch: https://www.gatellm.io/de/coding-agents/

## KI-Coding-Agenten und Harnesses
Richten Sie Claude Code, Codex CLI, OpenClaw, Cline, Cursor und 25+ weitere Coding-Agenten in denselben drei Schritten auf das Gateway — jeweils mit exaktem Konfigurationsziel und Schlüsselnamen.
Jeder KI-Coding-Agent liest eine Basis-URL und einen API-Schlüssel von irgendwoher — eine Umgebungsvariable, eine Konfigurationsdatei oder ein Einstellungsfeld. Diese Seite listet auf, wo jeder Harness sie liest, welches Protokoll er spricht und den einen Gotcha, über den Menschen tatsächlich stolpern. Vollständige Copy-Paste-Konfigurationen stehen in der Dokumentation.
## Wie das Gateway-Modell heißen sollte
Einige Harnesses pinnen ihre eigene Modell-ID und senden sie wortgetreu. Hat Ihr Gateway-Modell einen anderen Namen, liefert der erste Aufruf 404. Zwei Wege zur Angleichung:
Benennen Sie das Gateway-Modell genau so, wie der Harness es anfragt — ohne zusätzliche Konfiguration.
Oder überschreiben Sie den Harness, sodass er Ihren Gateway-Namen über seine Modell-Umgebungsvariable verwendet (z. B. ANTHROPIC_MODEL).
## Richten Sie jeden KI-Coding-Agenten auf das Gateway
```
# Every agent is one base_url + one access key away
export ANTHROPIC_BASE_URL="https://your-gateway.gatellm.io"   # Anthropic agents: root (no /v1)
export ANTHROPIC_API_KEY="<gateway access key>"

export OPENAI_API_BASE="https://your-gateway.gatellm.io/v1"   # OpenAI-compatible agents: /v1
export OPENAI_API_KEY="<gateway access key>"

# Codex CLI (~/.codex/config.toml) speaks the Responses protocol
# [model_providers.gatellm]
# base_url = "https://your-gateway.gatellm.io/v1"
# wire_api = "responses"
```
### `Authorization: Bearer <key>`
- SDK / Framework: OpenAI · DashScope · generisch
- Bearer-Präfix ist groß-/kleinschreibungsunabhängig

### `x-api-key: <key>`
- SDK / Framework: Anthropic SDK
- Authorization wird ebenfalls akzeptiert

### `x-goog-api-key: <key>`
- SDK / Framework: Gemini SDK
- Authorization wird ebenfalls akzeptiert

## Harness-Kompatibilitätsmatrix

### Terminal-Agenten
Claude Code, Codex CLI, Gemini CLI, OpenClaw, opencode, Crush, Droid, Goose, Aider, Qwen Code, OpenHands, Kimi Code, Plandex, SWE-agent, Grok Build, Mistral Vibe, MiMo Code, ForgeCode, Codebuff
| Harness | Protokoll | Unterstützung | Konfigurationsziel | Schlüsselnamen / Einstellungen | Dokumentation |
| --- | --- | --- | --- | --- | --- |
| Claude Code | Anthropic | Nativ | env vars | ANTHROPIC_BASE_URL, ANTHROPIC_API_KEY, ANTHROPIC_MODEL | https://docs.gatellm.io/en/quickstart/claude-code-via-gateway |
| Codex CLI | OpenAI Responses | Nativ | ~/.codex/config.toml | base_url, env_key, wire_api | https://docs.gatellm.io/en/reference/clients-and-gateway-diffs |
| Gemini CLI | Gemini | Nativ | env vars | GOOGLE_GEMINI_BASE_URL, GEMINI_API_KEY | https://docs.gatellm.io/en/reference/clients-and-gateway-diffs |
| OpenClaw | OpenAI / Anthropic-compatible | OpenAI-kompatibel | openclaw.json | models.providers.<id>.baseUrl, models.providers.<id>.apiKey | https://docs.gatellm.io/en/quickstart/anthropic-interop |
| opencode | OpenAI-compatible | OpenAI-kompatibel | opencode.json | provider.<id>.options.baseURL | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Crush | OpenAI / Anthropic-compatible | OpenAI-kompatibel | crush.json | providers.<id>.base_url, providers.<id>.type | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Factory Droid | OpenAI / Anthropic-compatible | OpenAI-kompatibel | ~/.factory/settings.json | customModels[].baseUrl, customModels[].provider | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Goose | OpenAI-compatible | OpenAI-kompatibel | env vars | OPENAI_HOST, OPENAI_BASE_PATH, OPENAI_API_KEY | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Aider | OpenAI-compatible (LiteLLM) | OpenAI-kompatibel | env vars | OPENAI_API_BASE | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Qwen Code | OpenAI-compatible | OpenAI-kompatibel | env vars | OPENAI_BASE_URL, OPENAI_API_KEY, OPENAI_MODEL | https://docs.gatellm.io/en/quickstart/openai-compatible |
| OpenHands | OpenAI-compatible (LiteLLM) | OpenAI-kompatibel | ~/.openhands/settings.json | base_url, model openai/ prefix | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Kimi Code CLI | OpenAI / Anthropic | OpenAI-kompatibel | config.toml | providers | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Plandex | OpenAI-compatible | OpenAI-kompatibel | custom models JSON | baseUrl | https://docs.gatellm.io/en/quickstart/openai-compatible |
| SWE-agent | OpenAI-compatible (LiteLLM) | OpenAI-kompatibel | env vars | OPENAI_BASE_URL | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Grok Build | OpenAI-compatible | OpenAI-kompatibel | config.toml | custom models | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Mistral Vibe | OpenAI-compatible | OpenAI-kompatibel | ~/.vibe/config.toml | providers | https://docs.gatellm.io/en/quickstart/openai-compatible |
| MiMo Code | OpenAI-compatible | OpenAI-kompatibel | /connect custom provider | base URL, API key | https://docs.gatellm.io/en/quickstart/openai-compatible |
| ForgeCode | OpenAI / Anthropic | OpenAI-kompatibel | setup wizard | base URL | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Codebuff | OpenAI-compatible | OpenAI-kompatibel | settings | base URL, API key | https://docs.gatellm.io/en/quickstart/openai-compatible |

### IDEs und Erweiterungen
Cline, Roo Code, Kilo Code, Continue, Zed, Cursor, Windsurf, GitHub Copilot (BYOK)
| Harness | Protokoll | Unterstützung | Konfigurationsziel | Schlüsselnamen / Einstellungen | Dokumentation |
| --- | --- | --- | --- | --- | --- |
| Cline | OpenAI-compatible | OpenAI-kompatibel | Settings → OpenAI Compatible | Base URL, API Key, Model ID | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Roo Code | OpenAI-compatible | OpenAI-kompatibel | Settings → OpenAI Compatible | Base URL, API Key, Model ID | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Kilo Code | OpenAI-compatible | OpenAI-kompatibel | Settings → OpenAI Compatible | Base URL, API Key, Model ID | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Continue | OpenAI-compatible | OpenAI-kompatibel | config.yaml | models[].apiBase | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Zed | OpenAI-compatible | OpenAI-kompatibel | settings.json | language_models.openai_compatible.<id>.api_url | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Cursor | OpenAI | Teilweise | Settings → Models → Override OpenAI Base URL | Override OpenAI Base URL | https://docs.gatellm.io/en/quickstart/openai-compatible |
| Windsurf | OpenAI-compatible | OpenAI-kompatibel | Settings → Models → BYOK / custom | Base URL, API Key | https://docs.gatellm.io/en/quickstart/openai-compatible |
| GitHub Copilot (BYOK) | OpenAI-compatible | OpenAI-kompatibel | Manage Models → OpenAI-compatible | Base URL, API Key | https://docs.gatellm.io/en/quickstart/openai-compatible |

### Verwaltete Plattformen
Warp (nur BYOK-Schlüssel), Amazon Q Developer CLI, Devin — Endpunkt fest oder nicht überschreibbar
| Harness | Protokoll | Unterstützung | Konfigurationsziel | Schlüsselnamen / Einstellungen | Dokumentation |
| --- | --- | --- | --- | --- | --- |
| Warp | OpenAI / Anthropic / Gemini (BYOK) | Teilweise | Settings → BYOK | BYOK API keys | https://docs.gatellm.io/en/reference/supported-models-and-sdks |
| Amazon Q Developer CLI | MCP | Kein benutzerdefinierter Endpunkt | MCP server | — | https://docs.gatellm.io/en/reference/supported-models-and-sdks |
| Devin | — | Kein benutzerdefinierter Endpunkt | — | — | https://docs.gatellm.io/en/reference/supported-models-and-sdks |

## Gotchas
### Der Harness pinnt seine eigene Modell-ID
Claude Code sendet seinen konfigurierten Standard (z. B. claude-opus-5 oder claude-sonnet-5) — nicht Ihren Gateway-Namen. Benennen Sie das Gateway-Modell entweder genau so, wie der Harness es anfragt, oder setzen Sie seine Modell-Umgebungsvariable (z. B. ANTHROPIC_MODEL) auf Ihren Gateway-Namen. Bei Abweichung → 404 model_not_found bei der ersten Nachricht.

### Anthropic-Protokoll-Harnesses erwarten die Wurzel, nicht /v1
Die Basis-URL für Anthropic-artige Clients zeigt auf die Gateway-Wurzel (ohne /v1) — der Client hängt /v1/messages selbst an. Mit /v1 verdoppelt sich hier das Pfadsegment.

### Benutzerdefinierte Codex-Provider benötigen wire_api="responses"
Die Codex CLI verlangt wire_api = "responses" für einen benutzerdefinierten [model_providers.*]-Block. Das Gateway implementiert /v1/responses nativ — richten Sie base_url darauf und setzen Sie env_key auf einen Gateway-Zugriffsschlüssel.

### LiteLLM-basierte Harnesses wollen ein openai/-Modellpräfix
Aider, OpenHands und SWE-agent nutzen LiteLLM: Setzen Sie OPENAI_API_BASE auf das Gateway und geben Sie dem Modell ein openai/-Präfix (z. B. openai/gateway-model-name), damit LiteLLM es als OpenAI-kompatiblen Endpunkt routet.

### Standard ist Abo-OAuth, nicht Ihr Schlüssel
Codex, Gemini CLI und Qwen Code verwenden standardmäßig den OAuth-/Abo-Login des Anbieters. Um über das Gateway zu routen, müssen Sie auf API-Schlüssel-Authentifizierung umstellen (Schlüssel + Basis-URL explizit setzen) — sonst umgeht der Agent das Gateway vollständig.

### IDEs leiten Tool-/Vision-Unterstützung aus der Modell-ID ab
Cline / Roo / Kilo und andere entscheiden anhand des Modellnamens über Tool-Calling und Vision. Ein benutzerdefinierter Gateway-Name kann Function Calling deaktivieren — wenn Tool-Aufrufe fehlschlagen, prüfen Sie die Capability-Erkennungsregeln des Clients oder benennen Sie das Modell passend zu einer bekannten Familie.

### Lange Inferenz fügt :keep-alive und _gateway_warning hinzu
Während langer Upstream-Inferenz gibt das Gateway SSE-Kommentarzeilen :keep-alive aus (harmlos — überspringen Sie Zeilen, die mit : beginnen), und bei einem Abbruch mitten im Stream fügt es ein Feld _gateway_warning ein, statt einen Fehler zu erzeugen, damit Harnesses wie Claude Code nicht die ganze Unterhaltung abbrechen.

### Claude Code Auto-Modus: entscheiden Sie, wer das Sicherheitsurteil abgibt
Im Auto-Modus wartet Claude Code vor einer potenziell gefährlichen Aktion auf ein serverseitiges Urteil (ein safeguards-Feld in der Anfrage). Ist der Upstream das offizielle Anthropic, entsteht das Urteil innerhalb derselben Anfrage und das Gateway reicht es unverändert durch. Ist der Upstream ein Drittanbieter, der das Feld ignoriert, antwortet stattdessen das Gateway — und der ausgelieferte Standard (allow_all) gibt jede Aktion frei, was permissiver ist, als den Aufruf gar nicht zu beeinflussen. Geben Sie eine Route an ihren Upstream zurück, indem Sie "anthropic_server_safeguards": "upstream" in die extra_config dieses Upstreams schreiben; die Konsoleneinstellung ist nur für Administratoren.

## FAQ
### Kann ich Claude Code über GateLLM nutzen?
Ja — setzen Sie ANTHROPIC_BASE_URL auf die Gateway-Wurzel (ohne /v1) und ANTHROPIC_API_KEY auf einen Gateway-Zugriffsschlüssel. Benennen Sie das Gateway-Modell genau wie die ID, die Claude Code anfragt (z. B. claude-opus-5 oder claude-sonnet-5), oder gleichen Sie es über ANTHROPIC_MODEL ab.
### Wie richte ich die Codex CLI auf das Gateway?
Fügen Sie in ~/.codex/config.toml einen Block [model_providers.<id>] mit base_url = "https://your-gateway.gatellm.io/v1" hinzu, zeigen Sie env_key auf Ihre Zugriffsschlüssel-Umgebungsvariable und setzen Sie wire_api = "responses" — das Gateway implementiert /v1/responses nativ.
### Welche Coding-Agenten können keinen benutzerdefinierten Endpunkt nutzen?
Gehostete Plattformen wie Devin und Amazon Q Developer CLI stellen keine benutzerdefinierte Basis-URL bereit, sodass Sie sie nicht über das Gateway routen können. Warp unterstützt BYOK-Schlüssel, legt den Endpunkt aber auf die offiziellen Anbieter fest. Alles andere hier akzeptiert eine Basis-URL-Überschreibung.
### Funktionieren IDE-Erweiterungen (Cline / Roo / Kilo)?
Ja — wählen Sie in den Einstellungen den Anbieter „OpenAI Compatible“, fügen Sie die Gateway-/v1-URL + Zugriffsschlüssel + Modellnamen ein. Achten Sie auf die Capability-Erkennung: Manche leiten Tool-Calling aus der Modell-ID ab.
### Warum ist der Modellname so wichtig?
Harnesses senden eine feste Modell-ID — entweder ihren eigenen Standard oder Ihren konfigurierten Namen. Das Gateway routet nach genau diesem String, daher ist eine Abweichung ein 404 model_not_found und kein Tippfehler, den Sie ignorieren können.
### Was ist mit LiteLLM-basierten Agenten (Aider / OpenHands / SWE-agent)?
Sie lesen OPENAI_API_BASE und wollen ein openai/-Präfix am Modellnamen, damit LiteLLM das Gateway als OpenAI-kompatiblen Endpunkt behandelt.

## Verwandt
- [Startseite](https://www.gatellm.io/de/index.md)
- [Preise](https://www.gatellm.io/de/pricing.md)
- [Kostenrechner](https://www.gatellm.io/de/calculator.md)
- [Über uns](https://www.gatellm.io/de/about.md)
- [Demo buchen](https://www.gatellm.io/de/demo.md)
- [FAQ](https://www.gatellm.io/de/faq.md)
- [AI-Gateways vergleichen](https://www.gatellm.io/de/compare.md)
- [LiteLLM vergleichen](https://www.gatellm.io/de/compare/litellm.md)
- [OpenRouter vergleichen](https://www.gatellm.io/de/compare/openrouter.md)
- [Alibaba Cloud AI Gateway vergleichen](https://www.gatellm.io/de/compare/alibaba-cloud.md)
- [Azure API Management vergleichen](https://www.gatellm.io/de/compare/azure-apim.md)
- [Apigee vergleichen](https://www.gatellm.io/de/compare/apigee.md)
- [Cloudflare AI Gateway vergleichen](https://www.gatellm.io/de/compare/cloudflare.md)
- [Kong AI Gateway vergleichen](https://www.gatellm.io/de/compare/kong.md)
- [Portkey vergleichen](https://www.gatellm.io/de/compare/portkey.md)
- [LiteLLM vs Kong AI Gateway](https://www.gatellm.io/de/compare/litellm-vs-kong.md)
- [LiteLLM vs OpenRouter](https://www.gatellm.io/de/compare/litellm-vs-openrouter.md)
- [LiteLLM vs Portkey](https://www.gatellm.io/de/compare/litellm-vs-portkey.md)
- [Anwendungsfälle](https://www.gatellm.io/de/use-cases.md)
- [LLM-Kosten senken](https://www.gatellm.io/de/use-cases/reduce-cost.md)
- [Hochverfügbarkeit](https://www.gatellm.io/de/use-cases/high-availability.md)
- [Multi-Tenant-Isolation](https://www.gatellm.io/de/use-cases/multi-tenant.md)
- [Compliance & Audit](https://www.gatellm.io/de/use-cases/compliance-audit.md)
- [Fehlerbehebung nach Symptom](https://www.gatellm.io/de/use-cases/troubleshooting.md)
- [Gemischter Multi-Vendor-Modellstack](https://www.gatellm.io/de/use-cases/mixed-model-stack.md)
- [KI im Office selbst hosten](https://www.gatellm.io/de/use-cases/self-hosted-office-ai.md)
- [Token-Nutzung: Transparenz & Zuordnung](https://www.gatellm.io/de/use-cases/token-ops.md)
- [Token-FinOps: KI-Kosten zuordnen & steuern](https://www.gatellm.io/de/use-cases/token-finops.md)
- [MCP-Tool-Governance](https://www.gatellm.io/de/use-cases/mcp-tool-governance.md)
- [Websuche für jedes Modell](https://www.gatellm.io/de/use-cases/web-search-grounding.md)
- [Multi-Key-Rotation & Standby](https://www.gatellm.io/de/use-cases/multi-key-pooling.md)
- [Zugangskontrolle für verbundene Clients](https://www.gatellm.io/de/use-cases/client-admission-control.md)
- [Modellrichtlinie durchsetzen](https://www.gatellm.io/de/use-cases/enforce-model-policy.md)
- [Keine Modellwahl im Client](https://www.gatellm.io/de/use-cases/automatic-model-tiering.md)
- [Ein Protokoll, jedes Modell](https://www.gatellm.io/de/use-cases/one-protocol-any-model.md)
- [Office / Microsoft 365 Add-in](https://www.gatellm.io/de/office-addin.md)
- [Glossar](https://www.gatellm.io/de/glossary.md)
- [Modellkatalog](https://www.gatellm.io/de/models.md)
- [SDK- & Framework-Integrationen](https://www.gatellm.io/de/integrations.md)
- [Sicherheit & Compliance](https://www.gatellm.io/de/security.md)
