Claude Code settings
概要
settings.json による Claude Code の設定。スコープ(managed / user / project / local)、設定キーの一覧、優先順位を扱う。対話セッションでは /config で設定 UI を開く。v2.1.181 から /config key=value で UI を開かずに 1 項目を変更できる。
仕様
スコープ
| スコープ | 場所 | 影響範囲 | チーム共有 |
|---|---|---|---|
| Managed | server-managed settings、plist / registry、システムレベルの managed-settings.json | server-managed は組織の全メンバー。plist / HKLM registry / ファイル配布はマシンの全ユーザー。HKCU registry は現在のユーザー | はい(IT が配布) |
| User | ~/.claude/ | 自分の全プロジェクト | いいえ |
| Project | リポジトリ内の .claude/ | このリポジトリの全共同作業者 | はい(git にコミット) |
| Local | リポジトリルートの .claude/settings.local.json | このリポジトリの自分だけ | いいえ(Claude Code が設定を保存するとき gitignore される) |
| 機能 | User | Project | Local |
|---|---|---|---|
| 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.md | CLAUDE.md または .claude/CLAUDE.md | CLAUDE.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.claudecodemanaged 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 レベルのソースが無いときのみ使われる)
- macOS:
-
ファイルベース: システムディレクトリに配置する
managed-settings.jsonとmanaged-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のような数値接頭辞で制御する
- macOS:
-
その他の設定は
~/.claude.jsonに保存される(OAuth セッション、user / local スコープの MCP サーバー設定、プロジェクトごとの状態、各種キャッシュ) -
Claude Code は設定ファイルのタイムスタンプ付きバックアップを自動作成し、最新 5 件を保持する
-
$schemaにhttps://json.schemastore.org/claude-code-settings.jsonを指定するとエディタの補完と検証が効く。公開スキーマは定期更新のため、最新リリースで追加された設定は含まれないことがある
反映のタイミング
- 設定ファイルは監視され、変更されると再読み込みされる。
permissions、hooks、apiKeyHelperなどのキーは再起動なしに反映される。user / project / local / managed のすべてが対象で、変更ごとにConfigChangehook が発火する - セッション開始時に一度だけ読まれ、次回起動から反映されるキー
model: セッション中は/modelで切り替えるoutputStyle: システムプロンプトの一部で、/clearか再起動で再構築される
managed settings の不正エントリ
- managed settings は寛容にパースされる。スキーマ検証に失敗したエントリを除去し、警告を記録し、残りの有効なポリシーをすべて強制する。
/doctorで除去されたエントリを出所ファイル・フィールドとともに一覧できる。v2.1.169 以降が必要 - security-enforcement のフィールドは丸ごと除去されず、フィールドごとに扱われる
| フィールド | 存在するが不正なときの挙動 |
|---|---|
allowedMcpServers | 空の allowlist として強制され、修正するまで MCP サーバーは 1 つも通らない。個別の不正エントリは除去され有効な部分集合が強制される |
allowManagedMcpServersOnly | true として扱う |
availableModels | 空の allowlist として強制され、修正するまで Default モデルのみ利用可能。個別の非文字列エントリは除去される(v2.1.175 以降) |
enforceAvailableModels | true として扱う(v2.1.175 以降) |
forceLoginOrgUUID | 修正するまでどの組織もログインできない |
deniedMcpServers | 個別の不正エントリは除去され有効な部分集合が強制される。値全体が不正なら警告付きで破棄される |
sandbox.credentials | path / name が有効で mode が mask / deny の不正エントリ(extract に捕捉グループが無い等)は警告付きで mode: "deny" に降格される。mode が未知、または path / name が不正なエントリは除去される(v2.1.191 以降。v2.1.221 より前はすべて除去されていた) |
requiredMinimumVersionとrequiredMaximumVersionは設計上 fail open。不正な値は強制されず除去される- 検証エラーは 3 箇所に出る: 対話セッションの起動時ダイアログ、
-pの headless 実行の stderr サマリ、claude doctor - この寛容さは managed settings のみ。user / project / local の settings ファイルは厳格で、検証に失敗したファイルは全体が拒否され報告される
主な設定キー(settings.json)
| キー | 説明 |
|---|---|
advisorModel | server-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 が必要 |
allowedHttpHookUrls | HTTP 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-Key と Authorization: Bearer ヘッダーとして送られる。更新間隔は CLAUDE_CODE_API_KEY_HELPER_TTL_MS |
askUserQuestionTimeout | 既定 "never"。未回答の AskUserQuestion が自動継続するまでのアイドル時間。"60s" / "5m" / "10m" / "never"。user settings のみから読まれる。v2.1.200 以降 |
attribution | git commit と pull request の attribution をカスタマイズする |
autoCompactEnabled | 既定 true。コンテキストが上限に近づいたら自動 compact する |
autoCompactWindow | 自動 compact する前のコンテキスト使用量(100000〜1000000 トークン)。未設定ならモデルに合わせたウィンドウを使う |
autoMemoryDirectory | auto memory の保存ディレクトリ。絶対パスか ~/ 始まり。project / local settings からは workspace trust ダイアログ承認後にのみ有効 |
autoMemoryEnabled | 既定 true。auto memory を有効にする |
autoMode | auto mode classifier の挙動をカスタマイズする。environment / allow / soft_deny / hard_deny の散文ルール配列。"$defaults" でその位置に組み込みルールを継承する。user settings、--settings、managed settings のみから読まれる |
autoMode.classifyAllShell | 既定 false。true で auto mode 中はすべての Bash / PowerShell の allow ルールを一時停止し、全シェルコマンドを classifier に通す。v2.1.193 以降 |
autoScrollEnabled | 既定 true。fullscreen rendering で新しい出力を追って一番下へスクロールする |
autoUpdatesChannel | 既定 "latest"。更新のリリースチャンネル。"stable" は約 1 週間前の版で大きな regression のある版を飛ばす |
availableModels | main session / subagent / skill / advisor で選べるモデルを制限する。enforceAvailableModels も設定しない限り Default 選択肢には影響しない |
awaySummaryEnabled | 数分離席して戻ったときに 1 行のセッション recap を表示する |
awsAuthRefresh | .aws ディレクトリを変更するカスタムスクリプト |
awsCredentialExport | AWS 認証情報の 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 形式の指示 |
claudeMdExcludes | memory 読み込み時にスキップする 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 以降 |
disableAgentView | true でバックグラウンド agent と agent view を切る。CLAUDE_CODE_DISABLE_AGENT_VIEW=1 と等価 |
disableAllHooks | すべての hook とカスタム status line を無効にする |
disableArtifact | true で Artifact ツールを無効にする。CLAUDE_CODE_DISABLE_ARTIFACT=1 と等価 |
disableAutoMode | "disable" で auto mode の有効化を防ぐ。permissions.disableAutoMode としても受け付けられる |
disableBrowserExternalNavigation | (managed のみ)true でデスクトップアプリの Browser pane の外部ブラウジングを切る。値は JSON の boolean true でなければならない |
disableBundledSkills | true で同梱の skill と workflow を無効にする。/init などの組み込みコマンドは入力可能だがモデルからは隠れる。/doctor は入力可能なまま |
disableClaudeAiConnectors | claude.ai の MCP connector を無効にする。どのソースの true も優先される。v2.1.182 以降 |
disableDeepLinkRegistration | "disable" で claude-cli:// プロトコルハンドラの OS 登録を防ぐ |
disabledMcpjsonServers | .mcp.json の MCP サーバーのうち拒否するものの一覧 |
disableMobileSimulatorTools | (managed のみ)true でデスクトップアプリの iOS Simulator pane 用ツールをブロックする |
disableRemoteControl | Remote Control を無効にする |
disableSideloadFlags | (managed のみ)起動時に --plugin-dir / --plugin-url / --agents / --mcp-config を拒否する。v2.1.193 以降 |
disableSkillShellExecution | user / project / plugin / 追加ディレクトリ由来の skill とカスタムコマンドで !`...` と ```! のインラインシェル実行を無効にする |
disableWorkflows | 既定 false。dynamic workflows と同梱の workflow コマンドを無効にする |
editorMode | 既定 "normal"。入力プロンプトのキーバインドモード("normal" / "vim") |
effortLevel | effort level をセッションをまたいで保持する。"low" / "medium" / "high" / "xhigh" |
emojiCompletionEnabled | 既定 true。: + shortcode の絵文字候補と置換。v2.1.217 以降 |
enableAllProjectMcpServers | project の .mcp.json で定義された MCP サーバーをすべて自動承認する |
enableArtifact | このユーザーの Artifact ツールを有効・無効にする。project / local settings では無視される。v2.1.196 以降 |
enabledMcpjsonServers | .mcp.json の MCP サーバーのうち承認するものの一覧 |
enforceAvailableModels | availableModels の allowlist を Default モデルにも及ぼす。v2.1.175 以降 |
env | 全セッションと Claude Code が起動するサブプロセスに適用する環境変数。"" にするとシェルの export を空文字列で上書きし、プロバイダ選択では未設定として扱われる。NO_COLOR と FORCE_COLOR はサブプロセスにのみ届く。v2.1.195 以降、ホスティング環境が設定する identity 変数(CLAUDE_CODE_REMOTE、CLAUDE_CODE_ACCOUNT_UUID など)はここで設定しても無視される |
fallbackModel | 主モデルが過負荷・利用不可のときに順に試すフォールバックモデル。"default" は既定モデルに展開される。最大 3 モデル。他の配列設定と異なり settings ファイル間でマージされず、定義する最上位のファイルがチェーン全体を供給する |
fastMode | 利用可能なセッションで fast mode を有効にする。/fast でトグルすると user settings に書かれる |
fastModePerSessionOptIn | true で fast mode がセッションをまたいで持続しなくなる |
feedbackSurveyRate | session 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 起動をブロックする。取得失敗時は終了する |
gcpAuthRefresh | GCP Application Default Credentials を更新するカスタムスクリプト |
hooks | ライフサイクルイベントで実行するカスタムコマンド |
httpHookAllowedEnvVars | HTTP hook がヘッダーに補間できる環境変数名の allowlist。各 hook の実効 allowedEnvVars はこのリストとの積集合になる |
includeGitInstructions | 既定 true。組み込みの commit / PR ワークフロー指示と git status スナップショットをシステムプロンプトに含める。CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS が優先される |
inputNeededNotifEnabled | 既定 false。Remote Control 接続時、permission prompt や質問の待ちで push 通知を送る |
isolatePeerMachines | Claude の SendMessage の返信がこのマシン以外の自分のセッションへ届く前に明示的な承認を求める。どのスコープの true も適用される。v2.1.224 以降 |
language | Claude の応答言語(例: "japanese")。voice dictation と自動生成セッションタイトルの言語も設定する |
minimumVersion | この値より下のバージョンをバックグラウンド自動更新と claude update がインストールしないようにする |
model | 既定モデルの上書き。--model と ANTHROPIC_MODEL が 1 セッション分優先する |
modelOverrides | Anthropic のモデル ID をプロバイダ固有のモデル ID にマップする |
otelHeadersHelper | 動的な OpenTelemetry ヘッダーを生成するスクリプト |
outputStyle | システムプロンプトを調整する output style |
parentSettingsBehavior | (managed のみ)既定 "first-wins"。埋め込みホストが供給する managed settings を、admin 配布の managed 層があるときに適用するか。"merge" で restrictive-only フィルタを通して適用する。最上位の managed ソースの値のみが読まれる。v2.1.133 以降 |
permissions | permission 設定(下記) |
plansDirectory | 既定 ~/.claude/plans。plan ファイルの保存先。パスはプロジェクトルート基準 |
pluginSuggestionMarketplaces | (managed のみ)plugin が文脈的なインストール候補として現れてよい marketplace 名 |
pluginTrustMessage | (managed のみ)インストール前の plugin trust 警告に追記するカスタムメッセージ |
policyHelper | managed settings を起動時に動的計算する admin 配布の実行ファイル。MDM またはシステムの managed-settings.json からのみ有効。v2.1.136 以降 |
preferredNotifChannel | 既定 "auto"。通知方式。"auto" / "terminal_bell" / "iterm2" / "iterm2_with_bell" / "kitty" / "ghostty" / "notifications_disabled" |
prefersReducedMotion | UI アニメーション(スピナー、シマー、フラッシュ)を減らす・無効にする |
processWrapper | Claude 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.defaultEnvironmentId | CLI から作る 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 あたり文字数上限 |
skillOverrides | skill 名をキーにした可視性の上書き。"on" / "name-only" / "user-invocable-only" / "off"。plugin skill には適用されない |
skipWebFetchPreflight | WebFetch のドメイン安全性チェック(要求ホスト名を 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" |
sshConfigs | Desktop の環境ドロップダウンに表示する 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 以降 |
syntaxHighlightingDisabled | diff / コードブロック / ファイルプレビューのシンタックスハイライトを無効にする |
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" |
vimInsertModeRemaps | vim editor mode で 2 キーの INSERT モード列を Escape にマップする。user / --settings / managed のみ。editorMode が "vim" でないと効果が無い。v2.1.208 以降 |
voice | voice dictation の設定。enabled / mode("hold" または "tap")/ autoSubmit |
voiceEnabled | voice.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 | 既定 false。Ctrl+G で外部エディタを開くとき、Claude の直前の返信を # コメントとして前置する |
permissionExplainerEnabled | 既定 true。Bash / PowerShell の permission prompt で Ctrl+E を押したときにコマンドの説明を表示する |
teammateDefaultModel | spawn prompt がモデルを指定しないときの agent team teammate の既定モデル。null で lead の現在の /model 選択を継承する |
worktree 設定
| キー | 説明 |
|---|---|
worktree.baseRef | 新しい worktree の分岐元。"fresh"(既定)は origin/<default-branch>、"head" はローカルの現在の HEAD。--worktree、EnterWorktree ツール、subagent の分離に適用される |
worktree.symlinkDirectories | メインリポジトリから各 worktree へ symlink するディレクトリ。既定では何も symlink しない |
worktree.sparsePaths | git 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 も無効になる) |
skipDangerousModePermissionPrompt | bypass permissions モードに入る前の確認プロンプトを飛ばす。project settings に書いた場合は無視される |
sandbox 設定(sandbox)
| キー | 説明 |
|---|---|
enabled | bash sandboxing を有効にする(macOS / Linux / WSL2)。既定 false |
failIfUnavailable | sandbox.enabled が true でサンドボックスを開始できない場合、起動時にエラー終了する。既定 false(警告を出して非サンドボックス実行) |
autoAllowBashIfSandboxed | サンドボックス化された bash コマンドを自動承認する。既定 true |
excludedCommands | サンドボックスの外で実行するコマンド |
allowUnsandboxedCommands | dangerouslyDisableSandbox パラメータでサンドボックス外実行を許す。既定 true |
filesystem.allowWrite | サンドボックス化コマンドが書き込める追加パス。全 settings スコープでマージされ、Edit(...) allow ルールのパスとも統合される |
filesystem.denyWrite | サンドボックス化コマンドが書き込めないパス |
filesystem.denyRead | サンドボックス化コマンドが読めないパス |
filesystem.allowRead | denyRead 領域内で読み取りを再許可するパス |
filesystem.allowManagedReadPathsOnly | (managed のみ)managed settings の filesystem.allowRead のみを尊重する。既定 false |
filesystem.disabled | network isolation を保ったまま filesystem isolation をスキップする。user / managed / --settings のみ。既定 false。v2.1.216 以降 |
credentials.files | サンドボックス化コマンドから保護する認証情報ファイル。path と mode(deny / mask)。任意で extract、onExtractNoMatch、decode、maskClaims、maskDuplicates、injectHosts |
credentials.envVars | 保護する環境変数。name と mode(deny / mask)。任意で extract、onExtractNoMatch、decode、maskClaims、injectHosts |
credentials.allowPlaintextInject | TLS 終端した 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.allowLocalBinding | localhost ポートへの bind を許可する(macOS のみ)。既定 false |
network.allowMachLookup | サンドボックスが lookup してよい追加の XPC / Mach サービス名(macOS のみ)。末尾に 1 つだけ * を使える |
network.allowedDomains | 送信ネットワークトラフィックを許可するドメインの配列。ワイルドカード対応 |
network.deniedDomains | ブロックするドメインの配列。両方に一致する場合 allowedDomains より優先される。allowManagedDomainsOnly に関わらず全ソースからマージされる |
network.strictAllowlist | allowlist 外のホストをプロンプトせず拒否する。user / managed / --settings のみ。既定 false。v2.1.219 以降 |
network.allowManagedDomainsOnly | (managed のみ)managed settings の allowedDomains と WebFetch(domain:...) allow ルールのみを尊重する。既定 false |
network.httpProxyPort | 自前のプロキシを使う場合の HTTP プロキシポート |
network.socksProxyPort | 自前のプロキシを使う場合の SOCKS5 プロキシポート |
network.tlsTerminate | 実験的。サンドボックスプロキシ内で TLS を終端する。mask に必要。{} でセッション用の一時 CA を生成、caCertPath と caKeyPath で自前の 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 設定
| キー | 説明 |
|---|---|
commit | git commit の attribution(trailer を含む)。空文字列で非表示 |
pr | pull request 説明の attribution。空文字列で非表示 |
sessionUrl | cloud / 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 設定
fileSuggestionにtype: "command"とcommandを設定する- コマンドは hooks と同じ環境変数(
CLAUDE_PROJECT_DIRを含む)で実行され、stdin で{"query": "src/comp"}の JSON を受け取る - stdout に改行区切りのファイルパスを出力する(現在は 15 件まで)
footer link badges
footerLinksRegexesの各エントリのpatternはターン出力(ツール結果、取得したページを含むファイル内容、Claude の応答)に対して照合されるurlとlabelの{name}プレースホルダは pattern の名前付き捕捉グループから埋められる
| 制約 | 挙動 |
|---|---|
| URL origin | 捕捉値は URL エンコードされ、構築後の URL はテンプレートのリテラル origin と一致しなければならない |
| URL length | 2048 文字を超える URL は破棄される |
| URL scheme | https / http、または vscode / vscode-insiders / cursor / windsurf / zed / jetbrains / idea / slack / linear / notion / figma |
| Label | 既定は一致テキスト。28 表示カラムで切り詰められる |
| Badge count | 最大 5 個。古いものが新しい一致に押し出され、/clear で消える |
| Settings scope | user settings、--settings、managed settings のみ |
- ターン完了時にメインスレッドで正規表現を照合するため、遅い正規表現は UI をブロックする。
(a+)+$のようなネストした量指定子は避ける
hook 関連の設定
allowManagedHooksOnly が true のとき:
-
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
| キー | 型 | 説明 |
|---|---|---|
path | string | ヘルパー実行ファイルの絶対パス |
timeoutMs | number | 失敗扱いにするまでの待ち時間 |
refreshIntervalMs | number | バックグラウンドで再実行する間隔。0 で無効、または最低 60000 |
- ヘルパーは JSON envelope を stdout に書く。設定はトップレベルではなく
managedSettingsキーの下に置く - ヘルパーが
managedSettingsを出力すると、それがその実行で唯一の managed settings ソースになり、remote / MDM / ファイルベースより優先される - 起動時にヘルパーが非ゼロで終了すると、Claude Code はエラーを出して起動を拒否する
優先順位
- Managed settings(server-managed、MDM / OS レベルポリシー、managed settings ファイル)
- コマンドライン引数(
--settings <file-or-json>は他の層と同じルールでマージされる) - Local project settings(
.claude/settings.local.json) - Shared project settings(
.claude/settings.json) - User settings(
~/.claude/settings.json)
managed を上書きできる例外:
disableClaudeAiConnectorsのtrueはどのスコープからでも適用される(managed がfalseでも)remoteControlAtStartupのfalseは project / local settings からでも適用される(managed がtrueでも)。逆に project / local のtrueは無視されるisolatePeerMachinesのtrueはどのスコープからでも適用されるcrossSessionInboundは、project / local の値がaccept<hold<refuseのラダーでより厳しい場合に適用されるCLAUDE_CODE_PROVIDER_MANAGED_BY_HOSTを設定する埋め込みホストは、model/fallbackModel/modelOverridesと managedenvのモデル選択環境変数について managed ソースより優先される。managed のavailableModelsはホストが自前のものを供給しない限り有効なまま
managed 層内の優先順位(1 つのソースのみが使われ、他はマージされずに無視される。高い順):
policyHelperの出力(設定されていればこれが唯一の managed ソース)- Remote(claude.ai server-managed または Claude apps gateway 配布)
- MDM / OS レベルポリシー
- ファイルベース(
managed-settings.d/*.jsonとmanaged-settings.jsonをマージしたもの) - HKCU レジストリ(Windows のみ)
- ただし次のキーは、勝ったソースだけでなく admin 管理の任意の managed ソースが設定していれば尊重される(HKCU は除く。
policyHelperがあるときはその出力のみ)- sandbox のロックキー
sandbox.network.allowManagedDomainsOnlyとsandbox.filesystem.allowManagedReadPathsOnly、およびそれぞれの allowlist allowAllClaudeAiMcps- sandbox のバイナリパス
sandbox.bwrapPathとsandbox.socatPath forceRemoteSettingsRefreshenv(admin 管理ソース間でキー単位にマージされる。各環境変数について最も優先度の高いソースが勝ち、低いソースが未設定分を埋める。v2.1.223 以降)
- sandbox のロックキー
配列設定のマージ:
- 同じ配列値の設定が複数スコープに現れると、連結・重複排除される(置き換えではない)
- 例外 2 つ
fallbackModelは位置に意味がある順序付きチェーンなので、定義する最上位のファイルが値全体を供給するavailableModelsは最上位の managed ソースが定義するとそのリストがそのまま適用され、user / project / local のエントリは拡張できない。managed でないスコープ間では通常どおりマージされる
有効な設定の確認
/statusの Status タブの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.jsonでfalseにしても project の.claude/settings.jsonが有効にした plugin は無効にならない。自分のマシンで外すには.claude/settings.local.jsonでfalseにする - managed settings が強制有効化した plugin はこの方法で無効化できない
- project settings は user settings より優先されるため、
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 |
hooks | user / project / local の settings.json の hooks | plugin 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.mdfacts/claude-code/permission-modes.mdfacts/claude-code/sandboxing.mdfacts/claude-code/hooks.mdfacts/claude-code/mcp.mdfacts/claude-code/plugins.mdfacts/claude-code/model-config.mdfacts/claude-code/env-vars.mdfacts/claude-code/statusline.mdfacts/claude-code/skills.mdfacts/claude-code/sub-agents.mdfacts/claude-code/memory.md