.claude.json — Komplette Feldreferenz
Die Datei ~/.claude.json (bzw. ~/.claude-<oauth-suffix>.json) ist die zentrale Konfigurationsdatei von Claude Code (interner Codename: Tengu). Sie wird bei jedem Start gelesen und bei Zustandsänderungen geschrieben.
Wichtig: Die meisten Felder sind interner State, keine User-Konfiguration. Einstellungen wie model, permissions und hooks gehören in ~/.claude/settings.json.
Dieses Gist dokumentiert jedes einzelne Feld — abgeleitet aus dem Source-Type GlobalConfig in src/utils/config.ts.
Struktur der Datei
Die Datei hat zwei Ebenen:
- Globale Felder (Top-Level) — gelten für alle Projekte
- Projekt-Felder (unter
projects[path]) — pro Git-Root gespeichert
Die wichtigsten Bereiche
Installation & Updates
{
"numStartups": 342,
"installMethod": "native",
"autoUpdates": true,
"firstStartTime": "2025-06-15T10:30:00Z",
"migrationVersion": 12
}numStartups wird bei jedem Start inkrementiert und dient als interner Zähler für Tip-Anzeige, Onboarding-Logik und Feature-Rollouts.
User & Authentifizierung
{
"userID": "user_abc123",
"oauthAccount": {
"accountUuid": "...",
"emailAddress": "...",
"organizationUuid": "...",
"billingType": "pro"
},
"primaryApiKey": "sk-ant-..."
}Der userID ist auch die Basis für die deterministische Companion-Berechnung (siehe Buddy-Patch-Post).
UI, Theme & Editor
Hier stecken die User-Preferences, die über die CLI gesetzt werden:
| Feld | Beschreibung |
|------|-------------|
| theme | 'dark', 'light', 'light-daltonized', ... |
| editorMode | 'vim', 'emacs', etc. |
| verbose | Verbose Output |
| diffTool | 'terminal' oder 'auto' (VSCode) |
| autoCompactEnabled | Auto-Compact bei langem Kontext |
Terminal & IDE Integration
Claude Code merkt sich den Zustand diverser Terminal-Integrationen:
- iTerm2: Key-Bindings, Backup-Pfad, Setup-Status
- Terminal.app: Option-as-Meta, Backup-Pfad
- IDE Auto-Connect: Automatische VSCode/JetBrains-Verbindung
- Deep Links:
claude-cli://URL-Handling
Companion / Buddy
{
"companion": {
"species": "dragon",
"rarity": "epic",
"stats": { "debugging": 8, "patience": 5, "chaos": 7, "wisdom": 9, "snark": 6 }
},
"companionMuted": false
}Das companion-Feld wird beim ersten Start aus hash(userId + salt) generiert. Löscht man es, wird der Buddy beim nächsten Start neu berechnet.
MCP Server
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["server.js"],
"env": { "API_KEY": "..." }
}
}
}Globale MCP-Server (User-Scope). Projekt-spezifische Server gehören in die .mcp.json im Projekt-Root.
Subscription & Billing
Ein ganzer Block an Cache-Feldern für Subscription-Status, Upsell-Counter und Feature-Zugang. Spannend: Man kann hier sehen, welche Subscription-Tiers es gibt und wie Claude Code den Zugang cached:
hasAvailableSubscription— Hat der User eine aktive Subscription?s1mAccessCache— Zugang zu Sonnet-1M pro OrganisationpassesEligibilityCache— Guest-Pass-BerechtigungoverageCreditGrantCache— Extra-Usage-Credits
Projekt-Felder
Unter projects["/pfad/zum/repo"] speichert Claude Code pro-Projekt-State:
Tools & Permissions
{
"projects": {
"/Users/me/my-project": {
"hasTrustDialogAccepted": true,
"allowedTools": ["Read", "Write", "Bash", "Glob", "Grep"]
}
}
}Session-Metriken
Nach jeder Session werden Metriken gespeichert — nützlich, um den eigenen Verbrauch zu tracken:
| Feld | Beschreibung |
|------|-------------|
| lastCost | Kosten der letzten Session |
| lastDuration | Dauer der letzten Session |
| lastTotalInputTokens | Input-Tokens |
| lastTotalOutputTokens | Output-Tokens |
| lastLinesAdded | Hinzugefügte Zeilen |
| lastLinesRemoved | Entfernte Zeilen |
Worktree Sessions
{
"activeWorktreeSession": {
"originalCwd": "/Users/me/project",
"worktreePath": "/Users/me/project/.worktrees/feature-x",
"worktreeName": "feature-x",
"sessionId": "sess_123"
}
}Feature Flags (tengu_*)
Claude Code verwendet GrowthBook für Feature-Flags. Die Flags werden in cachedGrowthBookFeatures gecached und beim Start geladen.
Die Flag-Werte werden in dieser Reihenfolge aufgelöst:
CLAUDE_INTERNAL_FC_OVERRIDESEnv-Variable (nur Anthropic-intern)growthBookOverridesin~/.claude.json(nur intern, via/config)- In-Memory GrowthBook-Cache (letzter Netzwerk-Fetch)
cachedGrowthBookFeaturesauf Disk (Offline-Fallback)
Das Gist enthält eine vollständige Tabelle aller 100+ tengu_-Flags mit Beschreibung, Default-Werten und Build-Flag-Status — von Agent Swarms über Voice Mode bis Computer Use.
Fazit
Die ~/.claude.json ist weit mehr als eine simple Config-Datei — sie ist der komplette persistente State von Claude Code. Wer versteht, was hier gespeichert wird, kann Claude Code besser debuggen, Probleme schneller eingrenzen und die eigene Nutzung besser nachvollziehen.
Die vollständige Referenz mit allen Feldern, Typen und Beschreibungen gibt es im Gist auf GitHub.