Zum Inhalt springen
Gist

.claude.json — Komplette Feldreferenz

4. April 2026·3 Min. Lesezeit
AIClaudeClaude CodeReferenceDokumentation

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:

  1. Globale Felder (Top-Level) — gelten für alle Projekte
  2. 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 Organisation
  • passesEligibilityCache — Guest-Pass-Berechtigung
  • overageCreditGrantCache — 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:

  1. CLAUDE_INTERNAL_FC_OVERRIDES Env-Variable (nur Anthropic-intern)
  2. growthBookOverrides in ~/.claude.json (nur intern, via /config)
  3. In-Memory GrowthBook-Cache (letzter Netzwerk-Fetch)
  4. cachedGrowthBookFeatures auf 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.