# Spickzettel — Der env-Block für GLM-Routing in Claude Code

Datei: `.claude/settings.local.json` (projektbezogen, von Git ignoriert) oder `~/.claude/settings.json` (maschinenweit).

```json
{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "DEIN_ZAI_API_KEY",
    "ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-4.7",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-5.2[1m]",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5.2[1m]",
    "CLAUDE_CODE_AUTO_COMPACT_WINDOW": "1000000",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
    "API_TIMEOUT_MS": "3000000"
  }
}
```

## Was die Felder bedeuten

| Feld | Funktion |
|---|---|
| `ANTHROPIC_AUTH_TOKEN` | Bearer-Token für den Gateway. Bei Z.ai zwingend hier, nicht in `ANTHROPIC_API_KEY`. |
| `ANTHROPIC_BASE_URL` | Biegt sämtlichen Traffic auf den fremden Endpoint um. |
| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Tier *haiku* → günstiges `glm-4.7`. |
| `ANTHROPIC_DEFAULT_SONNET_MODEL` | Tier *sonnet* → `glm-5.2[1m]` (1-Mio-Kontext). |
| `ANTHROPIC_DEFAULT_OPUS_MODEL` | Tier *opus* → `glm-5.2[1m]`. |
| `API_TIMEOUT_MS` | Hochgesetzt, weil GLM langsamer antwortet und Agent-Loops sonst timeouten. |

## Verifizieren

1. `echo $ANTHROPIC_BASE_URL` → muss `https://api.z.ai/api/anthropic` ausgeben
2. `/model` → sollte GLM-5.2 zeigen, keinen Claude-Fallback
3. Identity-Probe: „What model are you?" → sagt es „Claude", ist das Routing falsch

## Häufige Fehler

- Falsche Key-Variable (`ANTHROPIC_API_KEY` statt `AUTH_TOKEN`)
- Falscher URL-Pfad (nicht der generische OpenAI-Pfad)
- Prozess nicht vollständig neu gestartet
- Konkurrierendes Claude-Login hat Vorrang → mit `/status` prüfen
- Key im Git: `settings.local.json` in `.gitignore` belassen

Quelle: offizielle Z.ai-Doku zur Claude-Code-Integration.
