Claude CodeKapitel 15 von 31

Ein­stel­lungen und Ebenen

Gleiches Kapitel, drei Tiefen. Die Wahl gilt überall und bleibt gespeichert.

Tiefe 1: Überblick · Lesezeit 7 Min. · Stand

Claude Code merkt sich vieles, ohne dass man es jedes Mal neu sagt: mit welchem Modell eine Sitzung startet, welche Befehle ohne Rückfrage laufen, welche Dateien tabu sind, wie das Terminal aussieht. All das steht in Einstellungen, also in Schlüsseln im JSON-Format, verteilt auf eine Handvoll Dateien. Die Doku zu den Ein­stel­lungs­da­teien (externe Seite, code.claude.com) stellt die wichtigste Regel an den Anfang: Die Datei, aus der ein Wert kommt, bestimmt, für wen er gilt.

Dieses Kapitel ordnet die Dateien, zeigt, welcher Wert gewinnt, wenn derselbe Schlüssel an mehreren Stellen steht, und wie man nachsieht, was gerade gilt. Dazu kommt, was eine Organisation für alle festlegen kann. Wie man Regeln für Rechte schreibt, steht in Kapitel 16, was in eine CLAUDE.md gehört, in Kapitel 14.

Wo Einstellungen stehen

Claude Code liest vier Dateien. Eine Organisation kann zusätzlich Einstellungen über die Konsole von claude.ai ausliefern.

  • Nutzer (~/.claude/settings.json): gilt für einen selbst, in jedem Projekt auf diesem Rechner; gedacht für Thema, Standardmodell, eigene Freigaben.
  • Projekt (.claude/settings.json): gilt für alle, die im Projekt arbeiten, sobald die Datei im Repository liegt; gedacht für Rechte, Hooks und Plugins des Teams.
  • lokal (.claude/settings.local.json): gilt für einen selbst, nur in diesem Projekt; gedacht für persönliche Abweichungen, Versuche vor dem Teilen.
  • verwaltet (managed-settings.json und weitere Wege): gilt für alle, an die die Organisation sie verteilt; gedacht für Sicher­heits­vor­gaben und Compliance.

~/.claude ist der Ordner .claude im eigenen Benut­zer­ver­zeichnis, ein .claude ohne Tilde der Ordner im Projekt. Die Installation legt keine dieser Dateien an. Die Nutzerdatei schreibt Claude Code, sobald man in /config etwa das Thema ändert. Die lokale Datei entsteht bei der ersten dauerhaften Freigabe auf eine Rückfrage.

Eine fünfte Datei, ~/.claude.json, führt Claude Code für sich selbst. Darin stehen die Anmeldung, eigene MCP-Server, Ver­trau­ens­ent­schei­dungen je Projekt und einige Schalter aus /config. Von Hand bearbeiten muss man sie nicht. Rechte, Hooks und Umge­bungs­va­ria­blen haben dort keine Wirkung. Die Doku zur Fehlersuche in der Konfiguration (externe Seite, code.claude.com) führt diese Verwechslung als häufige Ursache, wenn global gesetzte Rechte wirkungslos bleiben.

Welche Einstellung gewinnt

Steht derselbe Schlüssel an mehreren Stellen, gilt der Wert der höchsten Ebene, die ihn setzt. Von oben nach unten:

  1. Verwaltet: die Einstellungen der Organisation. Kein Wert aus den eigenen Dateien überschreibt sie.
  2. Kommandozeile: JSON, das man beim Start mit --settings übergibt, nur für diese eine Sitzung.
  3. Lokal: .claude/settings.local.json im Projekt.
  4. Projekt: .claude/settings.json im Projekt.
  5. Nutzer: ~/.claude/settings.json.

Unterhalb der Organisation gewinnt also die Datei, die näher am Projekt liegt.

Meist gilt der Wert der höchsten Ebene, die ihn setzt. Drei Gruppen von Schlüsseln weichen davon ab. Links eine Leiter aus fünf Ebenen, oben die höchste: verwaltet, Kommandozeile mit --settings, lokal, Projekt, Nutzer. Darüber steht die Grundregel: Es gilt der Wert der höchsten Ebene, die ihn setzt. Rechts stehen drei Gruppen, die davon abweichen. Listen wie permissions.allow nehmen die Einträge aller Ebenen zusammen. Für vier Schlüssel zu Modellen gelten eigene Regeln, darunter diese zwei: fallbackModel kommt ganz aus der höchsten Datei, die es setzt, und ein verwaltetes availableModels gilt unverändert, eigene Einträge fallen weg, solange keine App, die Claude Code einbettet, eine eigene Liste mitbringt. Ein verwaltetes model oder autoCompactWindow ist nur ein Startwert, den --model, ANTHROPIC_MODEL und --autocompact für die Sitzung ändern. Für einige Schlüssel, die eine Sitzung einschränken, gilt der strengere Wert auch von weiter unten: disableClaudeAiConnectors mit true aus jeder Ebene, permissions.blockReadsOutsideWorkingDirectories ebenso ab Version 2.1.257, maxEffortLevel mit der niedrigsten Obergrenze aller Ebenen ab Version 2.1.267, remoteControlAtStartup mit false aus Projekt oder lokaler Datei. Diese Gruppe ist mit einem Pfeil hervorgehoben, der an der Leiter von unten nach oben zeigt. GRUNDREGEL es gilt der Wert der höchsten Ebene, die ihn setzt verwaltet Kommandozeile --settings lokal Projekt Nutzer oben: Vorrang LISTEN permissions.allow und andere: Einträge aller Ebenen eigene Regeln für vier Modell-Schlüssel, darunter: fallbackModel: ganz aus der höchsten Datei verwaltetes availableModels: eigene Einträge fallen weg STARTWERTE DER ORGANISATION verwaltetes model, autoCompactWindow: nur ein Startwert für die Sitzung wählen weiter: --model, ANTHROPIC_MODEL, --autocompact STRENGERE WERTE VON UNTEN gelten auch gegen verwaltete Einstellungen disableClaudeAiConnectors: true aus jeder Ebene blockReadsOutsideWorkingDirectories: ebenso, ab 2.1.257 maxEffortLevel: die niedrigste Obergrenze, ab 2.1.267 remoteControlAtStartup: false aus Projekt oder lokal
Meist gilt der Wert der höchsten Ebene, die ihn setzt. Drei Gruppen weichen ab. Listen werden zusammengeführt, manche Werte der Organisation sind nur Startwerte für die Sitzung. Einige strengere Werte gelten auch von weiter unten, zwei davon erst ab einer bestimmten Version.

eigene Darstellung nach der Her­stel­ler­do­ku­men­ta­tion zu Ein­stel­lungs­da­teien und verwalteten Einstellungen, Stand 12.10.2026

Listen folgen einer eigenen Regel. Steht etwa permissions.allow in mehreren Dateien, führt Claude Code die Einträge zusammen. Jede Datei kann so Einträge ergänzen, ohne die einer anderen zu entfernen. Für eine Organisation heißt das: Ihre Entwickler können eine verwaltete Liste erweitern, aber nichts daraus streichen (Doku zur Einrichtung für Organisationen (externe Seite, code.claude.com)).

Die Doku spielt die Rangfolge an den Tipps durch, die unter dem Spinner wechseln, solange Claude arbeitet. Wer sie in den eigenen Einstellungen mit "spinnerTipsEnabled": false abschaltet, sieht sie in einem Projekt wieder, dessen Team den Schlüssel auf true setzt. Eine Zeile in der lokalen Datei dieses Projekts holt den eigenen Wert zurück, und die Sitzungen der Kollegen bleiben, wie sie sind. Setzt dagegen die Organisation den Schlüssel, bleibt nur die Frage an den Administrator. Umgekehrt gilt für einige Schlüssel, die eine Sitzung einschränken, der strengere Wert auch dann, wenn er von weiter unten kommt. Welche das sind, steht in der Vertiefung. Dort steht auch, wie eine Organisation mit einem eigenen Mod einen ihrer Werte zur Obergrenze macht.

Einstellungen mit dem Team teilen

Seit Version 0.2.67 vom April 2025 lassen sich Rechteregeln eines Projekts in .claude/settings.json ablegen und so mit anderen teilen (Versionsliste (externe Seite, code.claude.com)). Heute gehört in diese Datei alles, was für jeden im Projekt gleich sein soll: Freigaben, Hooks, Plugins und die Umge­bungs­va­ria­blen, die das Projekt braucht. Liegt sie im Repository, bekommt sie jeder, der es klont.

Ein geteilter Wert kann an zwei Stellen hängen bleiben. Freigaberegeln, Marktplätze für Plugins und die meisten Umge­bungs­va­ria­blen aus der Projektdatei wirken erst, wenn jeder Einzelne dem Ordner vertraut hat. Bis dahin kommen weiter Rückfragen. Sperren und erzwungene Rückfragen gelten dagegen sofort, mit oder ohne Vertrauen (Beispieldateien (externe Seite, code.claude.com)). Außerdem wirken manche Schlüssel und Werte aus einer Projektdatei gar nicht, etwa "defaultMode": "auto". Ein fremdes Repository kann eine Sitzung so weder in den Modus auto noch, seit Version 2.1.257, in bypassPermissions schalten; mehr dazu in Vibe-Coding / Agentic Engineering, Kapitel 08.

Persönliches gehört in .claude/settings.local.json. Claude Code schreibt selbst hinein: Wer bei einer Rückfrage „Yes, and don’t ask again“ wählt, legt dort eine Freigaberegel ab. Beim ersten Schreiben nimmt Claude Code die Datei in die globale Ignorierliste von Git auf, damit sie in keinem Commit landet.

Eine Einstellung ändern

Im Terminal öffnet /config ein Menü. Es zeigt eine kurze Liste persönlicher Optionen wie Thema, Eingabemodus und ausführliche Ausgabe, und nur einen Teil der Schlüssel. Die meisten Änderungen landen in ~/.claude/settings.json. Seit Version 2.1.181 vom 17.06.2026 setzt /config schlüssel=wert einen Wert direkt aus der Eingabe, etwa /config verbose=true (Versionsliste (externe Seite, code.claude.com)). Das Chatfenster von VS Code und die Desktop-App öffnen /config nicht. Dort ändert man die Datei oder die Einstellungen der App.

Wer eine Datei von Hand bearbeitet, schreibt reines JSON. Ein Kommentar mit // oder ein Komma hinter dem letzten Eintrag gilt als Fehler, und Claude Code meldet die Datei beim nächsten Start. Eine Zeile mit dem Schlüssel $schema am Anfang gibt im Editor Vorschläge und eine Prüfung beim Tippen.

"$schema": "https://json.schemastore.org/claude-code-settings.json"

Seit Version 1.0.90 vom 25.08.2025 wirkt eine geänderte Datei ohne Neustart. Claude Code beobachtet seine Ein­stel­lungs­da­teien und lädt sie neu, sobald sie sich ändern, auch Rechte und Hooks. Einige Schlüssel liest es aber nur beim Start einer Sitzung, darunter Modell und Effort. Für die gibt es /model und /effort, siehe Kapitel 06.

Für eine einzige Sitzung übergibt man einen Wert beim Start, etwa claude --settings '{"model": "claude-opus-5-5"}'. Die Dateien bleiben dabei unverändert.

Prüfen, was gilt

/status zeigt in der Zeile „Setting sources“, welche Dateien die Sitzung geladen hat. Wirken verwaltete Einstellungen, steht in Klammern, auf welchem Weg sie kamen. Welche Datei welchen Schlüssel geliefert hat, zeigt die Zeile allerdings nicht. Abgelehnte Einträge listet claude doctor in der Shell. Es liest nur und startet dafür keine Sitzung. Was die Prüfung /doctor in einer Sitzung zusätzlich kann, steht in Kapitel 02.

Hängt ein Fehler womöglich an der eigenen Konfiguration, hilft seit Version 2.1.169 vom 08.06.2026 ein Start mit claude --safe-mode. Er schaltet CLAUDE.md, Plugins, Skills, Hooks und MCP-Server für diese Sitzung ab. Hooks und Richtlinien aus verwalteten Einstellungen gelten auch dann weiter. Verwaltete Plugins, Skills und MCP-Server und die CLAUDE.md der Organisation schaltet er dagegen mit ab.

Umgebungsvariablen als zweiter Weg

Vieles lässt sich auch über Umge­bungs­va­ria­blen steuern, vom Modell bis zu Zeitgrenzen. Sie stehen entweder in der Shell oder im Block env einer Einstellungsdatei. In der Shell gelten sie für diese Sitzung des Terminals, in der Datei bei jedem Start (Doku zu Umge­bungs­va­ria­blen (externe Seite, code.claude.com)).

Eine Ebene im Stapel sind Umge­bungs­va­ria­blen nicht. Gibt es für dieselbe Sache eine Variable und einen Schlüssel, regelt jedes Paar selbst, wer vorgeht. ANTHROPIC_MODEL aus der Shell gilt vor dem Schlüssel model aus jeder Datei, ANTHROPIC_DEFAULT_MODEL nur, solange keine Datei ein Modell setzt. Der Block env selbst ist ein gewöhnlicher Schlüssel und folgt der Rangfolge der Dateien.

Verwaltete Einstellungen einer Organisation

Verwaltete Einstellungen verteilt eine Organisation auf die Rechner aller Entwickler (Doku zu verwalteten Einstellungen (externe Seite, code.claude.com)). Sie stehen über allen anderen Ebenen. Meist kommen sie auf einem von drei Wegen auf den Rechner:

  • Serververwaltet: Ein Owner der Organisation legt sie in der Konsole von claude.ai an. Claude Code holt sie beim Start und danach stündlich. Das gibt es in den Tarifen Claude for Teams und Claude for Enterprise (Doku zu serververwalteten Einstellungen (externe Seite, code.claude.com)).
  • MDM oder Betriebssystem: als Kon­fi­gu­ra­ti­ons­profil unter macOS oder als Wert in der Registry von Windows, verteilt mit Werkzeugen wie Jamf, Intune oder Group Policy.
  • Datei: managed-settings.json in einem Systemordner, unter macOS in /Library/Application Support/ClaudeCode/, unter Linux und WSL in /etc/claude-code/, unter Windows in C:\Program Files\ClaudeCode\.

Auf jedem dieser Wege kommen dieselben Schlüssel an wie in einer eigenen Einstellungsdatei. Dazu kommen Schlüssel, die nur dort wirken: dass allein die Rechteregeln der Organisation gelten, allein ihre Hooks laufen oder allein ihre MCP-Server erlaubt sind, an welche Organisation die Anmeldung gebunden ist und welche Fassungen von Claude Code überhaupt starten. Seit Version 2.1.285 vom 29.09.2026 begrenzt allowedProviders, über welche Anbieter ein Rechner Claude erreichen darf, etwa nur die API von Anthropic oder nur Amazon Bedrock. Ob eine Vorgabe angekommen ist, zeigt /status in der Zeile „Setting sources“.

Eine Grenze nennt die Doku ausdrücklich. Serververwaltete Einstellungen setzt das Programm auf dem Rechner durch. Eine Sicherheitsgrenze sind sie damit nicht. Auf einem Rechner ohne Geräteverwaltung braucht niemand Admi­nis­tra­tor­rechte, um sie zu umgehen. Mehr Schutz geben Datei und MDM auf verwalteten Geräten, weil das Betriebssystem die Datei vor Änderungen schützen kann. Und jede dieser Vorgaben bindet allein Claude Code. Wer die API über ein anderes Werkzeug anspricht, steht nicht darunter.

Welche Ebene wofür passt

  • Eigene Vorlieben für alle Projekte: die Nutzerdatei, am bequemsten über /config.
  • Was im Team für alle gleich sein soll: die Projektdatei, im Repository committet.
  • Eine persönliche Abweichung in einem Projekt: die lokale Datei.
  • Ein Versuch für eine Sitzung: --settings beim Start.
  • Was niemand ändern darf: verwaltete Einstellungen, auf verwalteten Geräten besser per MDM oder Datei als allein über die Konsole. Wer auch Cloud-Sitzungen nutzt, braucht zusätzlich die Konsole.

Eine Cloud-Sitzung in einer Umgebung von Anthropic läuft auf einem frischen Klon. Sie liest von all dem höchstens die Projektdatei aus dem Repository, dazu die serververwalteten Einstellungen.

Die Vertiefung zeigt, welche Schlüssel eine Projektdatei nicht setzen kann, wo die Rangfolge Ausnahmen kennt, was hilft, wenn ein Wert nicht greift, und wie eine Organisation ihre Vorgaben ausrollt.

Quellen

13 Einträgealle erreichbar

Erreichbarkeit automatisch geprüft

↑↓ auswählenEnter öffnenDie Suche läuft im Browser. Nichts wird übertragen.