Zum Inhalt

settings.json

Die zentrale Konfigurationsdatei für Claude Code.

Speicherort

~/.claude/settings.json

Nicht in .bashrc

Environment-Variablen in .bashrc werden von Claude Code nicht zuverlässig gelesen. Nutze immer settings.json.

Vollständiges Beispiel

{
  "model": "claude-sonnet-4-20250514",
  "maxTokens": 8192,
  "permissions": {
    "allowedTools": ["Read", "Write", "Bash"],
    "deniedTools": ["Bash(rm -rf *)"]
  },
  "agentSettings": {
    "subAgentModel": "claude-haiku-4-20250514"
  },
  "env": {
    "ANTHROPIC_API_KEY": "sk-ant-...",
    "OPENAI_API_KEY": "sk-..."
  },
  "autoUpdatesChannel": "stable",
  "defaultPermissionMode": "normal"
}

Wichtige Felder

model

Haupt-Model für Claude Code:

{
  "model": "claude-sonnet-4-20250514"
}

Optionen: - claude-opus-4-20250514 - Beste Qualität, teuer - claude-sonnet-4-20250514 - Balanced (empfohlen) - claude-haiku-4-20250514 - Schnell & günstig

maxTokens

Maximale Output-Tokens pro Response:

{
  "maxTokens": 8192
}

Default: 4096. Höher = längere Antworten möglich, mehr Kosten.

permissions

Tool-Zugriffssteuerung:

{
  "permissions": {
    "allowedTools": ["Read", "Write", "Glob", "Grep", "Bash"],
    "deniedTools": [
      "Bash(rm -rf *)",
      "Bash(sudo *)",
      "Bash(curl * | bash)"
    ]
  }
}

Verfügbare Tools: - Read - Dateien lesen - Write - Dateien schreiben - Glob - Datei-Patterns matchen - Grep - Textsuche - Bash - Shell-Befehle (mit Pattern-Einschränkung)

agentSettings

Sub-Agent Konfiguration:

{
  "agentSettings": {
    "subAgentModel": "claude-haiku-4-20250514",
    "maxSubAgents": 5,
    "subAgentTimeout": 300
  }
}

Kosten sparen

subAgentModel: "claude-haiku-4-20250514" spart ~95% vs Opus bei Sub-Agents.

env

Environment-Variablen (zuverlässiger als .bashrc):

{
  "env": {
    "ANTHROPIC_API_KEY": "sk-ant-api03-...",
    "CLAUDE_CODE_USE_BEDROCK": "0",
    "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "8192",
    "DEBUG": "claude:*"
  }
}

autoUpdatesChannel

Update-Kanal:

{
  "autoUpdatesChannel": "stable"
}

Optionen: - latest - Neueste Features, evtl. instabil - stable - ~1 Woche verzögert, getestet (empfohlen)

defaultPermissionMode

Start-Modus:

{
  "defaultPermissionMode": "normal"
}

Optionen: - normal - Fragt bei jeder Änderung - auto-accept - Keine Bestätigung - plan - Erst planen, dann ausführen

Projekt-spezifische Settings

Zusätzlich zu globalen Settings:

./project/.claude/settings.json

Projekt-Settings überschreiben globale Settings.

Settings validieren

cat ~/.claude/settings.json | jq .

Wenn jq einen Fehler wirft, ist das JSON invalide.

Häufige Konfigurationen

Kosten-optimiert

{
  "model": "claude-sonnet-4-20250514",
  "maxTokens": 4096,
  "agentSettings": {
    "subAgentModel": "claude-haiku-4-20250514"
  }
}

Maximum Power

{
  "model": "claude-opus-4-20250514",
  "maxTokens": 16384,
  "agentSettings": {
    "subAgentModel": "claude-sonnet-4-20250514"
  }
}

Paranoid/Sicher

{
  "model": "claude-sonnet-4-20250514",
  "defaultPermissionMode": "plan",
  "permissions": {
    "deniedTools": [
      "Bash(rm *)",
      "Bash(sudo *)",
      "Bash(chmod 777 *)",
      "Bash(curl * | *)",
      "Bash(wget * | *)"
    ]
  }
}

Troubleshooting

Settings werden nicht geladen

  1. JSON-Syntax prüfen: jq . ~/.claude/settings.json
  2. Pfad prüfen: Muss exakt ~/.claude/settings.json sein
  3. Claude Code neu starten

env-Variablen greifen nicht

Sicherstellen dass in settings.json unter "env" definiert, nicht in .bashrc.

{
  "env": {
    "MY_VAR": "value"
  }
}