settings.json¶
Die zentrale Konfigurationsdatei für Claude Code.
Speicherort¶
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:
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:
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:
Optionen:
- latest - Neueste Features, evtl. instabil
- stable - ~1 Woche verzögert, getestet (empfohlen)
defaultPermissionMode¶
Start-Modus:
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:
Projekt-Settings überschreiben globale Settings.
Settings validieren¶
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¶
- JSON-Syntax prüfen:
jq . ~/.claude/settings.json - Pfad prüfen: Muss exakt
~/.claude/settings.jsonsein - Claude Code neu starten
env-Variablen greifen nicht¶
Sicherstellen dass in settings.json unter "env" definiert, nicht in .bashrc.