factsClaude Codesettings

stable4 日前 · 2026-08-09

Claude Code settings

概要

settings.json による Claude Code の設定。スコープ(managed / user / project / local)、設定キーの一覧、優先順位を扱う。対話セッションでは /config で設定 UI を開く。v2.1.181 から /config key=value で UI を開かずに 1 項目を変更できる。

仕様

スコープ

スコープ場所影響範囲チーム共有
Managedserver-managed settings、plist / registry、システムレベルの managed-settings.jsonserver-managed は組織の全メンバー。plist / HKLM registry / ファイル配布はマシンの全ユーザー。HKCU registry は現在のユーザーはい(IT が配布)
User~/.claude/自分の全プロジェクトいいえ
Projectリポジトリ内の .claude/このリポジトリの全共同作業者はい(git にコミット)
Localリポジトリルートの .claude/settings.local.jsonこのリポジトリの自分だけいいえ(Claude Code が設定を保存するとき gitignore される)
機能UserProjectLocal
Settings~/.claude/settings.json.claude/settings.json.claude/settings.local.json
Subagents~/.claude/agents/.claude/agents/なし
MCP servers~/.claude.json.mcp.json~/.claude.json(プロジェクトごと)
Plugins~/.claude/settings.json.claude/settings.json.claude/settings.local.json
CLAUDE.md~/.claude/CLAUDE.mdCLAUDE.md または .claude/CLAUDE.mdCLAUDE.local.md
  • Windows では ~/.claude%USERPROFILE%\.claude に解決される

settings ファイル

  • .claude/settings.local.json に設定を保存するとき、リポジトリがまだ無視していなければ **/.claude/settings.local.json をグローバル git excludes ファイルに追加する。そのファイルは、絶対パスまたは ~/ 始まりで設定されていればグローバル git config の core.excludesFile、無ければ $XDG_CONFIG_HOME/git/ignore、無ければ ~/.config/git/ignore
  • .claude/settings.local.json は git リポジトリルート(worktree はメイン checkout に解決)で読み書きされ、1 ファイルでリポジトリ内のどのサブディレクトリ・worktree のセッションもカバーする。起動ディレクトリに残るのは 3 つの場合: git リポジトリ外、リポジトリルートがホームディレクトリ、Agent SDK セッション
  • 恒久的な「don't ask again」の permission 承認もこのファイルに保存される
  • このファイルはリポジトリのものではなく自分のものなので、allow ルールは .claude/settings.json が要求する workspace trust のステップなしで有効になる。リポジトリが供給した場合(コミットされている等)は workspace trust が適用される

managed settings の配布方法:

  • Server-managed settings: サインイン時にリモート配布(claude.ai admin console または self-hosted Claude apps gateway)

  • MDM / OS レベルのポリシー

    • macOS: com.anthropic.claudecode managed preferences ドメイン。plist のトップレベルキーは managed-settings.json に対応し、ネストした設定は dictionary、配列は plist array
    • Windows: HKLM\SOFTWARE\Policies\ClaudeCode レジストリキーの Settings 値(REG_SZ または REG_EXPAND_SZ の JSON)
    • Windows(ユーザーレベル): HKCU\SOFTWARE\Policies\ClaudeCode(ポリシー優先度は最低。admin レベルのソースが無いときのみ使われる)
  • ファイルベース: システムディレクトリに配置する managed-settings.jsonmanaged-mcp.json

    • macOS: /Library/Application Support/ClaudeCode/
    • Linux / WSL: /etc/claude-code/
    • Windows: C:\Program Files\ClaudeCode\
    • レガシーの C:\ProgramData\ClaudeCode\managed-settings.json は v2.1.75 以降サポートされない
    • 同じシステムディレクトリの managed-settings.d/ ドロップインディレクトリもサポートする。systemd の慣習に従い managed-settings.json をベースにマージし、その上にドロップインディレクトリの *.json をアルファベット順でマージする。スカラー値は後のファイルが優先、配列は連結・重複排除、オブジェクトは deep merge。. で始まる隠しファイルは無視される。マージ順は 10-telemetry.json のような数値接頭辞で制御する
  • その他の設定は ~/.claude.json に保存される(OAuth セッション、user / local スコープの MCP サーバー設定、プロジェクトごとの状態、各種キャッシュ)

  • Claude Code は設定ファイルのタイムスタンプ付きバックアップを自動作成し、最新 5 件を保持する

  • $schemahttps://json.schemastore.org/claude-code-settings.json を指定するとエディタの補完と検証が効く。公開スキーマは定期更新のため、最新リリースで追加された設定は含まれないことがある

反映のタイミング

  • 設定ファイルは監視され、変更されると再読み込みされる。permissionshooksapiKeyHelper などのキーは再起動なしに反映される。user / project / local / managed のすべてが対象で、変更ごとに ConfigChange hook が発火する
  • セッション開始時に一度だけ読まれ、次回起動から反映されるキー
    • model: セッション中は /model で切り替える
    • outputStyle: システムプロンプトの一部で、/clear か再起動で再構築される

managed settings の不正エントリ

  • managed settings は寛容にパースされる。スキーマ検証に失敗したエントリを除去し、警告を記録し、残りの有効なポリシーをすべて強制する。/doctor で除去されたエントリを出所ファイル・フィールドとともに一覧できる。v2.1.169 以降が必要
  • security-enforcement のフィールドは丸ごと除去されず、フィールドごとに扱われる
フィールド存在するが不正なときの挙動
allowedMcpServers空の allowlist として強制され、修正するまで MCP サーバーは 1 つも通らない。個別の不正エントリは除去され有効な部分集合が強制される
allowManagedMcpServersOnlytrue として扱う
availableModels空の allowlist として強制され、修正するまで Default モデルのみ利用可能。個別の非文字列エントリは除去される(v2.1.175 以降)
enforceAvailableModelstrue として扱う(v2.1.175 以降)
forceLoginOrgUUID修正するまでどの組織もログインできない
deniedMcpServers個別の不正エントリは除去され有効な部分集合が強制される。値全体が不正なら警告付きで破棄される
sandbox.credentialspath / name が有効で modemask / deny の不正エントリ(extract に捕捉グループが無い等)は警告付きで mode: "deny" に降格される。mode が未知、または path / name が不正なエントリは除去される(v2.1.191 以降。v2.1.221 より前はすべて除去されていた)
  • requiredMinimumVersionrequiredMaximumVersion は設計上 fail open。不正な値は強制されず除去される
  • 検証エラーは 3 箇所に出る: 対話セッションの起動時ダイアログ、-p の headless 実行の stderr サマリ、claude doctor
  • この寛容さは managed settings のみ。user / project / local の settings ファイルは厳格で、検証に失敗したファイルは全体が拒否され報告される

主な設定キー(settings.json

キー説明
advisorModelserver-side advisor tool のモデル。"opus" / "sonnet" または完全なモデル ID。/advisor 実行時に自動で書かれる。未設定で advisor は無効
agentメインスレッドを名前付き subagent として実行し、claude agents から dispatch されるセッションの既定 agent を設定する
agentPushNotifEnabled既定 false。Remote Control 接続時、Claude が能動的にスマートフォンへ push 通知を送るのを許可する
allowAllClaudeAiMcps(managed のみ)配布した managed-mcp.json と並んで claude.ai connector を読み込む
allowedChannelPlugins(managed のみ)メッセージを push できる channel plugin の allowlist。未定義で既定にフォールバック、空配列で全ブロック。channelsEnabled: true が必要
allowedHttpHookUrlsHTTP hook が対象にできる URL パターンの allowlist。* をワイルドカードとしてサポート。未定義で無制限、空配列で全ブロック。配列は settings ソース間でマージされる
allowedMcpServers(managed のみ)ユーザーが設定できる MCP サーバーの allowlist。未定義で無制限、空配列で lockdown。denylist が優先される
allowManagedHooksOnly(managed のみ)managed hooks、SDK hooks、managed settings の enabledPlugins で強制有効化した plugin の hooks のみを読み込む
allowManagedMcpServersOnly(managed のみ)managed settings の allowedMcpServers のみを尊重する
allowManagedPermissionRulesOnly(managed のみ)user / project settings が allow / ask / deny を定義するのを防ぐ
alwaysThinkingEnabled全セッションで extended thinking を既定で有効にする。通常は /config から設定する
apiKeyHelper認証値を生成するカスタムコマンド(システムシェル経由)。値は X-Api-KeyAuthorization: Bearer ヘッダーとして送られる。更新間隔は CLAUDE_CODE_API_KEY_HELPER_TTL_MS
askUserQuestionTimeout既定 "never"。未回答の AskUserQuestion が自動継続するまでのアイドル時間。"60s" / "5m" / "10m" / "never"。user settings のみから読まれる。v2.1.200 以降
attributiongit commit と pull request の attribution をカスタマイズする
autoCompactEnabled既定 true。コンテキストが上限に近づいたら自動 compact する
autoCompactWindow自動 compact する前のコンテキスト使用量(1000001000000 トークン)。未設定ならモデルに合わせたウィンドウを使う
autoMemoryDirectoryauto memory の保存ディレクトリ。絶対パスか ~/ 始まり。project / local settings からは workspace trust ダイアログ承認後にのみ有効
autoMemoryEnabled既定 true。auto memory を有効にする
autoModeauto mode classifier の挙動をカスタマイズする。environment / allow / soft_deny / hard_deny の散文ルール配列。"$defaults" でその位置に組み込みルールを継承する。user settings、--settings、managed settings のみから読まれる
autoMode.classifyAllShell既定 falsetrue で auto mode 中はすべての Bash / PowerShell の allow ルールを一時停止し、全シェルコマンドを classifier に通す。v2.1.193 以降
autoScrollEnabled既定 true。fullscreen rendering で新しい出力を追って一番下へスクロールする
autoUpdatesChannel既定 "latest"。更新のリリースチャンネル。"stable" は約 1 週間前の版で大きな regression のある版を飛ばす
availableModelsmain session / subagent / skill / advisor で選べるモデルを制限する。enforceAvailableModels も設定しない限り Default 選択肢には影響しない
awaySummaryEnabled数分離席して戻ったときに 1 行のセッション recap を表示する
awsAuthRefresh.aws ディレクトリを変更するカスタムスクリプト
awsCredentialExportAWS 認証情報の JSON を出力するカスタムスクリプト
axScreenReaderスクリーンリーダー向けのフラットテキスト出力。CLAUDE_AX_SCREEN_READER--ax-screen-reader が優先される。v2.1.181 以降
blockedMarketplaces(managed のみ)marketplace ソースの blocklist。marketplace の追加時と plugin の install / update / refresh / auto-update で強制されるため、ポリシー設定前に追加された marketplace からも plugin を取得できなくなる。ブロック対象はダウンロード前に判定されファイルシステムに触れない
browserExternalPageTools(managed のみ)"disabled" で、デスクトップアプリの Browser pane における外部ページの読み取り・操作ツールを禁じる
channelsEnabled(managed のみ)組織で channels を許可する
claudeMd(managed のみ)組織管理の memory として注入される CLAUDE.md 形式の指示
claudeMdExcludesmemory 読み込み時にスキップする CLAUDE.md の glob パターンまたは絶対パス。managed policy のファイルは除外できない
cleanupPeriodDays既定 30 日、最小 1。この期間より古いセッションファイル等を起動時に削除する
companyAnnouncements起動時に表示するアナウンス。複数指定するとランダムに循環する
crossSessionInbound他セッションからの受信メッセージの扱い。"accept" / "hold" / "refuse"。managed → --settings → user の順に読み、最初に見つかった値を適用する。project / local の値は、それらより厳しい場合のみ適用される。v2.1.224 以降
defaultShell既定 "bash"(Bash が使えない Windows では "powershell")。入力欄の ! コマンドに使うシェル。"powershell" が効くのは PowerShell ツールが有効なとき(Git Bash の無い Windows では既定で有効、それ以外では CLAUDE_CODE_USE_POWERSHELL_TOOL=1
deniedMcpServers(managed のみ)明示的にブロックする MCP サーバーの denylist。allowlist より優先される
dialogExpiry既定 "5m"。リモートクライアントへ転送するダイアログの期限。"60s" / "5m" / "10m" / "never"CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS が優先される。user / managed / --settings のみ。v2.1.224 以降
disableAgentViewtrue でバックグラウンド agent と agent view を切る。CLAUDE_CODE_DISABLE_AGENT_VIEW=1 と等価
disableAllHooksすべての hook とカスタム status line を無効にする
disableArtifacttrue で Artifact ツールを無効にする。CLAUDE_CODE_DISABLE_ARTIFACT=1 と等価
disableAutoMode"disable" で auto mode の有効化を防ぐ。permissions.disableAutoMode としても受け付けられる
disableBrowserExternalNavigation(managed のみ)true でデスクトップアプリの Browser pane の外部ブラウジングを切る。値は JSON の boolean true でなければならない
disableBundledSkillstrue で同梱の skill と workflow を無効にする。/init などの組み込みコマンドは入力可能だがモデルからは隠れる。/doctor は入力可能なまま
disableClaudeAiConnectorsclaude.ai の MCP connector を無効にする。どのソースの true も優先される。v2.1.182 以降
disableDeepLinkRegistration"disable"claude-cli:// プロトコルハンドラの OS 登録を防ぐ
disabledMcpjsonServers.mcp.json の MCP サーバーのうち拒否するものの一覧
disableMobileSimulatorTools(managed のみ)true でデスクトップアプリの iOS Simulator pane 用ツールをブロックする
disableRemoteControlRemote Control を無効にする
disableSideloadFlags(managed のみ)起動時に --plugin-dir / --plugin-url / --agents / --mcp-config を拒否する。v2.1.193 以降
disableSkillShellExecutionuser / project / plugin / 追加ディレクトリ由来の skill とカスタムコマンドで !`...````! のインラインシェル実行を無効にする
disableWorkflows既定 false。dynamic workflows と同梱の workflow コマンドを無効にする
editorMode既定 "normal"。入力プロンプトのキーバインドモード("normal" / "vim"
effortLeveleffort level をセッションをまたいで保持する。"low" / "medium" / "high" / "xhigh"
emojiCompletionEnabled既定 true: + shortcode の絵文字候補と置換。v2.1.217 以降
enableAllProjectMcpServersproject の .mcp.json で定義された MCP サーバーをすべて自動承認する
enableArtifactこのユーザーの Artifact ツールを有効・無効にする。project / local settings では無視される。v2.1.196 以降
enabledMcpjsonServers.mcp.json の MCP サーバーのうち承認するものの一覧
enforceAvailableModelsavailableModels の allowlist を Default モデルにも及ぼす。v2.1.175 以降
env全セッションと Claude Code が起動するサブプロセスに適用する環境変数。"" にするとシェルの export を空文字列で上書きし、プロバイダ選択では未設定として扱われる。NO_COLORFORCE_COLOR はサブプロセスにのみ届く。v2.1.195 以降、ホスティング環境が設定する identity 変数(CLAUDE_CODE_REMOTECLAUDE_CODE_ACCOUNT_UUID など)はここで設定しても無視される
fallbackModel主モデルが過負荷・利用不可のときに順に試すフォールバックモデル。"default" は既定モデルに展開される。最大 3 モデル。他の配列設定と異なり settings ファイル間でマージされず、定義する最上位のファイルがチェーン全体を供給する
fastMode利用可能なセッションで fast mode を有効にする。/fast でトグルすると user settings に書かれる
fastModePerSessionOptIntrue で fast mode がセッションをまたいで持続しなくなる
feedbackSurveyRatesession quality survey が出る確率(0〜1)。0 で抑止
fileCheckpointingEnabled既定 true。各編集の前にファイルをスナップショットし /rewind で復元できるようにする
fileSuggestion@ ファイル補完用のカスタムスクリプト
footerLinksRegexesターン出力に正規表現が一致したときフッターにクリック可能なバッジを描画する。user / --settings / managed のみ。v2.1.176 以降
forceLoginMethodログインを制限する。claudeai / console / gateway
forceLoginGatewayUrl/login の Cloud gateway 画面の URL を事前入力しロックする。managed policy のみ
forceLoginOrgUUID特定の Anthropic 組織へのログインを要求する。単一 UUID または UUID の配列。空配列は fail closed でログインをブロックする
forceRemoteSettingsRefresh(managed のみ)リモートの managed settings を取得し終えるまで CLI 起動をブロックする。取得失敗時は終了する
gcpAuthRefreshGCP Application Default Credentials を更新するカスタムスクリプト
hooksライフサイクルイベントで実行するカスタムコマンド
httpHookAllowedEnvVarsHTTP hook がヘッダーに補間できる環境変数名の allowlist。各 hook の実効 allowedEnvVars はこのリストとの積集合になる
includeGitInstructions既定 true。組み込みの commit / PR ワークフロー指示と git status スナップショットをシステムプロンプトに含める。CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS が優先される
inputNeededNotifEnabled既定 false。Remote Control 接続時、permission prompt や質問の待ちで push 通知を送る
isolatePeerMachinesClaude の SendMessage の返信がこのマシン以外の自分のセッションへ届く前に明示的な承認を求める。どのスコープの true も適用される。v2.1.224 以降
languageClaude の応答言語(例: "japanese")。voice dictation と自動生成セッションタイトルの言語も設定する
minimumVersionこの値より下のバージョンをバックグラウンド自動更新と claude update がインストールしないようにする
model既定モデルの上書き。--modelANTHROPIC_MODEL が 1 セッション分優先する
modelOverridesAnthropic のモデル ID をプロバイダ固有のモデル ID にマップする
otelHeadersHelper動的な OpenTelemetry ヘッダーを生成するスクリプト
outputStyleシステムプロンプトを調整する output style
parentSettingsBehavior(managed のみ)既定 "first-wins"。埋め込みホストが供給する managed settings を、admin 配布の managed 層があるときに適用するか。"merge" で restrictive-only フィルタを通して適用する。最上位の managed ソースの値のみが読まれる。v2.1.133 以降
permissionspermission 設定(下記)
plansDirectory既定 ~/.claude/plans。plan ファイルの保存先。パスはプロジェクトルート基準
pluginSuggestionMarketplaces(managed のみ)plugin が文脈的なインストール候補として現れてよい marketplace 名
pluginTrustMessage(managed のみ)インストール前の plugin trust 警告に追記するカスタムメッセージ
policyHelpermanaged settings を起動時に動的計算する admin 配布の実行ファイル。MDM またはシステムの managed-settings.json からのみ有効。v2.1.136 以降
preferredNotifChannel既定 "auto"。通知方式。"auto" / "terminal_bell" / "iterm2" / "iterm2_with_bell" / "kitty" / "ghostty" / "notifications_disabled"
prefersReducedMotionUI アニメーション(スピナー、シマー、フラッシュ)を減らす・無効にする
processWrapperClaude Code が起動するバックグラウンドプロセスの前に置く corporate launcher コマンド。managed / --settings / user settings のみ。CLAUDE_CODE_PROCESS_WRAPPER が優先される。v2.1.210 以降
promptSuggestionEnabled既定 true。prompt suggestions を表示する。CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION が優先される
prUrlTemplateフッターとツール結果サマリの PR バッジの URL テンプレート。{host} / {owner} / {repo} / {number} / {url} を置換する
remote.defaultEnvironmentIdCLI から作る cloud session の既定 cloud environment。self-hosted 環境 ID(ccpool_...)は user / managed / --settings からのみ有効
remoteControlAtStartup各対話セッションの開始時に Remote Control を自動接続する。project / local settings の true は無視される
requiredMaximumVersion(managed のみ)起動を許す最大バージョン。新しすぎると起動時に終了する
requiredMinimumVersion(managed のみ)起動に必要な最小バージョン。古いと起動時に終了する。claude update / claude install / claude doctor は動き続ける
respectGitignore既定 true@ ファイルピッカーが .gitignore を尊重するか
respondToBashCommands既定 true。入力欄の ! シェルコマンド実行後に Claude が応答するか。v2.1.186 以降
showClearContextOnPlanAccept既定 false。plan 承認画面に「clear context」の選択肢を出す
showThinkingSummaries既定 false。対話セッションで extended thinking の要約を表示する。非対話モード・Agent SDK・IDE 拡張では効果が無い
showTurnDuration既定 true。応答後にターンの所要時間を表示する
skillListingBudgetFraction既定 0.01。skill listing に確保するコンテキストウィンドウの割合
skillListingMaxDescChars既定 1536。skill listing における description + when_to_use の 1 skill あたり文字数上限
skillOverridesskill 名をキーにした可視性の上書き。"on" / "name-only" / "user-invocable-only" / "off"。plugin skill には適用されない
skipWebFetchPreflightWebFetch のドメイン安全性チェック(要求ホスト名を api.anthropic.com へ送る)を飛ばす。Anthropic 宛トラフィックをブロックする環境(egress を絞った Amazon Bedrock / Google Cloud's Agent Platform / Microsoft Foundry デプロイなど)向け。飛ばすと WebFetch は blocklist を参照せず任意の URL を試みる
spinnerTipsEnabled既定 true。作業中のスピナーに tips を表示する
spinnerTipsOverrideスピナーの tips を独自の文字列で上書きする。tips 配列と excludeDefault
spinnerVerbs進行中に表示する動詞をカスタマイズする。mode"replace" または "append"
sshConfigsDesktop の環境ドロップダウンに表示する SSH 接続。各エントリに id / name / sshHost が必須。managed と user settings のみ
statusLineカスタム status line の設定。padding / refreshInterval / hideVimModeIndicator は任意
strictKnownMarketplaces(managed のみ)plugin marketplace ソースの allowlist。未定義で無制限、空配列で lockdown。marketplace の追加時と plugin の install / update / refresh / auto-update で強制されるため、ポリシー設定前に追加された marketplace からも plugin を取得できなくなる
strictPluginOnlyCustomization(managed のみ)skills / agents / hooks / MCP サーバーを user・project ソースから禁じる。true で 4 面すべて、配列で指定分のみ
switchModelsOnFlag既定 true。安全性 classifier がフラグを立てたとき自動でフォールバックモデルへ切り替える。v2.1.170 以降
syntaxHighlightingDisableddiff / コードブロック / ファイルプレビューのシンタックスハイライトを無効にする
teammateMode既定 in-process。agent team の teammate の表示方法。in-process / auto / tmux / iterm2(v2.1.186 で追加)。既定は v2.1.179 で auto から変更された
terminalProgressBarEnabled既定 true。対応ターミナル(ConEmu、Ghostty 1.2.0+、iTerm2 3.6.6+)で進捗バーを表示する
theme既定 "dark""auto" / "dark" / "light" / "dark-daltonized" / "light-daltonized" / "dark-ansi" / "light-ansi"、または "custom:<slug>" / "custom:<plugin-name>:<slug>"
tuiターミナル UI レンダラー。"fullscreen" または "default"/tui で設定する。agent view から開いたバックグラウンドセッションは常に fullscreen
ultracode現在のセッションで ultracode を有効にする。settings.json からは読まれず、/effort ultracode / --settings / Agent SDK の control request で設定する
useAutoModeDuringPlan既定 true。auto mode が使えるとき plan mode が auto mode のセマンティクスを使うか。共有 project settings からは読まれない
verbose既定 false。切り詰めた要約ではなく完全なツール出力を表示する
viewMode起動時のトランスクリプト表示モード。"default" / "verbose" / "focus"
vimInsertModeRemapsvim editor mode で 2 キーの INSERT モード列を Escape にマップする。user / --settings / managed のみ。editorMode"vim" でないと効果が無い。v2.1.208 以降
voicevoice dictation の設定。enabled / mode"hold" または "tap")/ autoSubmit
voiceEnabledvoice.enabled のレガシーエイリアス
wheelScrollAccelerationEnabled既定 true。fullscreen rendering で高速スクロール時にホイールの速度を加速する。v2.1.174 以降
workflowKeywordTriggerEnabled既定 true。入力した ultracode というキーワードで dynamic workflow を起動するか。v2.1.157 で追加(v2.1.160 より前のキーワードは workflow
workflowSizeGuideline既定 medium。dynamic workflow で Claude が目指す agent 数。unrestricted / small / medium / large。v2.1.219 以降
wslInheritsWindowsSettings(Windows managed のみ)true で WSL 上の Claude Code が /etc/claude-code に加えて Windows のポリシーチェーンから managed settings を読む

~/.claude.json の global config settings

これらは settings.json ではなく ~/.claude.json に保存される。settings.json に書くと起動時に黙って無視される。

キー説明
autoConnectIde既定 false。外部ターミナルから起動したとき、動作中の IDE に自動接続する。CLAUDE_CODE_AUTO_CONNECT_IDE が優先される
autoInstallIdeExtension既定 true。VS Code のターミナルから実行したとき IDE 拡張を自動インストールする。CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL=1 でも制御できる
diffTool既定 auto。IDE 接続時の diff の表示先。auto は IDE の diff viewer、terminal はターミナル
externalEditorContext既定 falseCtrl+G で外部エディタを開くとき、Claude の直前の返信を # コメントとして前置する
permissionExplainerEnabled既定 true。Bash / PowerShell の permission prompt で Ctrl+E を押したときにコマンドの説明を表示する
teammateDefaultModelspawn prompt がモデルを指定しないときの agent team teammate の既定モデル。null で lead の現在の /model 選択を継承する

worktree 設定

キー説明
worktree.baseRef新しい worktree の分岐元。"fresh"(既定)は origin/<default-branch>"head" はローカルの現在の HEAD--worktreeEnterWorktree ツール、subagent の分離に適用される
worktree.symlinkDirectoriesメインリポジトリから各 worktree へ symlink するディレクトリ。既定では何も symlink しない
worktree.sparsePathsgit sparse-checkout で各 worktree にチェックアウトするディレクトリ。列挙したディレクトリとルート直下のファイルのみがディスクに書かれる
worktree.bgIsolationバックグラウンドセッションの分離モード。"worktree"(既定)は EnterWorktree が呼ばれるまでメイン checkout での Edit / Write をブロックする。"none" は作業コピーを直接編集させる。v2.1.143 以降

permission 設定(permissions

キー説明
allowツール使用を許可する permission ルールの配列。ツール名の glob はリテラルの mcp__<server>__ 接頭辞の後でのみサポートされる
askツール使用時に確認を求める permission ルールの配列
denyツール使用を拒否する permission ルールの配列。ツール名に glob を使える("*" で全ツール、"mcp__*" で全 MCP ツール)。他のツールが残っている限り EndConversation は取り除けない
additionalDirectoriesファイルアクセス用の追加作業ディレクトリ。これらのディレクトリからは .claude/ の設定の多くは検出されない
defaultMode既定の permission mode。default / acceptEdits / plan / auto / dontAsk / bypassPermissions、および default のエイリアス manual(v2.1.200 以降)。auto は project / local settings では無視される。--permission-mode が 1 セッション分優先する
disableAutoMode"disable" で auto mode の有効化を防ぐ
disableBypassPermissionsMode"disable"bypassPermissions モードの有効化を防ぐ(--dangerously-skip-permissions も無効になる)
skipDangerousModePermissionPromptbypass permissions モードに入る前の確認プロンプトを飛ばす。project settings に書いた場合は無視される

sandbox 設定(sandbox

キー説明
enabledbash sandboxing を有効にする(macOS / Linux / WSL2)。既定 false
failIfUnavailablesandbox.enabled が true でサンドボックスを開始できない場合、起動時にエラー終了する。既定 false(警告を出して非サンドボックス実行)
autoAllowBashIfSandboxedサンドボックス化された bash コマンドを自動承認する。既定 true
excludedCommandsサンドボックスの外で実行するコマンド
allowUnsandboxedCommandsdangerouslyDisableSandbox パラメータでサンドボックス外実行を許す。既定 true
filesystem.allowWriteサンドボックス化コマンドが書き込める追加パス。全 settings スコープでマージされ、Edit(...) allow ルールのパスとも統合される
filesystem.denyWriteサンドボックス化コマンドが書き込めないパス
filesystem.denyReadサンドボックス化コマンドが読めないパス
filesystem.allowReaddenyRead 領域内で読み取りを再許可するパス
filesystem.allowManagedReadPathsOnly(managed のみ)managed settings の filesystem.allowRead のみを尊重する。既定 false
filesystem.disablednetwork isolation を保ったまま filesystem isolation をスキップする。user / managed / --settings のみ。既定 false。v2.1.216 以降
credentials.filesサンドボックス化コマンドから保護する認証情報ファイル。pathmodedeny / mask)。任意で extractonExtractNoMatchdecodemaskClaimsmaskDuplicatesinjectHosts
credentials.envVars保護する環境変数。namemodedeny / mask)。任意で extractonExtractNoMatchdecodemaskClaimsinjectHosts
credentials.allowPlaintextInjectTLS 終端した HTTPS だけでなく平文 HTTP でも mask の置換を許す。user / managed / --settings のみ。既定 false。v2.1.199 以降
credentials.awsPairs非標準の変数名で 1 つの AWS 認証情報を構成する mask 済み環境変数のグループ。v2.1.224 以降
credentials.sigv4プロキシが再署名できない AWS リクエスト形式のポリシー。streaming / presigned / sigv4a にそれぞれ deny(既定)または passthrough。v2.1.224 以降
network.allowUnixSockets(macOS のみ)サンドボックス内でアクセスできる Unix socket のパス。Linux / WSL2 では無視される
network.allowAllUnixSocketsサンドボックス内のすべての Unix socket 接続を許可する。既定 false
network.allowLocalBindinglocalhost ポートへの bind を許可する(macOS のみ)。既定 false
network.allowMachLookupサンドボックスが lookup してよい追加の XPC / Mach サービス名(macOS のみ)。末尾に 1 つだけ * を使える
network.allowedDomains送信ネットワークトラフィックを許可するドメインの配列。ワイルドカード対応
network.deniedDomainsブロックするドメインの配列。両方に一致する場合 allowedDomains より優先される。allowManagedDomainsOnly に関わらず全ソースからマージされる
network.strictAllowlistallowlist 外のホストをプロンプトせず拒否する。user / managed / --settings のみ。既定 false。v2.1.219 以降
network.allowManagedDomainsOnly(managed のみ)managed settings の allowedDomainsWebFetch(domain:...) allow ルールのみを尊重する。既定 false
network.httpProxyPort自前のプロキシを使う場合の HTTP プロキシポート
network.socksProxyPort自前のプロキシを使う場合の SOCKS5 プロキシポート
network.tlsTerminate実験的。サンドボックスプロキシ内で TLS を終端する。mask に必要。{} でセッション用の一時 CA を生成、caCertPathcaKeyPath で自前の CA を使う。user / managed / --settings のみ。v2.1.199 以降
enableWeakerNestedSandbox非特権 Docker 環境向けの弱いサンドボックスを有効にする(Linux / WSL2 のみ)。セキュリティが下がる。既定 false
enableWeakerNetworkIsolation(macOS のみ)サンドボックス内でシステムの TLS trust サービス(com.apple.trustd.agent)へのアクセスを許可する。セキュリティが下がる。既定 false
allowAppleEvents(macOS のみ)サンドボックス化コマンドが Apple Events を送るのを許可する。コード実行の分離が失われる。user / managed / CLI settings のみ。既定 false
bwrapPath(managed のみ、Linux/WSL2)bubblewrap バイナリの絶対パス
socatPath(managed のみ、Linux/WSL2)socat バイナリの絶対パス

sandbox のパス接頭辞:

接頭辞意味
/ファイルシステムルートからの絶対パス
~/ホームディレクトリからの相対
./ または接頭辞なしproject settings ではプロジェクトルート、user settings では ~/.claude からの相対
  • 古い //path の絶対パス接頭辞も動く。プロジェクト相対を意図して /path を使っていた場合は ./path に変える

attribution 設定

キー説明
commitgit commit の attribution(trailer を含む)。空文字列で非表示
prpull request 説明の attribution。空文字列で非表示
sessionUrlcloud / Remote Control セッションから実行したとき、claude.ai のセッションリンクを commit の Claude-Session trailer と PR 説明のリンクとして付けるか。既定 true
  • 既定の commit attribution: Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>(モデル名はセッションのアクティブなモデルを反映する)
  • 既定の pull request attribution: 🤖 Generated with [Claude Code](https://claude.com/claude-code)
  • attribution は非推奨の includeCoAuthoredBy より優先される

file suggestion 設定

  • fileSuggestiontype: "command"command を設定する
  • コマンドは hooks と同じ環境変数(CLAUDE_PROJECT_DIR を含む)で実行され、stdin で {"query": "src/comp"} の JSON を受け取る
  • stdout に改行区切りのファイルパスを出力する(現在は 15 件まで)
  • footerLinksRegexes の各エントリの pattern はターン出力(ツール結果、取得したページを含むファイル内容、Claude の応答)に対して照合される
  • urllabel{name} プレースホルダは pattern の名前付き捕捉グループから埋められる
制約挙動
URL origin捕捉値は URL エンコードされ、構築後の URL はテンプレートのリテラル origin と一致しなければならない
URL length2048 文字を超える URL は破棄される
URL schemehttps / http、または vscode / vscode-insiders / cursor / windsurf / zed / jetbrains / idea / slack / linear / notion / figma
Label既定は一致テキスト。28 表示カラムで切り詰められる
Badge count最大 5 個。古いものが新しい一致に押し出され、/clear で消える
Settings scopeuser settings、--settings、managed settings のみ
  • ターン完了時にメインスレッドで正規表現を照合するため、遅い正規表現は UI をブロックする。(a+)+$ のようなネストした量指定子は避ける

hook 関連の設定

allowManagedHooksOnlytrue のとき:

  • managed hooks と SDK hooks は読み込まれる

  • managed settings の enabledPlugins で強制有効化した plugin の hooks は読み込まれる。信頼は plugin@marketplace の完全な ID 単位で与えられる

  • user hooks、project hooks、それ以外の plugin hooks はブロックされる

  • allowedHttpHookUrls: HTTP hook が対象にできる URL を制限する。* をワイルドカードとしてサポート。ホスト名の照合は大小文字を区別せず、末尾の FQDN ドットを無視する

  • httpHookAllowedEnvVars: HTTP hook がヘッダー値に補間できる環境変数名を制限する

policyHelper

キー説明
pathstringヘルパー実行ファイルの絶対パス
timeoutMsnumber失敗扱いにするまでの待ち時間
refreshIntervalMsnumberバックグラウンドで再実行する間隔。0 で無効、または最低 60000
  • ヘルパーは JSON envelope を stdout に書く。設定はトップレベルではなく managedSettings キーの下に置く
  • ヘルパーが managedSettings を出力すると、それがその実行で唯一の managed settings ソースになり、remote / MDM / ファイルベースより優先される
  • 起動時にヘルパーが非ゼロで終了すると、Claude Code はエラーを出して起動を拒否する

優先順位

  1. Managed settings(server-managed、MDM / OS レベルポリシー、managed settings ファイル)
  2. コマンドライン引数--settings <file-or-json> は他の層と同じルールでマージされる)
  3. Local project settings.claude/settings.local.json
  4. Shared project settings.claude/settings.json
  5. User settings~/.claude/settings.json

managed を上書きできる例外:

  • disableClaudeAiConnectorstrue はどのスコープからでも適用される(managed が false でも)
  • remoteControlAtStartupfalse は project / local settings からでも適用される(managed が true でも)。逆に project / local の true は無視される
  • isolatePeerMachinestrue はどのスコープからでも適用される
  • crossSessionInbound は、project / local の値が accept < hold < refuse のラダーでより厳しい場合に適用される
  • CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST を設定する埋め込みホストは、model / fallbackModel / modelOverrides と managed env のモデル選択環境変数について managed ソースより優先される。managed の availableModels はホストが自前のものを供給しない限り有効なまま

managed 層内の優先順位(1 つのソースのみが使われ、他はマージされずに無視される。高い順):

  1. policyHelper の出力(設定されていればこれが唯一の managed ソース)
  2. Remote(claude.ai server-managed または Claude apps gateway 配布)
  3. MDM / OS レベルポリシー
  4. ファイルベース(managed-settings.d/*.jsonmanaged-settings.json をマージしたもの)
  5. HKCU レジストリ(Windows のみ)
  • ただし次のキーは、勝ったソースだけでなく admin 管理の任意の managed ソースが設定していれば尊重される(HKCU は除く。policyHelper があるときはその出力のみ)
    • sandbox のロックキー sandbox.network.allowManagedDomainsOnlysandbox.filesystem.allowManagedReadPathsOnly、およびそれぞれの allowlist
    • allowAllClaudeAiMcps
    • sandbox のバイナリパス sandbox.bwrapPathsandbox.socatPath
    • forceRemoteSettingsRefresh
    • env(admin 管理ソース間でキー単位にマージされる。各環境変数について最も優先度の高いソースが勝ち、低いソースが未設定分を埋める。v2.1.223 以降)

配列設定のマージ:

  • 同じ配列値の設定が複数スコープに現れると、連結・重複排除される(置き換えではない)
  • 例外 2 つ
    • fallbackModel は位置に意味がある順序付きチェーンなので、定義する最上位のファイルが値全体を供給する
    • availableModels は最上位の managed ソースが定義するとそのリストがそのまま適用され、user / project / local のエントリは拡張できない。managed でないスコープ間では通常どおりマージされる

有効な設定の確認

  • /statusStatus タブの Setting sources 行に、そのセッションで読み込まれた層が並ぶ。managed settings が効いている場合は配布チャネルが括弧付きで表示される((remote) / (plist) / (HKLM) / (HKCU) / (file)
  • 少なくとも 1 つのキーを持って読み込まれたソースのみが一覧に現れるため、空の一覧は設定ソースが見つからなかったことを意味する
  • Setting sources 行はどのソースが読まれているかを示すだけで、各キーをどの層が供給したかは示さない
  • user / project / local の settings ファイルにエラー(不正な JSON、検証に失敗する値)があると、対話セッションは起動時に Settings Error ダイアログを出す。継続後は /status が該当ファイルを一覧し、claude doctor で詳細を見られる

plugin 設定

  • enabledPlugins: "plugin-name@marketplace-name": true/false の形式。どのスコープにもエントリが無い plugin はその defaultEnabled にフォールバックする
    • project settings は user settings より優先されるため、~/.claude/settings.jsonfalse にしても project の .claude/settings.json が有効にした plugin は無効にならない。自分のマシンで外すには .claude/settings.local.jsonfalse にする
    • managed settings が強制有効化した plugin はこの方法で無効化できない
  • pluginConfigs: plugin の userConfig プロンプトが集めた非機微なオプション値を plugin ID をキーに保存する。user settings / --settings / managed settings のみから読まれる(v2.1.207 より前は project / local も読まれた)。機微なオプションは macOS Keychain、または ~/.claude/.credentials.json に保存される
  • extraKnownMarketplaces: リポジトリで利用可能にする追加の marketplace を定義する
  • strictPluginOnlyCustomization でロックした面ごとの挙動
ロック時にブロックされるもの引き続き読み込まれるもの
skills~/.claude/skills/, .claude/skills/plugin skill、bundled skill、managed policy ディレクトリの skill
agents~/.claude/agents/, .claude/agents/plugin agent、組み込み agent、managed policy ディレクトリの agent
hooksuser / project / local の settings.json の hooksplugin hooks、managed settings の hooks
mcp~/.claude.json.mcp.json のサーバーplugin の MCP サーバー、managed-mcp.json のサーバー
  • 認識できない面の名前はエラーにせず無視される

設定

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test *)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl *)",
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  },
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp",
    "OTEL_EXPORTER_OTLP_PROTOCOL": "http/protobuf"
  },
  "companyAnnouncements": [
    "Welcome to Acme Corp! Review our code guidelines at docs.acme.com"
  ]
}
{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": true,
    "excludedCommands": ["docker *"],
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"],
      "denyRead": ["~/.aws/credentials"]
    },
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org", "registry.yarnpkg.com"],
      "deniedDomains": ["uploads.github.com"],
      "allowUnixSockets": ["/var/run/docker.sock"],
      "allowLocalBinding": true
    }
  }
}
{
  "enabledPlugins": {
    "formatter@acme-tools": true,
    "analyzer@security-plugins": false
  },
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": {
        "source": "github",
        "repo": "acme-corp/claude-plugins"
      }
    }
  }
}
{
  "footerLinksRegexes": [
    {
      "type": "regex",
      "pattern": "\\b(?<key>PROJ-\\d+)\\b",
      "url": "https://issues.example.com/browse/{key}",
      "label": "{key}"
    }
  ]
}

制約・注意点

  • Claude Code の内部システムプロンプトは公開されていない。カスタム指示を加えるには CLAUDE.md--append-system-prompt を使う
  • 機微なファイルを除外するには permissions.deny を使う。これは非推奨の ignorePatterns を置き換える。パターンに一致するファイルはファイル検出と検索結果から除外され、読み取りも拒否される

関連

  • facts/claude-code/permissions.md
  • facts/claude-code/permission-modes.md
  • facts/claude-code/sandboxing.md
  • facts/claude-code/hooks.md
  • facts/claude-code/mcp.md
  • facts/claude-code/plugins.md
  • facts/claude-code/model-config.md
  • facts/claude-code/env-vars.md
  • facts/claude-code/statusline.md
  • facts/claude-code/skills.md
  • facts/claude-code/sub-agents.md
  • facts/claude-code/memory.md