# Umgebungsvariablen

> ⚡ Noch nicht eingerichtet? Ein Befehl erledigt alles: `curl -fsSL https://qcode.cc/install/claude-code.sh | bash` (Windows: `irm https://qcode.cc/install/claude-code.ps1 | iex`). Siehe [Ein-Klick-Installationsskript](/docs/getting-started/one-click-install).

Nahezu jedes KI-Coding-Tool verwendet **Umgebungsvariablen**, um zu bestimmen „mit welchem Dienst es sich verbindet und welchen Schlüssel es nutzt“. Richten Sie diese beiden Angaben auf QCode.cc aus, und Ihr Tool sendet Anfragen an uns. Diese Seite erklärt, welche Variablen Sie setzen müssen, wo Sie sie konfigurieren und wie Sie die Verbindung überprüfen.

> 📖 Unsicher, ob `BASE_URL` auf `/api` oder ein anderes Präfix enden soll? Welche Zugriffsdomänen Sie wählen sollten? Beginnen Sie mit [Endpunkte & API-Pfade](/docs/getting-started/endpoints-and-api-paths). Noch keine Tools installiert? Siehe [Installation](/docs/getting-started/installation).

## 1. Die zwei Kernvariablen (Claude Code & Anthropic SDK)

Für die Verbindung mit den Claude-Modellen genügen zwei Umgebungsvariablen:

```bash
export ANTHROPIC_BASE_URL="https://api.qcode.cc/api"
export ANTHROPIC_AUTH_TOKEN="cr_your_key"
```

- **`ANTHROPIC_BASE_URL`** — die Zugriffsadresse, endend auf das Präfix `/api`. Das SDK fügt `/v1/messages` automatisch an.
- **`ANTHROPIC_AUTH_TOKEN`** — Ihr QCode.cc-Schlüssel, beginnend mit `cr_`, erstellt im [QCode.cc-Dashboard](https://qcode.cc/dashboard).

> **Zu `AUTH_TOKEN`**: Dies ist die interne Konvention für den Relay-Schlüssel — der Relay-Schlüssel gehört immer in `ANTHROPIC_AUTH_TOKEN` (und nicht in `ANTHROPIC_API_KEY`, der für den direkten offiziellen Zugang vorgesehen ist). Claude Code sendet ihn als Bearer-Token. Falls Ihr Tool nur `ANTHROPIC_API_KEY` erkennt, funktioniert es auch, denselben `cr_`-Schlüssel dort einzutragen.

> **⚠️ Kein abschließender Schrägstrich**: Verwenden Sie `https://api.qcode.cc/api`, **nicht** `https://api.qcode.cc/api/`. Das SDK hängt `/v1/messages` an, sodass ein zusätzlicher Schrägstrich zu `//v1/messages` führt und einen 404-Fehler zurückgibt.

Diese beiden Variablen funktionieren sowohl für Claude Code als auch für die offiziellen Anthropic-SDKs (Python / TypeScript) — das SDK liest ebenfalls `ANTHROPIC_BASE_URL`, alternativ können Sie `base_url=` beim Erstellen des Clients übergeben.

## 2. Tabelle pro Tool

Verschiedene Tools lesen unterschiedliche Umgebungsvariablen. Ordnen Sie Ihr Tool unten zu:

| Tool | Umgebungsvariablen | Wert |
|------|----------------------|-------|
| Claude Code | `ANTHROPIC_BASE_URL`<br>`ANTHROPIC_AUTH_TOKEN` | `https://api.qcode.cc/api`<br>`cr_your_key` |
| Anthropic SDK (Python/JS) | `ANTHROPIC_BASE_URL`<br>`ANTHROPIC_AUTH_TOKEN` | `https://api.qcode.cc/api`<br>`cr_your_key` |
| Codex CLI | `base_url` in `~/.codex`-Konfiguration | `https://api.qcode.cc/openai` |
| OpenAI-kompatible Tools | `OPENAI_BASE_URL`<br>`OPENAI_API_KEY` | `https://api.qcode.cc/openai/v1`<br>`cr_your_key` |
| Gemini / Antigravity | Basis-URL | `https://api.qcode.cc/gemini` |

Einige Hinweise:

- **Codex CLI** liest `OPENAI_BASE_URL` nicht zur Bestimmung des Upstream; stattdessen verwendet es das `base_url` in der `~/.codex`-Konfigurationsdatei (endend auf `/openai`, OpenAI-Responses-Protokoll). Die exakte Syntax finden Sie unter [Endpunkte & API-Pfade](/docs/getting-started/endpoints-and-api-paths).
- **OpenAI-kompatible Tools** (das offizielle OpenAI-SDK, LangChain, generische Clients) lesen `OPENAI_BASE_URL` und `OPENAI_API_KEY`, wobei die Basis auf `/openai/v1` endet.
- **Gemini / Antigravity**: Die Basis endet auf `/gemini`; das SDK fügt `/v1beta/` selbst an. Derselbe `cr_`-Schlüssel funktioniert.

> **Ein Schlüssel für alle drei Protokolle**: Ihr `cr_`-Schlüssel ist protokollunabhängig — `/api` steht für Anthropic, `/openai/v1` für OpenAI, `/gemini` für Google Gemini. Der Wechsel zwischen Tools bedeutet nur den Wechsel der BASE_URL; der Schlüssel bleibt derselbe.

### Verfügbare Modelle

Nach der Verbindung wählen Sie einen Modellnamen entsprechend dem Protokoll Ihres Tools (ausführlichere Angaben unter [Endpunkte & API-Pfade](/docs/getting-started/endpoints-and-api-paths)):

- **Claude-Modelle** (Tagesstandard ist die 5er-Linie): `claude-sonnet-5` (1M, ausgewogen), `claude-opus-5` (1M, aktuelles Flaggschiff), `claude-fable-5` (1M, Spitzenklasse), `claude-sonnet-4-6` / `claude-opus-4-8` / `claude-opus-4-7` (Vorherige Generation, weiterhin verfügbar), `claude-haiku-4-5` (200K)
- **GPT-Familie**: `gpt-6-sol` (empfohlen), `gpt-6-luna`, `gpt-5.6-terra`, `gpt-5.6-sol`
- **Gemini-Familie**: `gemini-2.5-pro`, `gemini-3.5-flash`, `gemini-2.5-flash`
- **China-Familie** (GLM / Kimi / DeepSeek / Qwen): `glm-5.3`, `kimi-k3`, `deepseek-v4-pro`, `qwen3.8-max` und weitere — siehe [China-Modelle](/docs/usage/cn-models)
- **Bildmodelle**: `gpt-image-2` (Endpunkt `https://api.qcode.cc/qcode-img/v1`)

> **Claude Code Kontextlänge**: Claude Code verwendet standardmäßig ein **200K**-Fenster; die **1M-Kontext**-Option wird von `claude-opus-5`, `claude-sonnet-5`, `claude-fable-5`, `claude-opus-4-8` und `claude-sonnet-4-6` unterstützt.
## 3. Wo Sie sie festlegen

Der Ort, an dem Sie eine Umgebungsvariable festlegen, bestimmt ihren Geltungsbereich. Drei übliche Vorgehensweisen:

**① Shell-rc-Datei (persistent, global)** — schreiben Sie sie in `~/.zshrc` (macOS / zsh) oder `~/.bashrc` (Linux / bash), damit jedes neue Terminal sie automatisch übernimmt:

```bash
echo 'export ANTHROPIC_BASE_URL="https://api.qcode.cc/api"' >> ~/.zshrc
echo 'export ANTHROPIC_AUTH_TOKEN="cr_your_key"' >> ~/.zshrc
source ~/.zshrc
```

Benutzer von bash ersetzen `~/.zshrc` durch `~/.bashrc`.

**② Projekt-`.env` (persistent, pro Projekt)** — legen Sie eine `.env`-Datei im Projektstamm ab; sie gilt nur für dieses Projekt, praktisch für unterschiedliche Schlüssel je Projekt:

```bash
ANTHROPIC_BASE_URL=https://api.qcode.cc/api
ANTHROPIC_AUTH_TOKEN=cr_your_key
```

> Eine `.env` enthält Ihren Schlüssel — denken Sie daran, sie zu `.gitignore` hinzuzufügen und niemals zu committen.

**③ Eigene Einstellungen des Tools (pro Tool)** — manche Tools haben eine eigene Konfigurationsdatei oder Benutzeroberfläche, z. B. `~/.codex` von Codex CLI oder ein Einstellungs-Panel eines Editor-Plugins. Solche Einstellungen gelten nur für dieses Tool.

**Persistent vs. pro Sitzung**: Alle drei oben genannten sind **persistent**. Wenn Sie etwas nur in der **aktuellen Terminal-Sitzung** testen möchten, verwenden Sie einfach `export` (macOS/Linux) bzw. `$env:` (Windows PowerShell) — es verschwindet, wenn Sie das Terminal schließen:

```bash
# macOS / Linux, per-session
export ANTHROPIC_BASE_URL="https://api.qcode.cc/api"
export ANTHROPIC_AUTH_TOKEN="cr_your_key"
```

```powershell
# Windows PowerShell, per-session
$env:ANTHROPIC_BASE_URL = "https://api.qcode.cc/api"
$env:ANTHROPIC_AUTH_TOKEN = "cr_your_key"
```

> **Hinweis zur Vorrangfolge**: Umgebungsvariablen, die beim Prozessstart gelesen werden, haben Vorrang vor Konfigurationsdateien. Nach dem Bearbeiten einer Shell-rc-Datei denken Sie daran, sie zu `source`n oder ein neues Terminal zu öffnen; wenn dieselbe Variable an mehreren Stellen gesetzt ist, gewinnt die, die der Prozess tatsächlich erbt.

## 4. 🇨🇳 Hinweis für CN-Nutzer

Nutzer in Festland-China sollten den BASE_URL-Host von `api.qcode.cc` auf `asia.qcode.cc` umstellen (Asien-Knoten, nächstgelegener von Korea / Taiwan / Hong Kong, geografisch am nächsten, niedrigste Latenz):

```bash
export ANTHROPIC_BASE_URL="https://asia.qcode.cc/api"
export ANTHROPIC_AUTH_TOKEN="cr_your_key"
```

Dasselbe gilt für andere Protokolle: OpenAI-kompatible Tools verwenden `https://asia.qcode.cc/openai/v1`, Codex verwendet `https://asia.qcode.cc/openai`, und Gemini verwendet `https://asia.qcode.cc/gemini`. Alle drei Zugriffsdomänen bieten identische Funktionen; derselbe Schlüssel funktioniert über alle — wechseln Sie also zurück zu `api.qcode.cc` (globales Route 53 Routing), wenn `asia` instabil ist. Siehe [Endpoints & API-Pfade](/docs/getting-started/endpoints-and-api-paths).

## 5. Überprüfung

Nach dem Setzen der Variablen prüfen Sie zunächst, ob die Werte korrekt sind:

```bash
echo $ANTHROPIC_BASE_URL
echo $ANTHROPIC_AUTH_TOKEN
```

Anschließend verwenden Sie curl, um sicherzustellen, dass die Zugriffsadresse erreichbar ist (**ohne Schlüssel** — nur Pfad und Netzwerk testen):

```bash
curl -s -o /dev/null -w '%{http_code}' \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  https://api.qcode.cc/v1/models
# → 200 = network, path and key all good
```

**Interpretation**: `200` bedeutet, dass Netzwerk, Endpunkt und Schlüssel alle gesetzt sind. `401` bedeutet, dass der Schlüssel ungültig ist oder nicht korrekt gesendet wird (prüfen Sie, ob das `cr_`-Präfix vollständig kopiert wurde); `404` bedeutet in der Regel ein falscher Pfad-Präfix. Hinweis: Der Zugriff auf den Endpunkt **ohne Schlüssel** liefert eine HTML-Einführungsseite (HTTP 200) zurück, statt eines Fehlers — wenn Sie diese Seite sehen, wurde Ihr Schlüssel nicht angehängt. Vollständige curl-Selbsttests: [Endpoints & API-Pfade](/docs/getting-started/endpoints-and-api-paths).

Führen Sie einen End-to-End-Test mit Ihrem echten Schlüssel durch:

```bash
curl -X POST https://api.qcode.cc/api/v1/messages \
  -H "x-api-key: $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":64,"messages":[{"role":"user","content":"ping"}]}'
```

Eine normale JSON-Antwort bedeutet, dass Ihre Umgebungsvariablen konfiguriert sind und Sie loslegen können.

> Möchten Sie das Modell, die Kontextlänge und die Nutzung jeder Anfrage prüfen? Jede Zugriffsdomäne meldet sich auf [probe.qcode.cc](https://probe.qcode.cc) — geben Sie Ihren `cr_`-Schlüssel ein, um sie anzuzeigen.
## 6. Gateway-relevante Variablen

Wenn Claude Code mit einem Drittanbieter-Gateway (inklusive QCode) kommuniziert, sind diese offiziellen Variablen relevant. Definitionen aus der [Referenz zu Umgebungsvariablen](https://code.claude.com/docs/en/env-vars) und der [Anleitung zum Verbinden mit einem Gateway](https://code.claude.com/docs/en/llm-gateway-connect) (geprüft am 2026-09-18):

| Variable | Wann relevant |
|---|---|
| `ANTHROPIC_DEFAULT_MODEL` | Legt das **Standardmodell für neue Sitzungen** fest (seit 2.1.236, 2026-08-19). Im Gegensatz zu `ANTHROPIC_MODEL`: Eine Auswahl über `/model` innerhalb der Sitzung überschreibt diese Variable und bleibt auch nach Neustarts erhalten, während `ANTHROPIC_MODEL` bei jedem Start neu angewendet wird |
| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` | Ermöglicht es der `/model`-Auswahl, die Modellliste des Gateways zu lesen (upstream standardmäßig deaktiviert, da Gateways mit freigegebenen Schlüsseln Modelle auflisten können, die Sie nicht nutzen dürfen). Gegenüber QCode zeigt die Liste die **Claude-Familien-IDs** an (es werden nur Namen mit `claude` / `anthropic` erfasst); **chinesische Modelle erscheinen nie** — setzen Sie für diese weiterhin `ANTHROPIC_MODEL` / `ANTHROPIC_DEFAULT_MODEL` |
| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` | Entfernt den `anthropic-beta`-Header und Beta-Tool-Felder. Aktivieren Sie dies, wenn das Gateway mit `Unexpected value(s) … anthropic-beta` und einem 400-Fehler antwortet |
| `CLAUDE_CODE_DISABLE_ARTIFACT=1` | Deaktiviert das Artifact-Tool (einmal gesetzt, kann es über die Settings-Oberfläche nicht wieder aktiviert werden). Claude Code 2.1.265–2.1.267 sandte ein Tool-Schema, das strikte Gateways sofort ablehnen (400); der offizielle Fix ist das Upgrade auf ≥2.1.268 — diese Variable ist die Übergangslösung |
| `CLAUDE_CODE_ATTRIBUTION_HEADER=0` | Offizielle Bedeutung: Entfernt den Attributionsblock (Client-Version + Prompt-Fingerprint) am Anfang des System-Prompts. **Wir haben nicht getestet**, ob das Deaktivieren vorteilhaft ist, und diese Seite empfiehlt es nicht — lesen Sie die offizielle Dokumentation und entscheiden Sie selbst |

---

> 💡 Noch keinen Key, oder möchten Sie die Abrechnung pro Modell verstehen? Schauen Sie auf die [QCode.cc Preisseite](https://qcode.cc/pricing) und wählen Sie einen passenden Plan.