Claude Code bietet verschiedene Einstellungsmöglichkeiten, um sein Verhalten an Ihre Bedürfnisse anzupassen. Sie können Claude Code konfigurieren, indem Sie claude config in Ihrem Terminal ausführen oder den Befehl /config bei Verwendung des interaktiven REPL nutzen.

Konfigurationshierarchie

Die neue settings.json Datei ist unser offizieller Mechanismus zur Konfiguration von Claude Code durch hierarchische Einstellungen.

Benutzereinstellungen werden in ~/.claude/settings.json definiert und gelten für alle Projekte.

Projekteinstellungen werden in Ihrem Projektverzeichnis unter .claude/settings.json für gemeinsame Einstellungen und .claude/settings.local.json für lokale Projekteinstellungen gespeichert. Claude Code wird git so konfigurieren, dass .claude/settings.local.json ignoriert wird, wenn sie erstellt wird.

Für Unternehmensinstallationen von Claude Code unterstützen wir auch unternehmensweite Richtlinieneinstellungen. Diese haben Vorrang vor Benutzer- und Projekteinstellungen. Systemadministratoren können Richtlinien unter /Library/Application Support/ClaudeCode/policies.json auf macOS und /etc/claude-code/policies.json auf Linux und Windows via WSL bereitstellen.

Example settings.json
{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl:*)"
    ]
  },
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp"
  }
}

Einstellungspriorität

Einstellungen werden in der Reihenfolge ihrer Priorität angewendet, wobei spätere Quellen frühere Quellen überschreiben:

  • Benutzereinstellungen
  • Gemeinsame Projekteinstellungen
  • Lokale Projekteinstellungen
  • Kommandozeilenargumente
  • Unternehmensrichtlinien

Konfigurationsoptionen

Claude Code unterstützt globale und projektspezifische Konfigurationen.

Verwenden Sie die folgenden Befehle zur Verwaltung Ihrer Konfigurationen:

  • Einstellungen auflisten: claude config list
  • Eine Einstellung anzeigen: claude config get <key>
  • Eine Einstellung ändern: claude config set <key> <value>
  • Zu einer Einstellung hinzufügen (für Listen): claude config add <key> <value>
  • Von einer Einstellung entfernen (für Listen): claude config remove <key> <value>

Standardmäßig ändert config Ihre Projektkonfiguration. Um Ihre globale Konfiguration zu verwalten, verwenden Sie die Option --global (oder -g).

Globale Konfiguration

Um eine globale Konfiguration festzulegen, verwenden Sie claude config set -g <key> <value>:

KeyValueDescription
autoUpdaterStatusdisabled oder enabledAuto-Updater aktivieren oder deaktivieren (Standard: enabled)
envJSON (z.B. '{"FOO": "bar"}')Umgebungsvariablen, die auf jede Sitzung angewendet werden
preferredNotifChanneliterm2, iterm2_with_bell, terminal_bell, oder notifications_disabledWo Sie Benachrichtigungen erhalten möchten (Standard: iterm2)
themedark, light, light-daltonized, oder dark-daltonizedFarbthema
verbosetrue oder falseOb vollständige Bash- und Befehlsausgaben angezeigt werden sollen (Standard: false)

Projektkonfiguration

Verwalten Sie die Projektkonfiguration mit claude config set <key> <value> (ohne die -g Option):

KeyValueDescription
allowedToolsArray von ToolsWelche Tools ohne manuelle Genehmigung ausgeführt werden können
ignorePatternsArray von Glob-StringsWelche Dateien/Verzeichnisse bei der Verwendung von Tools ignoriert werden

Zum Beispiel:

# npm test ohne Genehmigung ausführen lassen
claude config add allowedTools "Bash(npm test)"

# npm test und alle seine Unterbefehle ohne Genehmigung ausführen lassen
claude config add allowedTools "Bash(npm test:*)"

# Claude anweisen, node_modules zu ignorieren
claude config add ignorePatterns node_modules
claude config add ignorePatterns "node_modules/**"

Berechtigungen

Sie können die Tool-Berechtigungen von Claude Code mit /allowed-tools verwalten. Diese Benutzeroberfläche listet alle Berechtigungsregeln und die settings.json-Datei auf, aus der sie stammen.

  • Allow-Regeln erlauben Claude Code die Verwendung des angegebenen Tools ohne weitere manuelle Genehmigung.
  • Deny-Regeln verhindern die Verwendung des angegebenen Tools durch Claude Code. Deny-Regeln haben Vorrang vor Allow-Regeln.

Berechtigungsregeln verwenden das Format: Tool(optionaler-Spezifizierer).

Zum Beispiel würde das Hinzufügen von WebFetch zur Liste der Allow-Regeln die Verwendung des Web-Fetch-Tools ohne Benutzer-Genehmigung erlauben. Siehe die Liste der für Claude verfügbaren Tools (verwenden Sie den Namen in Klammern, wenn angegeben.)

Einige Tools verwenden den optionalen Spezifizierer für eine feinere Berechtigungskontrolle. Zum Beispiel würde eine Allow-Regel mit WebFetch(domain:example.com) Abrufe von example.com erlauben, aber nicht von anderen URLs.

Bash-Regeln können exakte Übereinstimmungen wie Bash(npm run build) sein oder Präfix-Übereinstimmungen, wenn sie mit :* enden, wie Bash(npm run test:*)

Read() und Edit()-Regeln folgen der gitignore-Spezifikation. Muster werden relativ zum Verzeichnis aufgelöst, das .claude/settings.json enthält. Um einen absoluten Pfad zu referenzieren, verwenden Sie //. Für einen Pfad relativ zu Ihrem Home-Verzeichnis verwenden Sie ~/. Zum Beispiel Read(//tmp/build_cache) oder Edit(~/.zshrc). Claude wird auch bestmöglich versuchen, Read- und Edit-Regeln auf andere dateibezogene Tools wie Grep, Glob und LS anzuwenden.

MCP-Tool-Namen folgen dem Format: mcp__server_name__tool_name wobei:

  • server_name der Name des MCP-Servers ist, wie er in Claude Code konfiguriert wurde
  • tool_name das spezifische Tool ist, das von diesem Server bereitgestellt wird

Weitere Beispiele:

RegelBeschreibung
Bash(npm run build)Entspricht dem exakten Bash-Befehl npm run build.
Bash(npm run test:*)Entspricht Bash-Befehlen, die mit npm run test beginnen. Siehe Hinweis unten zur Behandlung von Befehlstrennzeichen.
Edit(~/.zshrc)Entspricht der Datei ~/.zshrc.
Read(node_modules/**)Entspricht jedem node_modules-Verzeichnis.
mcp__puppeteer__puppeteer_navigateEntspricht dem puppeteer_navigate-Tool vom puppeteer MCP-Server.
WebFetch(domain:example.com)Entspricht Fetch-Anfragen an example.com

Claude Code erkennt Befehlstrennzeichen (wie &&), sodass eine Präfix-Übereinstimmungsregel wie Bash(safe-cmd:*) keine Berechtigung gibt, den Befehl safe-cmd && other-cmd auszuführen

Auto-Updater Berechtigungsoptionen

Wenn Claude Code erkennt, dass es nicht über ausreichende Berechtigungen zum Schreiben in Ihr globales npm-Präfix-Verzeichnis verfügt (erforderlich für automatische Updates), sehen Sie eine Warnung, die auf diese Dokumentationsseite verweist. Detaillierte Lösungen für Auto-Updater-Probleme finden Sie im Fehlerbehebungsleitfaden.

Empfohlen: Erstellen Sie ein neues beschreibbares npm-Präfix

# Speichern Sie zunächst eine Liste Ihrer bestehenden globalen Pakete für die spätere Migration
npm list -g --depth=0 > ~/npm-global-packages.txt

# Erstellen Sie ein Verzeichnis für Ihre globalen Pakete
mkdir -p ~/.npm-global

# Konfigurieren Sie npm zur Verwendung des neuen Verzeichnispfads
npm config set prefix ~/.npm-global

# Hinweis: Ersetzen Sie ~/.bashrc durch ~/.zshrc, ~/.profile oder eine andere passende Datei für Ihre Shell
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc

# Wenden Sie die neue PATH-Einstellung an
source ~/.bashrc

# Installieren Sie nun Claude Code am neuen Speicherort neu
npm install -g @anthropic-ai/claude-code

# Optional: Installieren Sie Ihre vorherigen globalen Pakete am neuen Speicherort neu
# Schauen Sie in ~/npm-global-packages.txt nach und installieren Sie die Pakete, die Sie behalten möchten
# npm install -g package1 package2 package3...

Warum wir diese Option empfehlen:

  • Vermeidet Änderungen an Systemverzeichnisberechtigungen
  • Erstellt einen sauberen, dedizierten Speicherort für Ihre globalen npm-Pakete
  • Folgt den Best Practices für Sicherheit

Da Claude Code sich aktiv weiterentwickelt, empfehlen wir die Einrichtung automatischer Updates mit der oben empfohlenen Option.

Deaktivieren des Auto-Updaters

Wenn Sie den Auto-Updater lieber deaktivieren möchten, anstatt Berechtigungen zu korrigieren, können Sie Folgendes verwenden:

claude config set -g autoUpdaterStatus disabled

Optimieren Sie Ihre Terminal-Einrichtung

Claude Code funktioniert am besten, wenn Ihr Terminal richtig konfiguriert ist. Befolgen Sie diese Richtlinien, um Ihre Erfahrung zu optimieren.

Unterstützte Shells:

  • Bash
  • Zsh
  • Fish

Themes und Erscheinungsbild

Claude kann das Theme Ihres Terminals nicht steuern. Das wird von Ihrer Terminal-Anwendung gehandhabt. Sie können Claude Codes Theme während des Onboardings oder jederzeit über den /config-Befehl an Ihr Terminal anpassen

Zeilenumbrüche

Sie haben mehrere Möglichkeiten, Zeilenumbrüche in Claude Code einzufügen:

  • Schnelles Escape: Tippen Sie \ gefolgt von Enter für einen Zeilenumbruch
  • Tastenkombination: Drücken Sie Option+Enter (Meta+Enter) mit entsprechender Konfiguration

So richten Sie Option+Enter in Ihrem Terminal ein:

Für Mac Terminal.app:

  1. Öffnen Sie Einstellungen → Profile → Tastatur
  2. Aktivieren Sie “Option als Meta-Taste verwenden”

Für iTerm2 und VSCode Terminal:

  1. Öffnen Sie Einstellungen → Profile → Tasten
  2. Setzen Sie unter Allgemein die linke/rechte Option-Taste auf “Esc+”

Tipp für iTerm2 und VSCode Benutzer: Führen Sie /terminal-setup in Claude Code aus, um Shift+Enter automatisch als intuitivere Alternative zu konfigurieren.

Benachrichtigungseinrichtung

Verpassen Sie nie, wenn Claude eine Aufgabe abschließt, mit der richtigen Benachrichtigungskonfiguration:

Terminal-Klingel-Benachrichtigungen

Aktivieren Sie Tonbenachrichtigungen, wenn Aufgaben abgeschlossen sind:

claude config set --global preferredNotifChannel terminal_bell

Für macOS-Benutzer: Vergessen Sie nicht, die Benachrichtigungsberechtigungen in Systemeinstellungen → Benachrichtigungen → [Ihre Terminal-App] zu aktivieren.

iTerm 2 Systembenachrichtigungen

Für iTerm 2 Benachrichtigungen bei Aufgabenabschluss:

  1. Öffnen Sie iTerm 2 Einstellungen
  2. Navigieren Sie zu Profile → Terminal
  3. Aktivieren Sie “Klingel stumm schalten” und “Benachrichtigung senden, wenn inaktiv”
  4. Stellen Sie Ihre bevorzugte Benachrichtigungsverzögerung ein

Beachten Sie, dass diese Benachrichtigungen spezifisch für iTerm 2 sind und nicht im Standard macOS Terminal verfügbar sind.

Umgang mit großen Eingaben

Beim Arbeiten mit umfangreichem Code oder langen Anweisungen:

  • Vermeiden Sie direktes Einfügen: Claude Code könnte Probleme mit sehr langen eingefügten Inhalten haben
  • Verwenden Sie dateibasierte Workflows: Schreiben Sie Inhalte in eine Datei und lassen Sie Claude sie lesen
  • Beachten Sie VS Code-Einschränkungen: Das VS Code-Terminal neigt besonders dazu, lange Einfügungen abzuschneiden

Vim-Modus

Claude Code unterstützt eine Teilmenge von Vim-Tastenbindungen, die mit /vim aktiviert oder über /config konfiguriert werden können.

Die unterstützte Teilmenge umfasst:

  • Moduswechsel: Esc (zu NORMAL), i/I, a/A, o/O (zu INSERT)
  • Navigation: h/j/k/l, w/e/b, 0/$/^, gg/G
  • Bearbeitung: x, dw/de/db/dd/D, cw/ce/cb/cc/C, . (wiederholen)

Umgebungsvariablen

Claude Code unterstützt die folgenden Umgebungsvariablen zur Steuerung seines Verhaltens:

VariableZweck
DISABLE_AUTOUPDATERAuf 1 setzen, um den automatischen Updater zu deaktivieren
DISABLE_BUG_COMMANDAuf 1 setzen, um den /bug-Befehl zu deaktivieren
DISABLE_COST_WARNINGSAuf 1 setzen, um Kostenwarnungsmeldungen zu deaktivieren
DISABLE_ERROR_REPORTINGAuf 1 setzen, um die Sentry-Fehlerberichterstattung zu deaktivieren
DISABLE_TELEMETRYAuf 1 setzen, um Statsig-Telemetrie zu deaktivieren (beachten Sie, dass Statsig-Events keine Benutzerdaten wie Code, Dateipfade oder Bash-Befehle enthalten)
HTTP_PROXYHTTP-Proxy-Server für Netzwerkverbindungen angeben
HTTPS_PROXYHTTPS-Proxy-Server für Netzwerkverbindungen angeben
MCP_TIMEOUTTimeout in Millisekunden für MCP-Server-Start
MCP_TOOL_TIMEOUTTimeout in Millisekunden für MCP-Tool-Ausführung

Was this page helpful?