設定キー一覧
Claude Code の settings.json で使える全キーを、分類ごとに型・既定値・適用範囲つきで引ける一覧です。
Claude Code が設定ファイルから読むキーの一覧です。分類(モデル・権限・サンドボックス・メモリ・画面・Git・フック・プラグイン・MCP・エージェント・リモート・認証・更新・ツール・プライバシー・組織管理・グローバル設定)ごとに表にしています。ファイルの置き場所と優先順位は 設定ファイルの仕組み にあります。
- キー名は
settings.jsonにそのまま書く。ドット付きのキー(sandbox.enabledなど)は入れ子のオブジェクトで書く - 「適用範囲」は説明の頭の【】で示す。【】が無いキーは、ユーザー(
~/.claude/settings.json)・プロジェクト(.claude/settings.json)・ローカル(.claude/settings.local.json)・管理設定のどれにも置ける - 【管理設定のみ】のキーは、ユーザー・プロジェクト・ローカル設定と
--settingsに書くと無視される。多くは警告が出るが、requiredMaximumVersionとrequiredMinimumVersionは警告なしで無視される - 【グローバル設定】のキーは
settings.jsonでなく~/.claude.jsonに置く - 環境変数で同じことをするものは 環境変数一覧、権限ルールの書き方は 権限ルール、サンドボックスの仕組みは サンドボックス を見る
モデルと応答#
使うモデルと応答の仕方を決めます。/model や環境変数との関係は モデル・effort・fast mode を見てください。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
advisorModel |
文字列:"fable"・"opus"・"sonnet" か完全なモデル ID |
未設定(advisor オフ) | サーバー側 advisor ツールに答えさせるモデル。メインモデル以上の能力が要る。通常は /advisor で選ぶ。--advisor が優先。CLAUDE_CODE_DISABLE_ADVISOR_TOOL でオフ。Bedrock・Claude Platform on AWS では効かない |
alwaysThinkingEnabled |
Boolean | 未設定(対応モデルで思考オン) | false で拡張思考をオフにする(true は何も変えない)。常に思考するモデル(Opus 5.5・Sonnet 5.5・Fable)では false も効かない。MAX_THINKING_TOKENS が優先 |
availableModels |
モデルのエイリアスか ID の配列 | 未設定(全モデル可) | 選べるモデルを制限する(メイン・サブエージェント・スキル・advisor)。管理設定で配ると組織に強制できる。"claude-opus-5" のようなモデル ID は、それを延長する後続バージョン(Opus 5.5 など)も許す |
availableModelsMatch |
"prefix"・"exact" |
"prefix" |
【管理設定のみ】availableModels の照合方法。"exact" ではモデル ID の項目が名指しのバージョンだけを許す。v2.1.283 以降 |
deniedModels |
モデルのエイリアスか ID の配列 | 未設定(ブロックなし) | 【管理設定のみ】特定のモデルをブロックする(許可リストが許していても)。ピッカーから隠れ、選べなくなる。ファミリーのエイリアス("opus")はファミリー全体、マイナーバージョン無しの ID("claude-opus-5")は後続のマイナーも対象。v2.1.283 以降 |
effortLevel |
"low"・"medium"・"high"・"xhigh" |
未設定 | 保存済みのレベルがないモデルの既定 effort。/effort は v2.1.251 以降は modelSettings に保存する。--effort が優先で、CLAUDE_CODE_EFFORT_LEVEL はさらにその上 |
enforceAvailableModels |
Boolean | false |
true で、「Default」の行が availableModels の外のモデルに解決されるとき、リスト内の最初のモデルに解決する。v2.1.175 以降。起動時のモデル確認での扱いは Bedrock・Vertex AI・Foundry を見る |
fallbackModel |
モデルのエイリアスか ID の配列("default" は既定モデルに展開) |
未設定(別モデルで再試行しない) | 主モデルが過負荷・利用不可のとき順に試すバックアップモデル。そのターンの残りは切り替わったモデルで続く |
fastMode |
Boolean | 未設定(オフ) | 対応するセッションで fast mode をオンにする。通常は /fast が書く |
fastModePerSessionOptIn |
Boolean | false |
true で、保存された fastMode: true が次のセッションの開始時に fast mode をオンにしなくなる(各自が /fast を実行する) |
language |
言語名の文字列("japanese" など。検証されない) |
未設定(セッションタイトルは会話の言語に合う) | Claude の応答の既定の言語。値はそのまま「常にその言語で答える」指示として Claude に渡る |
maxEffortLevel |
"low"・"medium"・"high"・"xhigh"・"max"("max" は上限なし) |
未設定(上限なし) | セッションで使える effort の上限。/effort・/model ピッカー・--effort・CLAUDE_CODE_EFFORT_LEVEL なども上限で頭打ちになる。管理設定で強制できる。複数のスコープで設定すると最も低いものが効く |
model |
モデルのエイリアスか完全なモデル ID | 未設定(アカウントの既定モデル) | 新しいセッションが使うモデル。セッション中の切り替えは妨げない。管理者が組織の既定モデルを設定していれば、それが優先される |
modelOverrides |
オブジェクト(モデル ID → プロバイダーのモデル ID) | 未設定 | Anthropic のモデル ID を Bedrock の推論プロファイル ARN などプロバイダー固有の ID に対応づける |
modelPicker |
オブジェクト:options 配列と任意の replaceBuiltInOptions |
未設定(組み込みの一覧) | 【ユーザーか管理設定】/model ピッカーに出すモデルを、順序とラベルを指定して並べる。プロジェクト/ローカル設定では無視される |
modelPricing |
オブジェクト:任意の multiplier と overrides |
未設定(定価で報告) | 【管理設定のみ】契約単価で支出を報告する。/usage・ステータスラインなどに適用される |
modelSettings |
オブジェクト(モデル名 → effortLevel・maxEffortLevel・autoCompactWindow) |
未設定 | モデルごとの effort レベルと自動コンパクトの窓を保存する(effortLevel の保存は v2.1.251 以降、autoCompactWindow は v2.1.288 以降)。autoCompactWindow は 100000〜1000000 のトークン数か、モデルに合わせた窓にする "auto"。そのモデルについては、同じファイルの最上位の autoCompactWindow より優先される。/autocompact はここに保存する |
outputStyle |
文字列(組み込みかカスタムの出力スタイル名) | 未設定(既定のスタイル) | 出力スタイルを名前で選ぶ |
promptCacheTtl |
"5m"・"1h" |
未設定 | メイン会話(対話・-p・Agent SDK のターンとインラインのヘルパー)のプロンプトキャッシュの保持時間 |
showThinkingSummaries |
Boolean | false |
true で、対話セッションで Ctrl+O で思考を展開したとき思考の要約を全部見られる。未設定か false では API が思考ブロックを伏せ、折りたたまれたスタブが出る |
subagentPromptCacheTtl |
"5m"・"1h" |
未設定 | メイン会話の外のリクエスト(サブエージェント・ワークフロー・コンパクトやセッションタイトルなどのバックグラウンド)のキャッシュ保持時間 |
switchModelsOnFlag |
Boolean | true |
安全分類器がリクエストにフラグを立てたとき、フォールバックモデルへ自動で切り替えて続けるか。false では対話セッションが止まり、切り替えかプロンプト編集かを選べる。/config の「Switch models when a message is flagged」 |
ultracode |
Boolean | 未設定(オフ) | ultracode をオンにしてセッションを始める。実質的なタスクごとに Claude がワークフローを計画する。動的ワークフローが有効で、モデルが xhigh effort に対応するときだけ |
modelPicker のフィールド#
| フィールド | 型 | 内容 |
|---|---|---|
options |
行の配列(各行は必須の model と、任意の label・description・behavesAs) |
ピッカーに出す行。この順に並ぶ(グレーアウトの行は最下部へ)。label が無ければ既知のモデルは組み込み名、そうでなければモデル ID。description が無ければ汎用の 2 行目 |
replaceBuiltInOptions |
Boolean(既定 false) |
true で、これらの行と「Default」と現在使用中のモデルの行だけを出す。未設定なら組み込みの一覧の後ろに足す |
behavesAsは v2.1.257 以降。modelが自分のバージョンより新しいときに、既知のモデルの ID(例:claude-opus-4-8)を指定すると、そのモデルの機能と effort の既定が使われるavailableModelsの許可リストはこれらの行にも適用される。サーバーが出せない行(廃止・アクセスなし)は落とされ、まだ選べない行はグレーアウトされ、1 行も残らなければ組み込みの一覧(許可リストで絞ったもの)に戻る
modelPricing のフィールド#
| フィールド | 型 | 内容 |
|---|---|---|
multiplier |
0 より大きく 10 以下の数値 | Claude Code が計算するすべてのコストに掛ける倍率(overrides の行にも)。1 未満は割引、1 超は割増 |
overrides |
モデル ID → 単価オブジェクト(input・output・cacheRead・cacheWrite。各 0〜10000、4 つとも必須) |
100 万トークンあたりの USD 単価。cacheWrite は 5 分・1 時間のキャッシュ書き込みの両方 |
- 行の単価は書いたとおりに使われ、fast mode の割増や米国内推論の料金は加算されない。
multiplierも指定すれば、その上に掛かる - 組み込みモデルの ID をキーにした行は、そのモデルの日付付きスナップショットとプロバイダー固有の ID すべてに適用される。それ以外のキー(ゲートウェイのエイリアスなど)はその 1 つの ID だけ。完全一致のほうが優先される
- Bedrock のアプリケーション推論プロファイルは、
modelOverridesかbedrock:GetInferenceProfileで解決されたモデルの行が適用される
権限#
ツールを聞かずに使える範囲、必ず確認するもの、ブロックするもの、セッションの開始権限モードを決めます。ルールの書き方は 権限ルール、モードの意味は 権限モード を見てください。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
allowManagedPermissionRulesOnly |
Boolean | 未設定(ユーザー・プロジェクト・ローカルと --settings のルールも適用) |
【管理設定のみ】権限ルールの設定元を管理設定だけにする。ほかのファイルの allow・ask・deny と --allowedTools は無視され、権限確認の「常に許可」の選択肢も隠れる。v2.1.282 以降は、次の元のスキルと .claude/commands/ のファイルのフロントマター allowed-tools も無視される:リポジトリの .claude/、~/.claude/skills/ と ~/.claude/commands/(claude.ai から同期したスキルを含む)、--add-dir のディレクトリ、~/.claude/skills/ かプロジェクトの .claude/skills/ の中にある .claude-plugin マニフェスト付きのプラグイン。管理設定のスキルと同梱スキルは allowed-tools を保ち、disallowed-tools は引き続き効く |
autoMode |
オブジェクト:environment・allow・soft_deny・hard_deny(文章のルールの配列)と classifyAllShell |
未設定(組み込みのルールのみ) | 【ユーザーか管理設定】auto mode の分類器がブロック・許可するものに独自のルールを足す。組織が信頼するリポジトリ・バケット・ドメインを教える |
autoMode.classifyAllShell |
Boolean | false |
【ユーザーか管理設定】auto mode 中、すべての Bash・PowerShell コマンドを分類器に通す。既定では、任意のコードを実行しうる許可ルール(Bash(*)・インタープリター系など)だけを止める |
disableAutoMode |
文字列 "disable" |
未設定 | Shift+Tab の巡回から auto mode を外す。auto で始まるはずのセッション(--permission-mode auto・設定・組み込みの既定)も default で始まる。管理設定向け。permissions.disableAutoMode としても書ける |
permissions |
オブジェクト:allow・ask・deny・additionalDirectories・blockReadsOutsideWorkingDirectories・defaultMode・disableBypassPermissionsMode・disableAutoMode |
未設定 | 以下の permissions.* キーがこの下に入る |
useAutoModeDuringPlan |
Boolean | true |
【ユーザー・ローカルか管理設定】plan mode で、auto mode が使えるとき分類器にシェルコマンドを審査させる。false では組み込みの読み取り専用以外のコマンドごとに権限確認が出る。リポジトリ側からはオフにできない |
permissions.allow |
権限ルール文字列の配列 | 未設定 | 聞かずに承認するツール使用。MCP ルールでは * は mcp__<server>__ の後のツール名にだけ置ける(例:mcp__github__get_*。サーバー名には置けない) |
permissions.ask |
権限ルール文字列の配列 | 未設定 | acceptEdits や bypassPermissions でも確認するツール使用。dontAsk では確認せず拒否される |
permissions.deny |
権限ルール文字列の配列 | 未設定 | ブロックするツール使用。API キーや秘密を含むファイル向けで、該当ファイルをファイル探索・検索から外し、読み取りを拒否し、Edit・Write もブロックする |
permissions.additionalDirectories |
ディレクトリパスの配列 | 未設定 | 起動したディレクトリの外のファイルへのアクセスを、追加の作業ディレクトリとして与える。.claude/ の設定の多くはそこからは検出されない |
permissions.blockReadsOutsideWorkingDirectories |
Boolean | 未設定(作業ディレクトリ外の読み取りは権限モードに従う) | bypassPermissions を含むすべてのモードで、Read・Grep・Glob・LSP の作業ディレクトリ外の読み取りを拒否する。どれかのファイルで true なら有効(リポジトリは自分のためにオンにできるが、あなたの設定は解除できない) |
permissions.defaultMode |
"default"・"acceptEdits"・"plan"・"auto"・"dontAsk"・"bypassPermissions"・"manual" |
未設定(画面ごとの組み込みの既定) | 新しいセッションが始まる権限モード。auto と bypassPermissions はプロジェクト/ローカル設定からは効かない(~/.claude/settings.json に書く。v2.1.257 より前は bypassPermissions が効いた)。"manual" は "default" の別名(v2.1.200 以降) |
permissions.disableBypassPermissionsMode |
文字列 "disable" |
未設定 | bypassPermissions モードに入れなくする。--dangerously-skip-permissions は拒否され、エージェント定義の permissionMode: bypassPermissions も無視される。通常は管理設定で組織のポリシーとして設定 |
skipAutoPermissionPrompt |
Boolean | 未設定(通知は一度出る) | 【ユーザーか管理設定】自分で auto mode に入るとき(設定やモード選択から)出る 1 回きりの説明の通知を省く。リポジトリからは設定できない |
skipDangerousModePermissionPrompt |
Boolean | 未設定(ダイアログが出る) | 【ユーザー・ローカルか管理設定】bypassPermissions に入る前の確認ダイアログを省く(--dangerously-skip-permissions でも defaultMode: "bypassPermissions" でも)。信頼できないリポジトリからは省けない |
permissions.defaultMode の値の意味は次のとおりです。
| 値 | 動き |
|---|---|
"default" |
読み取りだけを聞かずに実行する |
"acceptEdits" |
ファイル編集と mkdir・mv などの一般的なファイル操作も聞かずに実行する |
"plan" |
読んで計画するだけで、計画を承認するまで編集をブロックする |
"auto" |
定型の確認なしで実行し、シェルコマンドやネットワークリクエストなどの前に審査が入る |
"dontAsk" |
確認が出るはずの呼び出しをすべて自動で拒否する |
"bypassPermissions" |
何も聞かずにすべて実行する |
permissions.blockReadsOutsideWorkingDirectories をオンにしてサンドボックスも有効なら、サンドボックス内のコマンドにもブロックが及びます。
- サンドボックス内のコマンドは、ホームディレクトリと
/Users・/home・/root・/Volumes・/mnt・/media・/run/media・/srvの読み取りが拒否され、作業ディレクトリなどだけが開き直される - 作業ディレクトリが linked git worktree のときは、リポジトリ共通の
.gitディレクトリが読み書きできるままになり、git が動く - 次の場合はサンドボックス内のコマンドにはブロックが及ばない(Claude のファイルツールでは有効):
sandbox.filesystem.disabledでファイルシステムの隔離がオフ、allowManagedReadPathsOnlyが設定されている、起動ディレクトリのパスに*・?・[が含まれる - グローバルな git 設定(
~/.gitconfig・$XDG_CONFIG_HOME/gitのconfig・ignore・attributes・include/includeIf/core.excludesFile/core.attributesFileが指すファイル)はサンドボックス内のコマンドに開き直される。サンドボックスが書き込める場所にあるファイル(シンボリックリンク経由を含む)は開き直されない - Linux・WSL2 ではシンボリックリンクの設定ファイルが読めないままのことがあり、git はそれなしで動く。
~/.git-credentialsと$XDG_CONFIG_HOME/git/credentialsはブロックされたまま - 開き直されたファイルに秘密(
http.extraHeaderのトークンなど)があるなら、sandbox.filesystem.denyReadにパスを足す(denyReadが常に優先)
補足
権限ルールは deny → ask → allow の順に評価され、最初に一致したものが(具体性に関係なく)決まります。書き方は 権限ルール にあります。
サンドボックス#
Claude が実行する Bash コマンドを、ファイルシステムとネットワークから隔離します。仕組みと使い方は サンドボックス を見てください。まず sandbox.enabled でオンにし、filesystem・network・credentials で触れる範囲を狭めたり広げたりします。
管理設定や --settings の sandbox.allowUnsandboxedCommands: false などでサンドボックスが「admin-required」になっている間は、sandbox.excludedCommands・sandbox.failIfUnavailable・sandbox.filesystem.*・sandbox.network.* など多くのキーで、リポジトリの .claude/settings.json と .claude/settings.local.json の項目が制限される(取り込まれるのは管理設定・--settings・ユーザー設定)。sandbox.network.allowManagedDomainsOnly が true の間も同じ状態になる。詳しくは サンドボックス を見てください。
sandbox 本体#
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
sandbox |
オブジェクト(下のサブキー) | 未設定(サンドボックスなしで実行) | Bash コマンドの隔離の設定をまとめる |
sandbox.enabled |
Boolean | false |
Bash コマンドのサンドボックスをオンにする。/sandbox で選ぶと、そのプロジェクトの .claude/settings.local.json に書かれる。全プロジェクトに効かせるなら ~/.claude/settings.json |
sandbox.failIfUnavailable |
Boolean | false |
sandbox.enabled が true なのにサンドボックスが起動できない(依存の欠落・非対応プラットフォーム)とき、起動時にエラーで終了する。false ではサンドボックスなしで実行する。非対応のプラットフォームでは、このキーをオンにすると Claude Code が起動しない |
sandbox.autoAllowBashIfSandboxed |
Boolean | true |
サンドボックス内の Bash コマンドを権限確認なしで実行する。deny ルールと Bash(git push *) のような内容指定の ask ルールは引き続き効く。サンドボックスで動かせないコマンドは通常の権限フローに従う |
sandbox.excludedCommands |
コマンドパターンの配列 | 未設定(除外なし) | サンドボックスの外で実行するコマンド(サンドボックスで動かないツールなど)。Bash(...) ルールの中身と同じ書き方(完全一致・docker * のような接頭辞・ワイルドカード)。ワイルドカードのないパターンは完全一致で、docker は引数なしの docker だけに一致する。git clone・git init・git worktree add・git worktree move・git bundle create に、絶対パス・~ 始まり・.. を含むパス引数があるときは、git * の項目があってもサンドボックス内のまま(git clone <url> vendor/lib は外で動き、git clone <url> ~/tools は内のまま)。サンドボックスが admin-required の間は、.claude/settings.json と .claude/settings.local.json の項目は無視される |
sandbox.allowUnsandboxedCommands |
Boolean | true |
サンドボックスにブロックされたコマンドを、Claude が dangerouslyDisableSandbox パラメーターでサンドボックスの外で再試行できるか。false ではこのパラメーターが完全に無視され、サンドボックスが動いている間、Claude が実行するコマンドは excludedCommands の項目に一致しないかぎりサンドボックス内になる(/sandbox の「Overrides」タブでは「Strict sandbox mode」と出る)。管理設定か --settings の false は、サンドボックスを admin-required にする。ユーザー設定の false はプロジェクトの true に対して保たれるが、admin-required にはしない(プロジェクトの値に対して保つのは v2.1.285 以降) |
sandbox.enableWeakerNestedSandbox |
Boolean | false |
Linux で、権限のない Docker コンテナの中でサンドボックスを動かす(bubblewrap が新しい /proc をマウントできない環境)。内側のサンドボックスはコンテナの既存の /proc を bind マウントするので、新規マウントなら隠れるプロセス情報が見える |
sandbox.enableWeakerNetworkIsolation |
Boolean | false |
macOS で、サンドボックス内のコマンドがシステムの TLS トラストサービス com.apple.trustd.agent に届くようにする。network.httpProxyPort を使うとき、gh・gcloud・terraform などの Go 製ツールが証明書の検証に必要とする |
sandbox.allowAppleEvents |
Boolean | false |
【ユーザーか管理設定】macOS で、サンドボックス内のコマンドが Apple Events を送れるようにする(open・osascript・ブラウザで URL を開くツールが必要とする。無いとエラー -600)。コード実行の隔離が外れ、他のアプリを起動できる |
sandbox.ripgrep |
オブジェクト:command(ripgrep のパス)と任意の args(先頭に足す引数の配列) |
未設定(Claude Code と同じ ripgrep。USE_BUILTIN_RIPGREP が 0 でなければ同梱版) |
【ユーザーか管理設定】サンドボックスが使う ripgrep を自前のバイナリにする |
sandbox.bwrapPath |
絶対パスの文字列 | 未設定(PATH から bwrap を探す) |
【管理設定のみ】PATH の外にある bubblewrap を指す(エアギャップのホストの同梱コピーなど)。相対パスは捨てられ PATH の探索に戻る |
sandbox.socatPath |
絶対パスの文字列 | 未設定(PATH から socat を探す) |
【管理設定のみ】PATH の外にある socat をサンドボックスのネットワークプロキシに使う。相対パスは捨てられる |
sandbox.ignoreViolations |
オブジェクト(コマンドの部分文字列 → 違反の部分文字列(通常はパス)の配列) | 未設定(全違反を報告) | コマンドが探りに行って拒否されると分かっているパス(起動時に /etc/hosts を見るツールなど)の違反報告を黙らせる。ブロック自体は続く |
sandbox.filesystem#
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
sandbox.filesystem |
オブジェクト:allowWrite・denyWrite・denyRead・allowRead の配列と、Boolean の allowManagedReadPathsOnly・disabled |
未設定(既定の読み書きの境界) | サンドボックス内のコマンドが読み書きできるパスを決める。既定では作業ディレクトリ・ユーザーごとの一時ディレクトリ・--add-dir、/add-dir、permissions.additionalDirectories で足したディレクトリに書ける |
sandbox.filesystem.allowWrite |
パス文字列の配列 | 未設定 | 既定の書き込み先に加えて書き込める場所 |
sandbox.filesystem.denyWrite |
パス文字列の配列 | 未設定 | 書き込みをブロックするパス(書き込める場所の中のパスも) |
sandbox.filesystem.denyRead |
パス文字列の配列 | 未設定(~/.aws/credentials などの認証情報ファイルを含む既定の読み取りが残る) |
読み取りをブロックするパス。認証情報ファイルを守りつつサンドボックスのプロキシ経由で使えるようにするなら sandbox.credentials |
sandbox.filesystem.allowRead |
パス文字列の配列 | 未設定 | denyRead がブロックする領域の中の特定のパスの読み取りを開き直す(作業領域だけを読めるようにする構成用)。完全一致やワイルドカードの denyRead 項目は、より広い allowRead の中でもブロックされたまま |
sandbox.filesystem.allowManagedReadPathsOnly |
Boolean | false |
【管理設定のみ】管理設定由来の allowRead だけを有効にし、開発者が組織のブロックした読み取りを開き直せなくする。denyRead は全設定スコープから統合される |
sandbox.filesystem.disabled |
Boolean | false(ファイルシステムの隔離はオン) |
【ユーザーか管理設定】ファイルシステムの隔離を外し、ネットワークの隔離は保つ(ホストのファイルシステムを自由に読み書きでき、ネットワークの出口は network.allowedDomains に限られる)。管理設定が sandbox.filesystem を設定しているか、sandbox.credentials.files に "mode": "deny" の項目があると、管理設定でしか設定できない |
allowWrite・denyWrite・denyRead・allowRead・credentials.files のパスは、接頭辞で解決されます。
| 接頭辞 | 意味 | 例 |
|---|---|---|
/ |
ファイルシステムのルートからの絶対パス | /tmp/build は /tmp/build のまま |
~/ |
ホームディレクトリからの相対 | ~/.kube は $HOME/.kube |
./ か接頭辞なし |
プロジェクト設定ではプロジェクトルート、ユーザー設定では ~/.claude からの相対 |
.claude/settings.json の ./output は <project-root>/output |
//pathの絶対パスの書き方も使える。プロジェクト相対のつもりで/pathと書いたなら./pathにする(Read・Edit の権限ルールは//pathが絶対、/pathがプロジェクト相対で、サンドボックスのパスとは書き方が違う)- 末尾のスラッシュは取り除かれる(
~/.awsと~/.aws/は同じ)。v2.1.224 より前は末尾のスラッシュがそのままサンドボックスに渡り、denyRead・denyWriteの下のパスを読み書きできることがあった - 末尾の
/**も取り除かれる(~/build/**と~/buildは同じ範囲) - ワイルドカード:
allowWrite・denyWriteは macOS で使える。Linux・WSL2 では、末尾の/**を除いたあとに*・?・[を含む項目はスキップされ効かない(Editの権限ルールから足されるパスにも同じ制限がある)。denyRead・allowReadはどのプラットフォームでも使え、Linux・WSL2 では一致する具体的なパスに展開される
sandbox.credentials#
サンドボックス内のコマンドから守る認証情報ファイルと環境変数を宣言します。各項目は path(ファイル)か name(変数)と mode を持ちます。deny はサンドボックス内で隠し、mask はサンドボックス内のコマンドには身代わりの値を見せて、プロキシが外向きの通信でだけ本物の値に置き換えます。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
sandbox.credentials |
オブジェクト:files・envVars・allowPlaintextInject・awsPairs・sigv4 |
未設定(保護なし) | mask の項目・allowPlaintextInject・awsPairs・sigv4 は、ユーザー設定・管理設定・--settings からだけ有効 |
sandbox.credentials.files |
オブジェクトの配列:path・mode("deny" か "mask")と、ファイル用のマスクのフィールド |
未設定 | 認証情報のファイルやディレクトリを守る。"deny" は sandbox.filesystem.denyRead と同じ読み取りブロック。プロジェクト/ローカル設定の mask 項目は捨てられる |
sandbox.credentials.envVars |
オブジェクトの配列:name・mode("deny" か "mask")と、環境変数用のマスクのフィールド |
未設定 | 環境変数を守る。"deny" はサンドボックス内のコマンドの環境からその変数を取り除き、"mask" はセッションごとの身代わりの値を見せる。プロジェクト/ローカル設定の mask 項目は捨てられる |
sandbox.credentials.allowPlaintextInject |
Boolean | false(mask の置換は TLS を終端した HTTPS だけ) |
【ユーザーか管理設定】平文の HTTP リクエストでも mask の置換を許す。相手が確認されず認証情報が平文で流れるので、信頼できるテスト用ネットワークの外では使わない |
sandbox.credentials.awsPairs |
オブジェクトの配列:accessKeyIdVar・secretAccessKeyVar・任意の sessionTokenVar(sandbox.credentials.envVars の項目を指す名前) |
未設定(標準の 3 つ組だけを対応づけ) | 【ユーザーか管理設定】標準でない名前の変数に AWS の資格情報があるとき、SigV4 の再署名のために、マスクした環境変数を 1 つの資格情報としてまとめる。次の規則も適用される:プロキシは、アクセスキー ID の項目の injectHosts に挙げたホストへのリクエストを再署名する/sessionTokenVar を設定すると、再署名したリクエストで本物のトークンを x-amz-security-token として送る/組の中で標準の変数のどれかを名指しすると、自動の対応づけの代わりになる |
sandbox.credentials.sigv4 |
オブジェクト:streaming・presigned・sigv4a。各値は "deny"(プロキシがリクエストを失敗させる)か "passthrough"(マスクされた身代わりの値で署名されたまま転送する) |
未設定(すべて "deny") |
【ユーザーか管理設定】プロキシが再署名できない AWS リクエストの形(aws-chunked のストリーミングアップロード・事前署名 URL・SigV4A の非対称署名)の扱い |
ファイルのマスクのフィールド#
mask の項目に付けられる任意のフィールドです。extract も decode も無ければ、ファイルの内容全体が 1 つの身代わりの値に置き換わります。macOS でファイルシステムの隔離がオンのときは、extract・decode の前に mask が deny として適用されます。
| フィールド | 型 | 内容 |
|---|---|---|
extract |
正規表現の文字列(キャプチャグループが 1 つ以上必要) | 各一致のグループ 1 でキャプチャした部分だけをマスクし、残りは解釈可能なままにする。decode も指定すると、各キャプチャを JWT の候補として検査する。v2.1.221 以降 |
onExtractNoMatch |
"warn"(既定)・"deny"・"error" |
extract か decode がマスクする対象を見つけなかったときの動き。warn はファイルをそのまま読めるまま、deny は読めなくする、error は設定を直すまでサンドボックスの準備を止める |
decode |
文字列 "jwt" |
ファイル内の JWT を(組み込みのパターンか extract で)見つけて検証し、構造として有効な偽のトークンに置き換える(サンドボックス内でトークンをデコードするコードが動き続ける)。検証できる候補が無ければ onExtractNoMatch に従う |
maskClaims |
文字列の配列(クレーム名が 1 つ以上。decode が必要) |
検証した各 JWT のペイロードのうち、指定した最上位のクレームだけをマスクしてトークンを組み直す。一致するクレームが無ければ onExtractNoMatch に従う。v2.1.224 以降 |
maskDuplicates |
Boolean(既定 false) |
マスクした各値の、ファイル内の他の逐語コピー(コメントに貼った秘密など)も置き換える。生の部分文字列で照合するので、長くエントロピーの高い秘密だけに使う。extract か decode があるときだけ見られる。v2.1.221 以降 |
injectHosts |
文字列の配列(sandbox.network.allowedDomains も許すホスト) |
プロキシが本物の値に置換するホストを絞る。未設定なら sandbox.network.allowedDomains の全ホスト宛てのリクエストで置換する。v2.1.221 以降 |
{
"sandbox": {
"credentials": {
"files": [
{
"path": "~/.config/gh/hosts.yml",
"mode": "mask",
"extract": "oauth_token:\\s*(\\S+)",
"maskDuplicates": true,
"onExtractNoMatch": "deny",
"injectHosts": ["api.github.com"]
}
]
}
}
}
環境変数のマスクのフィールド#
mask の項目に付けられる任意のフィールドです。extract も decode も無ければ、値全体が 1 つの身代わりの値に置き換わります。同じ項目で extract と decode は併用できません。
| フィールド | 型 | 内容 |
|---|---|---|
extract |
正規表現の文字列(キャプチャグループが 1 つ以上必要) | 各一致のグループ 1 だけをマスクする(DATABASE_URL の接続文字列の中のパスワードなど)。v2.1.224 以降 |
onExtractNoMatch |
"warn"(既定)・"deny"・"error"(decode のある項目では "warn" のみ) |
extract が何にも一致しないときの動き。warn はマスクせず通す、deny はサンドボックス内でその変数を unset する、error は設定を直すまでサンドボックスの準備を止める。v2.1.224 以降 |
decode |
文字列 "jwt" |
値全体が JWT であることを検証し、構造として有効な偽のトークンに置き換える(プロキシが外向きで本物の全トークンに置換する)。検証できない値は警告つきでマスクせず通す。v2.1.224 以降 |
maskClaims |
文字列の配列(クレーム名が 1 つ以上。decode が必要) |
デコードした JWT のうち指定した最上位のクレームだけをマスクしてトークンを組み直す。一致するクレームが無ければ警告つきでマスクせず通す。v2.1.224 以降 |
injectHosts |
文字列の配列(sandbox.network.allowedDomains も許すホスト) |
プロキシが本物の値に置換するホストを絞る。未設定なら sandbox.network.allowedDomains の全ホスト宛て |
{
"sandbox": {
"credentials": {
"envVars": [
{ "name": "DATABASE_URL", "mode": "mask", "extract": "://[^:]+:([^@]+)@", "onExtractNoMatch": "deny" },
{ "name": "SERVICE_JWT", "mode": "mask", "decode": "jwt", "maskClaims": ["api_key"] }
]
}
}
}
補足
管理設定の sandbox.credentials の項目が検証に失敗したとき(v2.1.191 以降。v2.1.221 より前はすべて除去)、path か name と mode(mask・deny)が有効な項目(extract にキャプチャグループが無いなど)は警告つきで mode: "deny" に降格し、認証情報はマスクでなくブロックされたままになります。mode が未知、または path・name が無効な項目は除去されます。残りの有効な項目は適用され、credentials 全体が無効なら捨てられ、sandbox の残りは適用されます。
sandbox.network#
サンドボックス内のコマンドが届くホスト・ポート・ソケットを決めます。外向きの通信は、これらのリストを強制するプロキシ経由になります。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
sandbox.network |
オブジェクト(下のサブキー) | 未設定(事前に許可するドメインなし。新しいホストごとに確認) | strictAllowlist・allowManagedDomainsOnly・tlsTerminate は読まれる設定元が限られる |
sandbox.network.allowUnixSockets |
ソケットパスの文字列の配列 | 未設定(macOS は全 Unix ソケットをブロック) | macOS で接続できる Unix ソケットのパス。Linux・WSL2 では(seccomp フィルターがソケットのパスを調べられないため)無視されるので allowAllUnixSockets を使う |
sandbox.network.allowAllUnixSockets |
Boolean | false |
すべての Unix ソケットへの接続を許す。Linux・WSL2 では seccomp フィルターが socket(AF_UNIX, ...) をブロックするので、そこで Unix ソケットを許すにはこれしかない |
sandbox.network.allowLocalBinding |
Boolean | false |
macOS で、サンドボックス内のコマンドがネットワークのポートで待ち受け(開発サーバーの起動など)、localhost の任意のポートへ接続できるようにする。非ループバックのアドレスで待ち受けると、ほかのマシンからの接続も受ける。Linux・WSL2 では効かない(コマンドごとに専用のループバックがある) |
sandbox.network.allowMachLookup |
文字列の配列(サービス名。末尾の 1 つの * は接頭辞に一致し、"*" だけなら全サービス) |
未設定 | macOS のサンドボックスが参照してよい追加の XPC・Mach サービス名(iOS Simulator や Playwright など XPC で通信するツール向け) |
sandbox.network.allowedDomains |
文字列の配列(ドメイン・ワイルドカード・IP リテラル。任意の :port 付き) |
未設定(新しいホストの扱いは権限モードで決まる) | サンドボックス内のコマンドの外向き通信を事前に許可するドメイン(確認が出ない)。*.example.com はサブドメインに一致し、:port を付けるとその 1 つのポートに限る。allowManagedDomainsOnly のときは管理設定のみ |
sandbox.network.deniedDomains |
文字列の配列(allowedDomains と同じ書き方) |
未設定 | 外向き通信をブロックするドメイン。allowedDomains の項目に一致していてもブロックされたまま |
sandbox.network.strictAllowlist |
Boolean | false |
【ユーザーか管理設定】許可リスト(allowedDomains と WebFetch(domain:...) の許可ルール。allowManagedDomainsOnly なら管理設定のみ)の外のホストを、確認でなく拒否する。リポジトリからはオンにもオフにもできない |
sandbox.network.allowManagedDomainsOnly |
Boolean | false |
【管理設定のみ】ネットワークの許可リストを管理設定の定義だけに固定する。ユーザー・プロジェクト・ローカル・--settings のドメインは無視される |
sandbox.network.httpProxyPort |
数値(ローカルの TCP ポート) | 未設定(Claude Code が自分のプロキシを動かす) | Claude Code のものの代わりに自前の HTTP プロキシを指す(HTTPS の検査・独自のフィルタリング・リクエストのログ用)。フィルタリングはそのプロキシに移り、Claude Code はそこへ送る通信にドメインの一覧とネットワークの確認を適用しなくなる。allowManagedDomainsOnly が true の間は管理設定だけがポートを設定できる |
sandbox.network.socksProxyPort |
数値(ローカルの TCP ポート) | 未設定 | 自前の SOCKS5 プロキシを指す。フィルタリングは httpProxyPort と同じくそのプロキシに移る |
sandbox.network.tlsTerminate |
オブジェクト:任意の caCertPath・caKeyPath(ファイルパス) |
未設定(TLS を終端も検査もしない) | 【ユーザーか管理設定】サンドボックスのプロキシに TLS を終端させ、HTTPS リクエストの中身を読めるようにする(実験的。mask の認証情報の置換に必要)。{} でセッション用の一時的な認証局を作り、caCertPath・caKeyPath で自前の認証局を使う。リポジトリからはオンにも認証局の指定もできない |
メモリとコンテキスト#
コンパクト・自動メモリ・CLAUDE.md の読み込み・環境変数・チェックポイントなどの設定です。関連:CLAUDE.md とメモリ、コンテキストとプロンプトキャッシュ、チェックポイントと巻き戻し。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
autoCompactEnabled |
Boolean | true |
コンテキストが上限に近づいたとき自動でコンパクトする。/config の「Auto-compact」で切り替えるとユーザー設定にこのキーが書かれる |
autoCompactWindow |
数値(トークン数、100000〜1000000) |
未設定(モデルに合わせた窓) | 自動コンパクトが走るまでコンテキストをどこまで使うか。値はモデルのコンテキスト窓で頭打ちになる。/autocompact はいまのモデルの窓を modelSettings に保存し、そのモデルについては同じファイルのこのキーより優先される |
autoMemoryDirectory |
文字列(絶対パスか ~/ 始まりのディレクトリ) |
未設定(~/.claude/projects/<project>/memory/) |
自動メモリの置き場所 |
autoMemoryEnabled |
Boolean | true |
自動メモリのオン/オフ。false では自動メモリのディレクトリを読み書きしない。セッション中は /memory でも切り替えられる(ユーザー設定に書かれる) |
bashOutputMaxChars |
数値(正の整数。4000〜128000 に丸められる) |
未設定(最大 30,000 文字をインラインで受け取る) | 成功した Bash・PowerShell コマンドの出力のうち Claude がインラインで受け取る文字数。超えた出力はファイルに保存され、短いプレビューとパスが渡る。設定すると BASH_MAX_OUTPUT_LENGTH は無視される |
claudeMd |
文字列(CLAUDE.md の本文。改行は \n) |
未設定 | 【管理設定のみ】別ファイルを配らずに、組織管理のメモリとして CLAUDE.md 形式の指示を差し込む。ユーザー・プロジェクトの CLAUDE.md より前に読まれる |
claudeMdExcludes |
文字列の配列(glob パターンか絶対パス) | 未設定(見つけた CLAUDE.md をすべて読む) | メモリの読み込みで特定の CLAUDE.md をスキップする(大きなモノレポで他チームのものを外すなど) |
env |
オブジェクト(変数名 → 文字列の値) | 未設定 | すべてのセッションと、そこから起動するサブプロセスの環境変数。詳細は下の節 |
fileCheckpointingEnabled |
Boolean | true |
各編集の前にファイルのスナップショットを取り、/rewind で戻せるようにする。/config の「Rewind code (checkpoints)」で切り替えるとユーザー設定に書かれる |
plansDirectory |
文字列(プロジェクトルートからの相対パス) | 未設定(~/.claude/plans) |
plan mode が書く計画ファイルの置き場所。プロジェクトルートの外に解決されるパスは無視して既定のまま |
skillListingBudgetFraction |
数値(0 より大きく 1 以下の割合) | 0.01(コンテキスト窓の 1%) |
毎ターン Claude に見せるスキル一覧が使えるコンテキスト窓の割合。超えると全スキルの名前は残し、説明を削る |
skillListingMaxDescChars |
数値(正の整数) | 1536 |
スキル一覧で各スキルの description と when_to_use を何文字まで見せるか。超えた分は切られる |
taskOutputMaxChars |
数値 | 効果なし | v2.1.277 で、対象の TaskOutput ツールとともに削除された。設定しても効かない(Claude は Read でバックグラウンドタスクの出力ファイルを読む) |
env の仕組み#
env に書いた値は、シェルで export した同じ変数を上書きします。使える変数は 環境変数一覧 を見てください。
シェルとの関係#
- 複数の設定ファイルが同じ変数を設定したら、優先順位の高いものが効く。プロジェクト/ローカル設定で無視される変数は下の「
envで無視される変数」 - Claude Desktop アプリやセルフホストのランナーがセッションを始める場合は、そちらが作る起動環境が優先される。起動環境がすでに設定している変数への
envの値は、どの設定ファイルのものも無視される(無視した変数名はデバッグログに出る) - シェルの export を打ち消すには、その変数を
""にする。プロバイダー選択では空は未設定として扱われ、サブプロセスは空の値を引き継ぐ - ここで設定した
NO_COLORとFORCE_COLORはサブプロセスにだけ届く。Claude Code 自身の画面の色を変えるなら、claudeを起動する前にシェルで設定する - 値は設定ファイルの中では平文で、Claude Code が起動するすべてのサブプロセスに届く。ローテーションする OTLP の Bearer トークンには
otelHeadersHelper、API の資格情報にはapiKeyHelperを使う
いつ適用されるか#
- ユーザー設定・
--settings・管理設定:起動時と、保存した変更でマージ後のenvが変わったとき実行中のセッションにも - プロジェクト/ローカル設定:ワークスペースを信頼したあと(
-pモードは信頼ダイアログを出さないので起動時)。保存した変更でマージ後のenvが変わったときにも - Claude Code が安全と分類する変数(モデル選択・タイムアウトと上限・機能のトグルなど):起動時にどの設定ファイルからも(プロジェクト/ローカル設定が設定できない変数を除く)
- v2.1.246 以降で
/cdでセッションを移したあと:新しいディレクトリのプロジェクト/ローカルのenvが、前のディレクトリのものの上に重なる
env で無視される変数#
プロジェクト/ローカル設定は、チェックアウトしたリポジトリに握らせたくない変数を設定できません。その変数はシェル・ユーザー設定・管理設定で設定します。無視された変数は捨てられ(テレメトリをオフにする値を除く)、claude --debug で見える警告が出ます。
- Claude Code が自分のファイルを置く・書く場所を選ぶ変数:
CLAUDE_CONFIG_DIR・CLAUDE_CODE_TMPDIR、OS のディレクトリ変数(HOME・TMPDIR・TMP・TEMP・XDG_*) - セッションの内容を出力する変数:
OTEL_LOG_RAW_API_BODIES、詳細ベータトレースのENABLE_BETA_TRACING_DETAILEDとBETA_TRACING_ENDPOINT - Windows で、Claude Code が起動するプロセスのプログラムとマシン全体の設定を決める変数:
SystemRoot・ComSpec・ProgramData・LOCALAPPDATA・PATHEXT・PSModulePath・ProgramFiles系 - テレメトリをオンにする・送信先を選ぶ・取り込む内容を選ぶ OpenTelemetry の変数(v2.1.282 以降):
CLAUDE_CODE_ENABLE_TELEMETRY、拡張テレメトリベータのCLAUDE_CODE_ENHANCED_TELEMETRY_BETAとENABLE_ENHANCED_TELEMETRY_BETA、エクスポーター選択のOTEL_LOGS_EXPORTER・OTEL_METRICS_EXPORTER・OTEL_TRACES_EXPORTER、内容のOTEL_LOG_USER_PROMPTS・OTEL_LOG_ASSISTANT_RESPONSES・OTEL_LOG_TOOL_CONTENT・OTEL_LOG_TOOL_DETAILS、名前が_ENDPOINT・_HEADERS・_PROTOCOL・_CERTIFICATE・_CLIENT_KEY・_INSECUREで終わるOTEL_EXPORTER_OTLP_*、OTEL_EXPORTER_PROMETHEUS_HOST・OTEL_EXPORTER_PROMETHEUS_PORT - 起動や同期の仕方を変える変数:
CLAUDE_CODE_PROCESS_WRAPPER・CLAUDE_CODE_SYNC_SKILLS・CLAUDE_CODE_SYNC_PLUGINS・CLAUDE_CODE_PLUGIN_CACHE_DIR・CLAUDE_CODE_PLUGIN_SEED_DIR - 次の値だけは、何かをオフにするのでプロジェクト/ローカル設定からでも有効:3 つのエクスポーター選択の
none、OTEL_LOG_USER_PROMPTS・OTEL_LOG_TOOL_CONTENT・OTEL_LOG_TOOL_DETAILSの0などのオフの値。ユーザー設定の同じ変数を上書きするが、起動環境・--settings・管理設定が設定したものは上書きしない - この群をプロジェクト/ローカル設定が設定すると、ローカルの対話セッションは起動時に通知を出す。
/statusかclaude doctorで、無視された変数とテレメトリをオフにした変数の名前(値は出ない)を確認できる。-pと Agent SDK では通知が出ないので、アップグレード後にコレクターへデータが届くか確認し、届かなければユーザー設定などに移す - v2.1.251 より前は、プロジェクト/ローカル設定が、ファイルの置き場所を選ぶ変数とセッション内容を出力する変数(
HOMEとXDG_CONFIG_HOMEを除く)も設定できた - ホスティング環境が持つ ID 変数(
CLAUDE_CODE_REMOTE・CLAUDE_CODE_ACCOUNT_UUIDなど)は、どのファイルからも無視される - Claude Code 自身が export する
CLAUDE_CODE_MESSAGING_SOCKET(v2.1.224 以降)とCLAUDE_CODE_MESSAGING_TOKEN(v2.1.228 以降)は、どのファイルからも無視される - 起動環境からだけ読む
CLAUDE_CODE_PROJECT_DIR_NAME(v2.1.234 以降)・CLAUDE_CODE_RESTRICTED・CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY(v2.1.283 以降)・CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT・CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT・CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPTは、どのファイルからも無視される
画面とターミナル#
画面の表示・入力・ステータスラインなどの設定です。関連:ステータスライン、ターミナル・表示・音声入力、キーボードショートカット。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
askUserQuestionTimeout |
"60s"・"5m"・"10m"・"never" |
"never" |
【ユーザーか管理設定】応答のない AskUserQuestion ダイアログが、無操作のまま一定時間たつと、すでに選んだ選択肢を送って自動で続行する。席を外して Claude に続けさせたいとき |
autoContinueAtUsageLimit |
Boolean | true |
【ユーザーか管理設定】claude.ai の利用上限でセッションが止まったあと、開いたセッションで待ち、リセット後にタスクを自動で続ける。v2.1.234 以降。ユーザー設定・--settings・管理設定からだけ読まれ、どれも設定していないときにプロジェクト/ローカル設定が設定すると、有効にするのでなくオフになる |
autoScrollEnabled |
Boolean | true |
フルスクリーン描画で、新しい出力へ会話を追従させる。オフならスクロールした位置に留まる(権限確認は引き続き見える位置にスクロールされる) |
axScreenReader |
Boolean | 未設定(オフ) | スクリーンリーダー向けの出力(装飾の枠やアニメーションなしのフラットなテキスト)。クラシックレンダラーを使うので tui 設定は効かない |
bashEditDiffEnabled |
Boolean | 未設定(auto mode と bypassPermissions で、Bash 経由のファイル編集を Claude に向けたとき記録する) |
【ユーザーか管理設定】Git リポジトリで Bash コマンドの実行中に変わったファイルを記録するか。記録すると、コマンドの後に端末で差分が見え、PostToolUse の Bash フックが変更ファイルの一覧を受け取る。true はユーザー設定・--settings の JSON・管理設定からだけ有効 |
companyAnnouncements |
文字列の配列 | 未設定 | 起動時にユーザーへ見せる組織のお知らせ。複数あれば毎セッションランダムに 1 つ、初回起動では最初の項目 |
defaultShell |
"bash"・"powershell" |
"bash"(Bash が使えない Windows では "powershell") |
入力欄で ! を付けて入力するシェルコマンドを実行するシェル |
dialogExpiry |
"60s"・"5m"・"10m"・"never"(期限なし) |
"5m" |
【ユーザーか管理設定】リモートクライアント(Remote Control や SDK のホスト)へ転送するダイアログと、保留中のセッション間メッセージの承認ダイアログの期限。v2.1.236 以降は、途中の利用クレジット同意ダイアログにも同じ期限が及ぶ |
editorMode |
"normal"・"vim" |
"normal" |
入力プロンプトのキーバインドのモード。"vim" は NORMAL・INSERT・VISUAL を持つ vim 風の編集 |
emojiCompletionEnabled |
Boolean | true |
: とショートコードを入力したときの絵文字候補と、:heart: のような完成したショートコードの絵文字への置換 |
fileSuggestion |
オブジェクト:type(常に "command")と command(実行するシェルコマンド) |
未設定(組み込みのファイル候補) | @ のファイルパス補完を自前のコマンドで出す(大きなモノレポで事前構築のインデックスを使うなど)。管理設定の制限のもとでは、管理設定の値だけが動く |
footerLinksRegexes |
オブジェクトの配列:type("regex")・pattern(正規表現)・url(テンプレート)・任意の label。url と label の {name} は pattern の名前付きキャプチャで埋まる |
未設定(バッジなし) | 【ユーザーか管理設定】ターンの出力(ツール結果・Claude の応答)が正規表現に一致したとき、入力欄の下のフッターにクリックできるバッジを足す(プロジェクトの CLI が出す ID をリンクにする) |
keybindingFlavor |
"classic"・"readline" |
未設定 | 【非推奨】v2.1.261 以降は効果なし(プロンプトの単語編集キーは常に readline の流儀)。設定ファイルが有効なままになるよう受け付けられる。v2.1.238〜v2.1.260 では "readline" で Ctrl+W が直前の空白まで削除した |
maxProseWidth |
数値(ターミナルの桁数。整数で最小 40。ほかの値は無視) |
未設定(ターミナルの端で折り返す) | Claude の応答の文章の幅の上限(段落・見出し・リスト・引用が対象。表とコードブロックは全幅のまま) |
prefersReducedMotion |
Boolean | false |
スピナー・シマー・フラッシュなどのアニメーションを減らす/止める。/config の「Reduce motion」 |
promptSuggestionEnabled |
Boolean | true |
入力欄に出る灰色のプロンプト提案の表示。/config の「Prompt suggestions」でも切り替える |
respectGitignore |
Boolean | true |
@ のファイルピッカーが .gitignore に一致するファイルを除くか。/config の「Respect .gitignore in file picker」。どの設定ファイルも設定していなければ ~/.claude.json の同名キーにフォールバックする |
respondToBashCommands |
Boolean | true |
入力欄で ! を付けて実行したシェルコマンドのあとに Claude が応答するか。false では出力を、応答なしでコンテキストに足す |
showClearContextOnPlanAccept |
Boolean | false |
plan mode で計画が完成したときの承認メニューに、最初の選択肢「Yes, clear context and …」(計画を承認し、会話のコンテキストを消して実行する)を足す |
showTurnDuration |
Boolean | true |
各応答のあとの「Cooked for 1m 6s · done 6:05 PM」のようなターン所要時間の表示(「done」の時刻の形式とタイムゾーンは timeFormat と timeZone)。どの設定ファイルも設定していなければ古いバージョンの ~/.claude.json の値が効く |
spellcheck |
オブジェクト:enabled(Boolean)・checker("aspell"・"hunspell"・"ispell"・"auto")・language(辞書名)・color(ターミナルの色) |
未設定(オフ)。checker は "auto"(PATH にある最初のもの)、language はチェッカーの辞書、color はテーマのエラーの色 |
【ユーザーか管理設定】入力欄のスペルミスに、インストールしたスペルチェッカーで下線を引く(入力欄のテキストだけ)。最上位の層のブロックが丸ごと適用される |
spinnerTipsEnabled |
Boolean | true |
Claude の作業中、スピナーの行に Claude Code の機能のヒントを順に出す |
spinnerTipsOverride |
オブジェクト:任意の tips・tipsFile・label・excludeDefault |
未設定(組み込みのヒントのみ) | 独自のヒントを足す、または組み込みのヒントを置き換える。spinnerTipsEnabled が false なら全部隠れる。下の表を参照 |
spinnerVerbs |
オブジェクト:verbs(文字列の配列)と mode("append"=組み込みに足す、"replace"=自分のだけ) |
未設定(組み込みの動詞) | ターン中にスピナーが回す動詞("Accomplishing"・"Architecting" など) |
statusLine |
オブジェクト:type("command")・command・任意の padding(文字数)・refreshInterval(秒。最小 1)・hideVimModeIndicator(Boolean) |
未設定(ステータスラインなし) | プロンプトの下に、モデル・コスト・git ブランチなどを出す自前のコマンド。allowManagedHooksOnly がオン、または管理設定の外で disableAllHooks が設定されていると、管理設定の値だけが動く |
subagentStatusLine |
オブジェクト:type("command")と command |
未設定(既定の行) | サブエージェントのタスク表示(1 行 name · description · token count)の行を、自前のコマンドで書き換える。statusLine と同じ制限 |
syntaxHighlightingDisabled |
Boolean | false |
true で、diff・コードブロック・ファイルプレビューのシンタックスハイライトをオフにする |
terminalProgressBarEnabled |
Boolean | true |
対応する端末で、Claude の作業中にタブやタスクバーに進行状況を出す。古いバージョンの ~/.claude.json の値は、設定ファイルが無いとき効く |
terminalTitleFromRename |
Boolean | true |
/rename か --name で付けたセッション名をタブのタイトルに出す。false では、会話から生成したタイトルのまま |
theme |
"auto"・"dark"・"light"・"dark-daltonized"・"light-daltonized"・"dark-ansi"・"light-ansi"・"custom:<slug>"・"custom:<plugin-name>:<slug>" |
"dark" |
画面の配色テーマ。/config の「Theme」。custom: は ~/.claude/themes/ かプラグインのカスタムテーマ。古いバージョンの ~/.claude.json の値は、設定ファイルが無いとき効く |
timeFormat |
"auto"・"12-hour"・"24-hour"・"24-hour-utc"、または "%H:%M" のような strftime パターン |
"auto" |
画面に出る時刻(ターン所要時間の「done 6:05 PM」・トランスクリプトのタイムスタンプ)の書き方。"24-hour-utc" は UTC で分の後に Z(例:18:05Z) |
timeZone |
IANA タイムゾーン名("UTC"・"Europe/Dublin" など) |
未設定(システムのタイムゾーン) | 画面の時刻のタイムゾーン。認識できない名前ならシステムのタイムゾーンを使う |
tui |
"default"・"fullscreen" |
未設定(Claude Code が選ぶ) | ターミナル UI のレンダラー。"fullscreen" はちらつきのない alt-screen(仮想化スクロールバック)、"default" は従来のメイン画面。/tui で切り替えるとこのキーが書かれる |
verbose |
Boolean | false |
true でツール出力を全文で見せる(既定は短い要約で、Ctrl+O で展開)。古いバージョンの ~/.claude.json の値は、設定ファイルが無いとき効く |
viewMode |
"default"・"verbose"・"focus" |
未設定(verbose 設定と最後の /focus の選択に従う) |
開始時のトランスクリプト表示。設定すると /focus の選択と verbose より優先。"focus" は最後のプロンプト・編集の差分統計付きのツール呼び出し 1 行・最終応答だけ |
vimInsertModeRemaps |
オブジェクト(2 文字のシーケンス → "<Esc>") |
未設定 | 【ユーザーか管理設定】vim エディタモードの INSERT で、2 キーのシーケンスを Escape に割り当てる。各キーは印字可能な 2 文字で、対象は "<Esc>" のみ(ほかは無視)。v2.1.208 以降 |
voice |
オブジェクト:enabled(Boolean)・autoSubmit(Boolean。hold モードのみ)・mode("hold"=押している間話す、"tap"=1 回押して開始、もう 1 回で送信) |
未設定(オフ)。enabled が true で mode 未設定なら "hold" |
音声入力をオンにして、入力キーの動きを決める。/voice が書く |
voiceEnabled |
Boolean | 未設定 | 【非推奨】v2.1.92 で voice オブジェクトに置き換わった。引き続き読まれるが、新しい設定は voice.enabled を使う。両方あれば voice.enabled が効く |
wheelScrollAccelerationEnabled |
Boolean | true |
フルスクリーン描画で、速いスクロールのときマウスホイールのスクロール速度を加速する。false ならノッチごとに一定 |
spinnerTipsOverride の tips の項目#
tips の各項目は文字列か、次のフィールドを持つオブジェクトです。
| フィールド | 必須 | 内容 |
|---|---|---|
id |
はい | 64 文字までの英数字・.・_・-。このヒントの表示履歴のキーで、リストを並べ替えてもクールダウンが保たれる。同じ id が複数あれば最初のものを使う |
text |
はい | ヒント本文。500 文字までの 1 行。ANSI エスケープと制御文字は除かれ、空白は 1 つにまとめられる |
cooldownSessions |
いいえ | 同じヒントをまた出すまで待つセッション数(0〜1000。既定 0) |
priority |
いいえ | 同じだけ表示されていないヒントのあいだの順序(大きいほど先。-10〜10。既定 0) |
- 文字列だけのヒントは、位置ベースの id と上の既定値で読まれ、並べ替えると表示履歴がリセットされる。履歴を保つには
idを付ける tipsとtipsFileを合わせて最大 200 件まで読まれ、無効な項目はデバッグ警告つきで捨てられる(設定ファイル自体は拒否されない)tipsFile:同じ項目の配列(またはtips配列を持つオブジェクト)を入れたローカル JSON ファイルの絶対パスか~/のパス(256 KB まで)。プロセスごとに一度だけ読むので、編集は次の起動で反映される。サーバー管理設定では設定できないtipsのオブジェクト・tipsFile・labelと、プロジェクト/ローカル設定が文字列のヒントだけを出せるという規則は v2.1.247 以降。オブジェクトのヒント・tipsFile・label・excludeDefaultは、ユーザー設定・--settings・管理設定からだけ有効
fileSuggestion のコマンドの入出力#
- コマンドはフックと同じ環境変数(
CLAUDE_PROJECT_DIRを含む)で実行され、5 秒で待つのをやめる - 標準入力に、いま入力した内容を持つ
queryフィールドの JSON が届く:{"query": "src/comp"} - 標準出力に改行区切りのファイルパスを出す。表示は最大 15 件
#!/bin/bash
# stdin の JSON から query を取り、リポジトリのファイルインデックスに渡す(your-repo-file-index は自前のコマンド)
query=$(cat | jq -r '.query')
your-repo-file-index --query "$query" | head -20
footerLinksRegexes のバッジの制約#
| 制約 | 動き |
|---|---|
| URL の origin | キャプチャした値は URL エンコードされ、組み立てた URL はテンプレートのリテラルな origin と同じでなければならない(キャプチャでパスやクエリは埋められるが、リンク先は変えられない) |
| URL の長さ | 2048 文字を超える URL は捨てられる |
| URL のスキーム | https・http・認識されるエディタ/ワークスペースのディープリンクのスキーム(vscode・vscode-insiders・cursor・windsurf・zed・jetbrains・idea・slack・linear・notion・figma)のみ |
| ラベル | 既定は一致したテキストで、表示幅 28 桁に切り詰められる |
| バッジの数 | 最大 5 個。新しい一致で最も古いものが押し出され、/clear で消える |
注意
ターンの完了時に、各項目の pattern はメインスレッドでターンの出力に照合されます。(a+)+$ のような入れ子の量指定子は、特定の入力で指数的に時間がかかりセッションが固まりうるので、パターンは単純に保ってください。フッターのバッジはカスタムのステータスラインと並んで出ます(どちらも他方を置き換えない)。
Git とコミットの帰属表示#
コミットとプルリクエストに Claude Code が付ける帰属表示や、git まわりのコンテキストの設定です。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
attribution |
オブジェクト:文字列の commit・pr と Boolean の sessionUrl、または全帰属を隠す false |
未設定(各サブキーの標準の帰属表示) | コミットには Co-Authored-By などの git トレーラー、PR の説明にはプレーンテキストを付ける。false は v2.1.281 以降(それ以前は拒否されてスキップされる) |
attribution.commit |
文字列 | 未設定(Co-Authored-By: <name> <noreply@anthropic.com>。名前はコミット時に使っているモデル) |
コミットに足す帰属テキスト(トレーラー含む)。空文字で非表示 |
attribution.pr |
文字列 | 未設定(🤖 Generated with Claude Code) |
PR の説明に足す帰属テキスト。空文字で非表示 |
attribution.sessionUrl |
Boolean | true |
クラウドや Remote Control のセッションからコミット・PR を作るとき、claude.ai のセッションリンク(コミットでは Claude-Session トレーラー、PR ではリンク)を付けるか |
includeCoAuthoredBy |
Boolean | true |
【非推奨】v2.0.62 で attribution に置き換わった。attribution より前の設定ファイルの includeCoAuthoredBy: false は引き続き効くが、attribution.commit か attribution.pr を設定すると無視される |
includeGitInstructions |
Boolean | true |
Claude に渡す、コミットと PR の書き方の組み込みの指示(Bash ツールの説明内)と、リポジトリの git status のスナップショットを含めるか。false で両方外す |
prUrlTemplate |
文字列({host}・{owner}・{repo}・{number}・{url} を使える URL テンプレート) |
未設定 | フッターのバッジとツール結果の要約に出す PR のリンクを、github.com でなく社内のコードレビューツールへ向ける |
フックと自動化#
フックと動的ワークフローの設定です。フックの書き方は フックのリファレンス と フックの使い方、ワークフローは ワークフロー を見てください。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
allowedHttpHookUrls |
URL パターンの配列(* はワイルドカード) |
未設定(どの URL も可) | HTTP フックが宛先にできる URL を制限する。設定するとパターンに一致する URL の HTTP フックだけが動き、残りは実行されずブロックされる。空配列はすべての HTTP フックをブロック。配列は設定ファイルをまたいでマージされる |
allowManagedHooksOnly |
Boolean | 未設定(全スコープとプラグインのフックが動く) | 【管理設定のみ】フックの実行を、組織が配るものに限る。詳細は下の節 |
disableAllHooks |
Boolean | 未設定(フックが動く) | フック・カスタムのステータスライン・カスタムの fileSuggestion コマンドをオフにする(設定から消さずに一時的に止める)。管理設定のフックを止められるのは管理設定だけ。管理設定に置くと管理フックを含む全フックを止め(Agent SDK が登録するフックは動き続ける。v2.1.242 以降)、ほかのファイルに置くとユーザー・プロジェクト・ローカル・プラグインのフックを止める(管理フック・Agent SDK のフック・管理 enabledPlugins で強制有効のプラグインのフックは動く)。止めている間は /goal を実行できない。mod(プラグインのコードがフックを登録する仕組み)も止める:管理設定に置くと全プラグインの mod が止まり(組織のものも)、ほかのファイルに置くと自分で入れた mod が止まる(組織の mod は動く)。Claude Code 組み込みの mod はどちらでも動く |
disableWorkflows |
Boolean | false |
設定の届く全員(管理設定なら組織)の動的ワークフローと同梱のワークフローコマンドをオフにする。自分だけの切り替えは enableWorkflows。CLAUDE_CODE_DISABLE_WORKFLOWS でもオフにでき、どちらかがオフにしていると他方では戻せない |
enableWorkflows |
Boolean | 未設定(Pro プラン以外ではオン、Pro ではオフ) | プランの既定が望みと違うとき、自分の動的ワークフローをオン/オフにする。/config の「Dynamic workflows」がユーザー設定に書き、プランの既定に戻すと消す。disableWorkflows・組織のワークフローポリシー・CLAUDE_CODE_DISABLE_WORKFLOWS がどこかでオフにしていると true でも戻せない |
hooks |
オブジェクト(フックイベントをキーに、{ "matcher", "hooks" } グループの配列。hooks の項目の type は "command"・"prompt"・"agent"・"http"・"mcp_tool") |
未設定(フックなし) | ツール呼び出しの前やセッション開始などのライフサイクルで、コマンド・プロンプト・エージェント・HTTP リクエスト・MCP ツールをフックとして実行する。ファイル間では置き換えずマージされ、管理設定のフックはほかのファイルから消せない |
httpHookAllowedEnvVars |
環境変数名の配列 | 未設定(各フック自身の allowedEnvVars が効く) |
HTTP フックがヘッダーに入れてよい環境変数の外側の上限。各フックの allowedEnvVars に加えてここにも載っている変数だけがヘッダーに入る。配列はファイルをまたいでマージされる |
workflowKeywordTriggerEnabled |
Boolean | true |
プロンプトに ultracode と打つと動的ワークフローが始まるか。false ならその語を打っても始まらない。/config の「Ultracode keyword trigger」 |
workflowSizeGuideline |
"unrestricted"(目安なし)・"small"(5 未満)・"medium"(10 未満)・"large"(50 未満) |
"medium"(v2.1.271 以降で Pro プランにサインインしていれば "small") |
Claude が書くワークフローのエージェント数の目安。上限の強制でなく助言として Claude に渡る。設定ファイルの値が /config の「Dynamic workflow size」(~/.claude.json に保存)より優先され、設定されているあいだその行は隠れる |
allowManagedHooksOnly の下で動くもの#
true にすると、読み込まれるフックとフック類似のコマンドが次のように変わります。/goal はフックに依存するので、このキーがあると実行できません。
- 動く:管理設定のフックと、Agent SDK がプロセス内で登録するフック
- 動く:管理設定の
enabledPluginsで強制有効にしたプラグインのフック(plugin@marketplaceの完全な ID で照合するので、別のマーケットプレイスの同名プラグインはブロックされたまま。審査済みのフックを組織のマーケットプレイスで配れる)。そのプラグインの mod は、組織のものとして数えられる場合にだけ読み込まれる - ブロックされる:ユーザー・プロジェクト・ローカルのフック、ほかのインストール済みプラグインのフックと mod、エージェントのフロントマターのフック(Claude Code 組み込みの mod は動き続ける。ユーザーの mod だけを止めるなら
allowManagedModsOnly) - 無効になる:
commandソースのプラグイン(管理enabledPluginsで強制有効のものを含む。disableCommandPluginSourcesを明示的にfalseにした場合を除く) - ブロックされる:マーケットプレイスの
headersHelperコマンド(disableCommandPluginSourcesを明示的にfalseにした場合と、管理設定自身が宣言したマーケットプレイスを除く。v2.1.238 以降) - 管理設定だけに絞られる:
statusLine・fileSuggestion・subagentStatusLine
プラグインとスキル#
スキル・プラグイン・マーケットプレイスの設定です。使い方は スキル・プラグインを使う、配布側の設定は プラグインのリファレンス と 組織への導入と管理設定 を見てください。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
allowedChannelPlugins |
オブジェクトの配列(文字列の marketplace と plugin)。"telegram@claude-plugins-official" のような "plugin@marketplace" 文字列も可 |
未設定(Anthropic の既定の許可リスト) | 【管理設定のみ】組織のセッションにメッセージを送り込めるチャネルプラグイン。設定すると既定の許可リストの代わりにこのリストを使う |
blockedMarketplaces |
マーケットプレイスのソースオブジェクトの配列(strictKnownMarketplaces と同じ形) |
未設定(ブロックなし) | 【管理設定のみ】組織でブロックするマーケットプレイスのソース。追加時とプラグインのインストール・更新・リフレッシュ・自動更新時に確認される |
channelsEnabled |
Boolean | 未設定。Team・Enterprise プランと管理設定のある Console アカウントではチャネルはブロック、Pro・Max プランと管理設定のない Console アカウントでは許可 | 【管理設定のみ】組織でチャネルを許可する。claude.ai の Team・Enterprise プランでは、true にするまでブロックされる |
disableBundledSkills |
Boolean | 未設定(同梱スキルを読み込む) | true で、同梱のスキルとワークフローを完全に外す(/init などの組み込みコマンドは入力できるがモデルからは隠れる) |
disableCommandPluginSources |
Boolean | 未設定(allowManagedHooksOnly に従う) |
【管理設定のみ】マーケットプレイスが宣言するコマンドをユーザーのマシンで実行してインストールする command ソースのプラグインをブロックする。true ではコマンドを実行せず、command ソースのプラグインのインストールも更新もしない。false で明示的に許可する |
disableSkillShellExecution |
Boolean | 未設定(インラインのシェルが動く) | ユーザー・プロジェクト・プラグイン・追加ディレクトリ由来のスキルとカスタムコマンドの !`...` と ```! ブロックのインラインシェル実行をオフにする。各コマンドは shell command execution disabled by policy に置き換わる。管理設定の true は他で false にしても覆せない |
skillOverrides |
オブジェクト(スキル名 → "on"・"name-only"・"user-invocable-only"・"off") |
未設定(全スキル "on") |
SKILL.md を編集せずにスキルを隠す/畳む。"on" は Claude に見えて /name も使える、"name-only" は説明なしで名前だけ見える、"user-invocable-only" は Claude には見えないが /name は打てる、"off" は Claude にも見えず /name も補完から隠れる。/skills メニューは .claude/settings.local.json に書く |
syncClaudeAiSkills |
Boolean | 未設定(claude.ai でサインインしたセッションが同期する) | 【ユーザー・ローカルか管理設定、--settings のファイル】claude.ai アカウントで有効なスキルのダウンロード(~/.claude/skills/synced/)を止める。false でダウンロードも既存の読み込みも止める。リポジトリからはオフにできない |
syncClaudeAiPlugins |
Boolean | 未設定(同期する) | 【ユーザー・ローカルか管理設定、--settings のファイル】claude.ai アカウントで有効なプラグインのダウンロード(~/.claude/plugins/synced/)を止める。false でダウンロードも既存の読み込みも止める |
pluginSuggestionMarketplaces |
マーケットプレイス名の配列 | 未設定(マーケットプレイスが宣言する提案は出ない) | 【管理設定のみ】スピナーのヒントと /plugin の「Discover」タブの上部に、状況に応じたインストール提案を出してよいマーケットプレイス。組み込みの frontend-design のヒントは影響を受けない |
pluginTrustMessage |
文字列 | 未設定(標準の警告のみ) | 【管理設定のみ】インストール前に出るプラグインの信頼警告へ、組織独自の文章を足す |
prependPlugins |
plugin-name@marketplace-name の文字列の配列 |
未設定 | 【ユーザーか管理設定】組織が管理するプラグインの mod を、ユーザーが入れた全 mod より前に、並べた順で動かす。管理設定では、組織のものとして数えられないプラグインの ID は飛ばされる。管理設定に置くときは、組み込みのガードを残すなら sec-default@builtin も並べる。ユーザー設定から読むのは、管理設定のないマシンで Team・Enterprise プランにサインインしていないユーザーのときだけ。プロジェクト・ローカル設定と --settings のファイルでは無視される |
appendPlugins |
plugin-name@marketplace-name の文字列の配列 |
未設定 | 【ユーザーか管理設定】組織が管理するプラグインの mod を、ユーザーが入れた全 mod より後に、並べた順で動かす。prependPlugins にも載っている ID は前に置かれる。読み込む場所の条件は prependPlugins と同じ |
strictKnownMarketplaces |
マーケットプレイスのソースオブジェクトの配列 | 未設定(どのマーケットプレイスも追加可)。空配列は公式の Anthropic マーケットプレイスを含む全ソースをブロックする完全なロックダウン | 【管理設定のみ】組織の人が追加し、プラグインをインストールできるマーケットプレイスのソースを許可リストで制限する。追加時と、プラグインのインストール・更新・リフレッシュ・自動更新時(ネットワークやファイルシステムに触れる前)に確認される |
strictPluginOnlyCustomization |
true(4 種類すべてをロック)か、"skills"・"agents"・"hooks"・"mcp" から選んだ配列 |
未設定(ロックなし) | 【管理設定のみ】スキル・エージェント・フック・MCP サーバーを、ユーザーとプロジェクトの供給元から読み込まず、プラグインか管理設定からだけにする。strictKnownMarketplaces と組み合わせて供給元全体を管理できる |
strictPluginOnlyCustomization.skills |
配列内の文字列 "skills" |
ロックなし | 【管理設定のみ】~/.claude/skills/・.claude/skills/・~/.claude/commands/・.claude/commands/・--add-dir 下のスキルとコマンド・同期されたスキルの読み込みを止める |
strictPluginOnlyCustomization.agents |
配列内の文字列 "agents" |
ロックなし | 【管理設定のみ】~/.claude/agents/・.claude/agents/・--add-dir のエージェントの読み込みを止める(プラグインのエージェント・組み込みエージェント・管理ポリシーディレクトリのエージェントは読む) |
strictPluginOnlyCustomization.hooks |
配列内の文字列 "hooks" |
ロックなし | 【管理設定のみ】ユーザー・プロジェクト・ローカルの settings.json のフックを止める(プラグインのフックと管理設定のフックは動く) |
strictPluginOnlyCustomization.mcp |
配列内の文字列 "mcp" |
ロックなし | 【管理設定のみ】~/.claude.json と .mcp.json の MCP サーバーの読み込みを止める(プラグインの MCP サーバー・managed-mcp.json・managedMcpServers は読む) |
enabledPlugins |
オブジェクト(plugin-name@marketplace-name → Boolean) |
未設定(各プラグインは defaultEnabled に従う) |
プラグインを個別にオン/オフにする。どのスコープにも項目が無いプラグインは defaultEnabled に従う。/plugin や claude plugin enable で切り替えるとここに書かれる |
extraKnownMarketplaces |
オブジェクト(マーケットプレイス名 → source オブジェクトと任意の Boolean autoUpdate) |
未設定 | 追加のマーケットプレイスを名前で登録し、リポジトリを開く人や管理設定の届く全員が自分で追加しなくても使えるようにする。リポジトリの .claude/settings.json・.claude/settings.local.json の項目は、そのフォルダのワークスペースの信頼ダイアログを承認したあとにだけ有効 |
pluginConfigs |
オブジェクト(プラグイン ID → options(オプション名 → 文字列・数値・Boolean・文字列の配列)と任意の mcpServers) |
未設定 | 【ユーザーか管理設定】プラグインの userConfig ダイアログへの機微でない回答を、プラグイン ID をキーに保存する。ダイアログを埋めると Claude Code がユーザー設定に書くので、手で編集しなくてよい。プロジェクト/ローカルの項目は無視される(v2.1.207 より前は読まれた) |
補足
pluginConfigs の機微なオプションは macOS のキーチェーンに保存され(拒否されたら ~/.claude/.credentials.json)、組み込みプラグインのオプションは @builtin 付きの ID で同じキーに入ります(例:AGENTS.md を読むかの「Project instructions」は pluginConfigs["agents-md@builtin"].options.instructionFiles)。
マーケットプレイスの許可リストのソース種別(strictKnownMarketplaces・blockedMarketplaces)#
ほとんどの種類は完全一致で照合され、hostPattern と pathPattern は正規表現、github は owner のワイルドカードを使えます。
| ソース | 項目 | 必須・任意のフィールド |
|---|---|---|
github |
{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" } |
repo 必須。ref はブランチかタグ、path はサブディレクトリ |
git |
{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" } |
url 必須。ref・path は github と同じ |
url |
{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { ... } } |
url 必須。headers は認証用の HTTP ヘッダー |
file |
{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" } |
path 必須(marketplace.json の絶対パス) |
directory |
{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" } |
path 必須(.claude-plugin/marketplace.json を含むディレクトリの絶対パス。開発用のほか、組織が各マシンへ配るマーケットプレイスにも使う) |
hostPattern |
{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" } |
hostPattern 必須(マーケットプレイスのホストの任意の位置に一致する正規表現。全体に一致させるなら ^ と $ で固定) |
pathPattern |
{ "source": "pathPattern", "pathPattern": "^/opt/approved/" } |
pathPattern 必須(file・directory ソースの path に一致する正規表現。接頭辞を固定するなら ^ で始める) |
skills-dir |
{ "source": "skills-dir" } |
フィールドなし。~/.claude/skills/ のプラグインスキャンを再び有効にする |
url:ダウンロードするのはmarketplace.jsonだけで、相対パスのプラグインファイルはそのサーバーから取らない。プラグインは相対パス以外のソース(アーカイブ URL など)にする。相対パスのプラグインには Git ベースのマーケットプレイスを使うhostPattern:社内の GitHub Enterprise や GitLab のサーバーの全マーケットプレイスを、リポジトリを並べずに許可する。githubソースはgithub.com、urlソースは URL のホスト名、gitソースは URL の形に応じて(スキーム付きは URL のホスト名、git@host:path形式は@と:の間)照合する。fileとdirectoryはホストを持たず、hostPatternには一致しないpathPattern:ネットワークソースのhostPatternと並べて、ファイルシステム上のマーケットプレイスを許可する。".*"はすべてのローカルパス、"^/opt/approved/"はそのディレクトリに限る- 許可リストを設定すると(空でも)
~/.claude/skills/の@skills-dirプラグインが読み込まれなくなる。読み込み続けるなら{ "source": "skills-dir" }を足す(この項目はこのキーとblockedMarketplacesの外では意味を持たない) - owner のワイルドカード:
githubのrepoが"<owner>/*"なら、その GitHub owner のすべてのリポジトリに一致する(v2.1.223 以降。strictKnownMarketplacesとblockedMarketplacesでのみ使える)。*・*/plugins・acme-corp/tools-*は無効として無視される - 完全一致:
github・gitではrepo/url・ref・pathが完全に一致するか、両方未指定でなければならない。refやpathが違う項目は別のソース扱い - 公式のマーケットプレイスだけを許可するには、そのリポジトリを列挙する
| 規則 | strictKnownMarketplaces |
blockedMarketplaces |
|---|---|---|
| 一致するソースの書き方 | owner/repo 形式のみ(同じリポジトリを clone する git URL は一致しない) |
どの書き方でも(同じ github.com のリポジトリに解決される git URL も) |
| owner の大文字小文字 | 区別する | 区別しない |
ref |
完全一致の規則に従う(ref を持つ項目はその ref のソースだけ、持たない項目は ref 指定のないソースだけ) |
ref の無い項目は、一致するリポジトリのすべての ref をブロック |
path |
緩い(path を持つ項目はその値が必要で、持たない項目はリポジトリ内のどの path にも一致) |
path の無い項目は、一致するリポジトリのすべての path をブロック |
strictKnownMarketplaces と extraKnownMarketplaces の違い#
| 観点 | strictKnownMarketplaces |
extraKnownMarketplaces |
|---|---|---|
| 目的 | 組織のポリシーを強制する | チームの手間を減らす |
| 書ける設定ファイル | 管理設定だけ | どの設定ファイルでも |
| 振る舞い | 許可リストに無い追加を止める | 足りないマーケットプレイスを登録する |
| 効く時点 | ネットワークとファイルの操作の前 | ユーザー設定・管理設定ならすぐ。リポジトリのファイルは、ワークスペースの信頼のダイアログのあと |
| 上書きできるか | できない(最優先) | できる(優先度の高い設定で) |
| ソースの形 | ソースのオブジェクトをそのまま書く | 名前付きのマーケットプレイスの中に source オブジェクトを入れる |
extraKnownMarketplaces のソース種別#
source オブジェクトは次のいずれかの形です。
source |
必須・任意のフィールド | 内容 |
|---|---|---|
github |
repo |
GitHub のリポジトリ |
git |
url |
任意の git URL(自前の GitLab・Bitbucket を含む。git clone と同じ認証で clone する) |
url |
url、任意の headers・headersHelper |
marketplace.json への直接の URL。headersHelper は、短命で headers に書けない値のヘッダーを出力するコマンド名(v2.1.238 以降) |
file |
path |
marketplace.json のローカルパス |
directory |
path |
ローカルのファイルシステムのパス(開発用のほか、組織が各マシンへ配るマーケットプレイスにも使う) |
settings |
name・plugins |
ホストされたリポジトリなしで設定ファイルに直接宣言するインラインのマーケットプレイス |
github・gitソースの clone では Git LFS の内容はダウンロードされず、LFS の対象ファイルはポインターファイルとしてチェックアウトされる。source内のskipLfsは受け付けるが効果なし(v2.1.274 より前は"skipLfs": trueを指定しないと LFS をダウンロードした)headersHelperは、marketplace.jsonを取得する前(後の更新も含む)と、そのマーケットプレイス URL の origin(スキーム・ホスト・ポートが同じ)からのプラグインアーカイブのダウンロード前に実行される。--add-dirで足したディレクトリの設定のheadersHelperは無視され、固定のheadersだけが送られるsettingsソースのプラグインは GitHub や npm など外部のソースを参照しなければならず、nameはマーケットプレイスのキーと一致させる。各プラグインはenabledPluginsで別にオンにする。source: 'settings'の項目で、自身のsourceがarchiveのものは、アーカイブのダウンロード用にheaders(短命ならheadersHelper。両方可。v2.1.238 以降)を設定できる。コマンドは、ユーザーがそのプラグインを単独でインストール・更新するときだけ実行される- プロジェクトの
.claude/settings.json・.claude/settings.local.jsonの項目では、ユーザーがそのフォルダも信頼したあとにだけコマンドが実行され、リクエストのルーティングとクライアント識別のヘッダー名は捨てられる(カタログの項目と--add-dirの設定の項目にも同じフィルターが適用され、ユーザー設定・--settingsのファイル・管理設定の項目には適用されない)
{
"extraKnownMarketplaces": {
"team-tools": {
"source": {
"source": "settings",
"name": "team-tools",
"plugins": [
{ "name": "code-formatter", "source": { "source": "github", "repo": "acme-corp/code-formatter" } }
]
}
}
}
}
キーの別名#
v2.1.232 以降、extraKnownMarketplaces は additionalMarketplaces、strictKnownMarketplaces は allowedMarketplaces とも書けます。
- 古いバージョンは別名を無視する。新旧が混在する環境の管理設定ファイルなどでは、正式なキー名で書く
- 正式なキーを受け付けるファイルでは、別名は正式なキーと同じように読まれる
- 更新時に
additionalMarketplacesがextraKnownMarketplacesに書き換えられることがある - 1 つのファイルに両方あれば、正式なキーの値が使われ別名は無視される
MCP#
MCP サーバーの許可・拒否・承認の設定です。サーバーの追加と使い方は MCP サーバーをつなぐ を見てください。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
allowAllClaudeAiMcps |
Boolean | false(managed-mcp.json が claude.ai コネクタを抑止する) |
【管理設定のみ】配布した managed-mcp.json と並べて、Claude Code が自分で取得する claude.ai コネクタも読み込む。このキーが無いと managed-mcp.json が MCP サーバーを独占して、コネクタを抑止する |
allowClaudeInChromeWithManagedMcp |
Boolean | false(managed-mcp.json があると端末のセッションで Claude in Chrome をブロック) |
【管理設定のみ。端末自身の管理設定(MDM の plist・HKLM レジストリ・システムの managed-settings.json)のみで、サーバー管理設定では無視】組み込みの Claude in Chrome サーバーを managed-mcp.json と並べて動かす。v2.1.282 以降 |
allowedMcpServers |
オブジェクトの配列(各項目はキーを 1 つだけ持つ:serverName=英数字・ハイフン・アンダースコアの文字列、serverCommand=コマンドと引数の配列(完全一致)、など) |
未設定(全サーバー可)。空配列はユーザーが追加するすべてのサーバーをブロック | MCP サーバーの許可リスト。一致しないサーバーは、プラグインのサーバー・--mcp-config で渡したもの・claude.ai のものも含め、定義された場所によらずブロックされる。全ファイルの項目が 1 つの許可リストにマージされる(allowManagedMcpServersOnly を除く)。強制するなら管理設定に置く |
allowManagedMcpServersOnly |
Boolean | false(全スコープの許可リストがマージされる) |
【管理設定のみ】許可リストを管理設定のものだけにする。allowedMcpServers は管理設定からだけ読み、ほかのファイルの許可リストは無視する(deniedMcpServers は引き続き全ファイルからマージ) |
deniedMcpServers |
オブジェクトの配列(各項目はキーを 1 つだけ持つ:serverName=claude.ai コネクタの表示名("claude.ai Slack" など)も可、serverCommand など) |
未設定(ブロックなし。空配列もブロックなし) | MCP サーバーの拒否リスト。一致するサーバーは、プラグイン・--mcp-config・managed-mcp.json・managedMcpServers などどこで定義されても読み込まない。全ファイルの項目がマージされ、allowManagedMcpServersOnly でも変わらない |
disableClaudeAiConnectors |
Boolean | false(コネクタを取得する) |
Claude Code が自分で取得する claude.ai の MCP コネクタを、取得も接続もしない。どのファイルの true も有効(リポジトリのプロジェクト設定で、そのリポジトリだけコネクタを外せる)。ENABLE_CLAUDEAI_MCP_SERVERS でもオフにできる |
disabledMcpjsonServers |
文字列の配列(.mcp.json に載っているサーバー名) |
未設定 | プロジェクトの .mcp.json のサーバーを拒否し、接続も承認の確認もしない。どのファイル(チェックインされたプロジェクトの .claude/settings.json を含む)の拒否も有効 |
enableAllProjectMcpServers |
Boolean | 未設定(サーバーごとに承認を求める) | プロジェクトの .mcp.json のすべての MCP サーバーを、確認なしで承認する。承認ダイアログで「全部承認」を選ぶと .claude/settings.local.json に書かれる。信頼ダイアログを承認していないフォルダでは、ユーザー設定・管理設定・--settings からは有効で、共有のプロジェクトファイルでは無視される |
enabledMcpjsonServers |
文字列の配列(.mcp.json に載っているサーバー名) |
未設定 | プロジェクトの .mcp.json の特定のサーバーを、確認なしで承認する。承認ダイアログでサーバーを承認すると .claude/settings.local.json に書かれる。信頼ダイアログを承認していないフォルダの扱いは enableAllProjectMcpServers と同じ |
managedMcpServers |
オブジェクト(サーバー名 → .mcp.json の http・sse サーバーの形:必須の https:// の url と、任意の headers・oauth など) |
未設定(管理設定はサーバーを提供しない) | 【管理設定のみ】管理設定からすべてのユーザーにリモート MCP サーバーを提供する。ユーザーが自分で足したサーバーは残り、提供されたものは編集・削除できない。ユーザー・プロジェクト・ローカル設定にあると警告つきで捨てられる。v2.1.259 以降 |
エージェント・セッション・worktree#
メインスレッドのエージェント、セッション間メッセージ、git worktree の設定です。関連:サブエージェント、エージェントビュー、worktree で並行作業、エージェントチーム、セッション間のメッセージ。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
agent |
文字列(組み込みかカスタムのエージェント名) | 未設定(Claude Code の既定のエージェント) | メインスレッドを名前付きのサブエージェントとして動かし、そのシステムプロンプト・ツール制限・モデルをセッションに適用する。claude agents から起動するセッションの既定のエージェントも決める |
crossSessionInbound |
"accept"(Claude に届ける)・"hold"(通知だけ出し、届けない)・"refuse"(捨てる) |
未設定(2 つのセッションの権限モードの分類からメッセージごとに決める) | 他の Claude Code セッションから届くメッセージの扱い。v2.1.224 以降。プロジェクト/ローカルの値は、管理設定・--settings・ユーザー設定の値より厳しいときだけ適用される |
disableAgentView |
Boolean | 未設定(エージェントビューが使える) | バックグラウンドエージェントとエージェントビュー(claude agents・--bg・/background・オンデマンドの supervisor)をオフにする。管理設定に置くと組織に強制できる |
isolatePeerMachines |
Boolean | 未設定(マシンをまたぐメッセージは確認なし) | このマシンの外にある自分のセッションへ Claude の SendMessage が届く前に、明示の承認を求める。bypassPermissions モードでも確認が出る。どのスコープの true も有効(チェックインされたプロジェクトファイルはオンにできるがオフにはできない) |
processWrapper |
文字列(argv 接頭辞としてのランチャーコマンド。絶対パス+任意の引数など) | 未設定(ラップなし) | 【ユーザーか管理設定】macOS・Linux で、Claude Code が起動するバックグラウンドプロセスの前に社内ランチャーコマンドを置く。ランチャーは自身のコマンドラインの後ろに Claude Code のコマンドが付いた形で実行されるので、Claude Code へ exec しなければならない。CLAUDE_CODE_PROCESS_WRAPPER が優先。v2.1.210 以降 |
teammateMode |
"in-process"・"auto"・"tmux"・"iterm2" |
"in-process" |
エージェントチームのメンバーをどこに出すか。"in-process" はメインのターミナルペイン内、"auto" は tmux 内か、it2 が PATH にある(または tmux がある)iTerm2 内なら分割ペイン、"tmux" は tmux か iTerm2 の分割ペイン、"iterm2" は it2 CLI での iTerm2 ネイティブの分割ペイン。古いバージョンが ~/.claude.json に残した値も読まれる |
worktree |
オブジェクト:baseRef・symlinkDirectories・sparsePaths・bgIsolation |
未設定 | --worktree・EnterWorktree ツール・隔離されたサブエージェントとバックグラウンドセッションが作る git worktree の作り方と管理 |
worktree.baseRef |
"fresh"・"head" |
"fresh" |
新しい worktree をどの ref から分岐させるか。"fresh" は origin/<default-branch>(リモートと一致するきれいなツリー)、"head" は手元の HEAD(未プッシュのコミットやフィーチャーブランチの状態を含む) |
worktree.symlinkDirectories |
文字列の配列(リポジトリルートからの相対ディレクトリパス) | 未設定(シンボリックリンクなし) | メインのリポジトリのディレクトリを各 worktree にシンボリックリンクして、大きなディレクトリの複製を避ける |
worktree.sparsePaths |
文字列の配列(リポジトリルートからの相対ディレクトリパス) | 未設定(ツリー全体をチェックアウト) | 各 worktree で、git の sparse-checkout により、挙げたディレクトリとルート直下のファイルだけをディスクに書く(大きなモノレポで速い) |
worktree.bgIsolation |
"worktree"・"none" |
"worktree" |
バックグラウンドセッションのファイル編集の隔離。"worktree" はセッションが EnterWorktree を呼ぶまでメインのチェックアウトでの Edit・Write をブロックし、"none" ではバックグラウンドジョブが作業コピーを直接編集する。← か /background でバックグラウンドへ移したセッションは、このキーに関係なくその場で編集する |
リモート・デスクトップ・通知#
Remote Control・デスクトップアプリ・通知まわりの設定です。関連:リモートコントロールとモバイル、デスクトップアプリ、アーティファクト、ディープリンク。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
agentPushNotifEnabled |
Boolean | false |
Claude が送る価値があると判断したとき(長いタスクの完了など)、スマートフォンへプッシュ通知を送ってよいか。選択はアカウントに同期され、Remote Control が接続しているあいだ届く。古いバージョンが ~/.claude.json に残した値も読まれる |
awaySummaryEnabled |
Boolean | 未設定(リキャップはオン) | 数分離れてからターミナルに戻ったとき、1 行のセッションのリキャップを出す。false、または /config の「Session recap」をオフで止める。CLAUDE_CODE_ENABLE_AWAY_SUMMARY が優先 |
disableArtifact |
Boolean | 未設定(アカウントの提供状況に従う) | 【非推奨】enableArtifact に置き換わった。disableArtifact: true は enableArtifact: false と同等で、false は無視される。/config の「Artifacts」をオフにすると enableArtifact が書かれ、このキーは消える |
disableDeepLinkRegistration |
文字列 "disable" |
未設定(ハンドラーを登録する) | Claude Code が claude-cli:// プロトコルハンドラーを OS に登録するのを止める(既定では対話セッションの最初のプロンプトを送ったあと登録する)。ディープリンクは外部ツールが入力済みのプロンプトでセッションを開く仕組み |
disableDesktopLocalSessions |
Boolean(JSON の true のみ有効) |
未設定(ローカルセッションが使える) | 【管理設定のみ】デスクトップアプリの、そのデバイス上で動く Code セッションをオフにする(開発者に SSH でリモートマシンを使わせる構成向け)。Code タブの「Local」環境はドロップダウンに残るがグレーアウトされる。既存のローカルセッションは一覧に残るが続けられない |
disableRemoteControl |
Boolean | false |
Remote Control をオフにする。claude remote-control・--remote-control フラグ・自動開始・セッション内のトグルは、組織のポリシーで無効と表示して拒否される。開発者ごとでなく管理設定に置く |
enableArtifact |
Boolean | 未設定(アカウントの提供状況に従う) | Artifact ツール(セッション出力を claude.ai の非公開 Web ページとして公開)をオフにする。false でそのファイルが及ぶ全セッションでオフ。true は未設定と同じで、他のファイルや CLAUDE_CODE_DISABLE_ARTIFACT などの false を覆さない(どのファイルもオフにできるが、戻せない)。/config の「Artifacts」をオフにするとユーザー設定に書かれる |
inputNeededNotifEnabled |
Boolean | false |
権限確認や質問が入力待ちのとき、スマートフォンへプッシュ通知を送る。Remote Control が接続しているあいだだけ。/config の「Push when actions required」。古いバージョンの ~/.claude.json の値も読まれる |
preferredNotifChannel |
"auto"・"terminal_bell"・"iterm2"・"iterm2_with_bell"・"kitty"・"ghostty"・"notifications_disabled" |
"auto" |
タスクの完了や権限確認の待ちを知らせる方法。/config の「Local notifications」。"auto" は iTerm2・Ghostty・Kitty ではデスクトップ通知、Terminal.app などではベルなど端末に合わせる。"terminal_bell" は任意の端末でベル、"iterm2"・"kitty"・"ghostty" は各端末のデスクトップ通知、"iterm2_with_bell" は iTerm2 の通知+ベル、"notifications_disabled" は通知なし。古いバージョンの ~/.claude.json の値も読まれる |
remote.defaultEnvironmentId |
文字列(env_...・ccpool_... などの環境 ID) |
未設定(リストに Anthropic ホストの環境があればそれ、なければ Remote Control ブリッジ環境でない最初の環境) | claude --cloud などで CLI から作るクラウドセッションの既定のクラウド環境。/remote-env で選ぶとユーザー設定に書かれる。セルフホスト環境の ID はユーザー設定・管理設定・--settings のみ |
remoteControlAtStartup |
Boolean | 未設定(自動接続の既定に従う) | 対話セッションが始まるたびに、/remote-control を待たず Remote Control に自動接続する。/config の「Enable Remote Control for all sessions」。古いバージョンの ~/.claude.json の値も読まれる |
sshConfigs |
オブジェクトの配列:必須の id・name・sshHost と、任意の sshPort・sshIdentityFile |
未設定 | 【ユーザーか管理設定】デスクトップアプリの環境ドロップダウンに SSH 接続を足す(デスクトップアプリが読む)。管理設定で配った接続は「managed」と表示され、選べるが編集・削除はできない |
sshHostAllowlist |
ホスト名パターンの配列(大文字小文字を区別しない。* は任意のホスト、*.example.com は example.com とすべてのサブドメイン、それ以外は完全一致) |
未設定(どのホストも可) | 【管理設定のみ】デスクトップの SSH セッションが接続できるホストを制限する(CLI は読まない) |
認証とプロバイダー#
ログイン方法・認証情報の生成・利用できるプロバイダーの制限です。関連:インストールとログイン、Bedrock・Vertex AI・Foundry、ネットワークと LLM ゲートウェイ。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
allowedProviders |
文字列の配列:"anthropic"・"bedrock"・"vertex"・"foundry"・"anthropicAws"・"mantle"・"customEndpoint"・"gateway" |
未設定(どのプロバイダーも可) | 【管理設定のみ】マシンが Claude に接続してよいサービスの一覧。載っていないプロバイダーのセッションは、起動時・ログイン時・次に API に触れるときに拒否される。マシン自身の管理元(MDM・管理設定ファイル)が設定したリストは、サーバー管理設定が別のリストを配っても適用され続ける |
apiKeyHelper |
文字列(シェルのコマンドライン) | 未設定(ヘルパーを実行しない) | モデルリクエストに付ける認証情報を自前のコマンドで作る。システムシェル(macOS・Linux は /bin/sh、Windows は cmd)で実行し、出力を X-Api-Key と Authorization: Bearer の両方で送る。Vault から取る短命トークンなどに |
awsAuthRefresh |
文字列(シェルのコマンドライン) | 未設定 | Bedrock 用の資格情報が使えなくなったとき、aws sso login のようなコマンドで .aws の資格情報を更新する。まず STS で現在の資格情報を確認してから実行する。同じコマンドと資格情報を使う複数のプロセス(別々のターミナルや IDE のウィンドウ)で同時に確認が失敗したときは、1 つのプロセスだけがコマンドを実行し、ほかは待つ。リクエストを抱えたまま 60 秒待ったプロセスは自分で実行する。オフにするには環境変数 CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK を 1 にする |
awsCredentialExport |
文字列(シェルのコマンドライン) | 未設定(環境の AWS 資格情報チェーンを使う) | AWS の資格情報を JSON で出力するコマンド。.aws の外にある資格情報で Bedrock を呼べる。aws sts の出力の形と、フラットな aws configure export-credentials の形を受け付ける |
forceLoginMethod |
"claudeai"・"console"・"gateway" |
未設定(ログイン方法を選べる) | ログインできるアカウントの種類を制限する。"claudeai" は claude.ai のみ、"console" は Claude Console のみ、"gateway" は第一者のログインでなくクラウドゲートウェイへ案内する。"gateway" は、マシン上の管理元(managed-settings.json・macOS の plist・Windows の HKLM レジストリ・ポリシーヘルパー)からのみ有効 |
forceLoginGatewayUrl |
文字列(スキーム付きの完全な URL) | 未設定(クラウドゲートウェイの画面は、IT 管理者に連絡するエラーを出す) | 【管理設定のみ】/login のクラウドゲートウェイ画面が接続するゲートウェイの URL(画面に URL 欄は無く、このキーがあるとその URL を表示して、押すと接続する)。マシン上の管理元(managed-settings.json・plist・HKLM・ポリシーヘルパー)からのみ読み、HKCU とサーバー管理設定では無視する |
forceLoginOrgUUID |
文字列(UUID 1 つ)か、文字列の配列(複数の UUID) | 未設定(どの組織でもログインできる) | 管理元からなら、claude.ai アカウントのログインを 1 つの組織(UUID)か、複数の組織のどれか(配列)に限る。ほかの設定ファイルの UUID 1 つは、ログイン時に組織を事前選択するだけで制限はしない |
gatewayInternalNetworks |
文字列の配列(IPv4 の CIDR ブロックを最大 4 つ。各 /8〜/32、互いに重ならず、プライベート空間とも重ならない) |
未設定(/login はプライベートアドレスのゲートウェイだけ受け付ける) |
【管理設定のみ】組織が内部ネットワークの番号付けに使うパブリック IPv4 のブロックを宣言し、/login がそこのクラウドゲートウェイを受け付けるようにする。マシン上の管理元からのみ読む(HKCU とサーバー管理設定では無視)。v2.1.268 以降 |
gcpAuthRefresh |
文字列(シェルのコマンドライン) | 未設定(資格情報エラーが、自分で gcloud auth application-default login を実行するよう案内する) |
Google Cloud の Application Default Credentials が期限切れ・読み込み不可のとき、自前のコマンドで更新して Agent Platform のリクエストを続ける。複数のプロセスが同時に期限切れを見つけたときは、awsAuthRefresh と同じく1つのプロセスだけがコマンドを実行する(CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK が 1 でオフ) |
otelHeadersHelper |
文字列(実行ファイルのパスかシェルのコマンドライン) | 未設定(ヘルパー生成のヘッダーなし) | トークンがローテーションするバックエンド向けに、OpenTelemetry のエクスポートに付けるヘッダーを自前のコマンドで生成する。起動時とその後定期的に実行し、文字列のヘッダー値の JSON オブジェクトを標準出力に期待する |
allowedProviders の値の意味は次のとおりです。
| 値 | 意味 |
|---|---|
"anthropic" |
Anthropic 自身のホストの Anthropic API(claude.ai・Console のサインインか API キー) |
"bedrock" |
Amazon Bedrock |
"vertex" |
Google Cloud の Agent Platform(旧 Vertex AI) |
"foundry" |
Microsoft Foundry |
"anthropicAws" |
Claude Platform on AWS |
"mantle" |
Amazon Bedrock Mantle のエンドポイント(Invoke API と並べて使うセッションは両方を使う) |
"customEndpoint" |
別のホスト(LLM ゲートウェイなど)へ送る Anthropic API やクラウドプロバイダーの API |
"gateway" |
クラウドゲートウェイのサインイン |
管理 env でピン留めが要るエンドポイント#
ピン留め(pin)とは、管理設定の env に書いたエンドポイント変数の値です。セッションがプロバイダーのトラフィックを、そのプロバイダー自身のサービス以外へ送るとき、Claude Code はセッションの値がピンと同じ場合だけ通します。
"customEndpoint"のセッション:ホストを指す変数(ANTHROPIC_BASE_URLや、ANTHROPIC_BEDROCK_BASE_URLのようなプロバイダーのエンドポイントの変数)- Amazon Bedrock:Bedrock 自身のサービスの外を指す AWS SDK の
AWS_ENDPOINT_URL・AWS_ENDPOINT_URL_BEDROCK・AWS_ENDPOINT_URL_BEDROCK_RUNTIME(セッションは"customEndpoint"でなく"bedrock"のまま) - ゲートウェイのサインインの URL:セッションは
"gateway"のままで、forceLoginGatewayUrlもピンとして数えられる - マシンの管理元がリストを設定しているときは、そのマシンの管理元の
envブロックだけがピンになる。サーバー管理設定だけがリストを設定しているときは、そのサーバー管理設定のenvの値もピンになる - リストは、クラウドプロバイダーの資格情報とテナントの変数、ネットワーク経路(
HTTPS_PROXY・証明書設定)を審査しない。それらは管理envで全台に設定する
更新とバージョン#
自動更新のチャネルと、許可するバージョンの範囲です。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
autoUpdatesChannel |
"latest"・"stable" |
未設定("latest") |
バックグラウンドの自動更新と claude update が追うリリースチャネル。"stable" は通常約 1 週間前のバージョンで、大きな不具合のあるリリースを飛ばす。"latest" は最新リリース。管理設定に置くと組織に強制できる |
minimumVersion |
文字列("2.1.100" のようなバージョン番号。無効な値は無視) |
未設定(チャネルが出すどのバージョンも入る) | 自動更新と claude update が、これより古いバージョンを入れないようにする("stable" へ移して新しい "latest" からダウングレードされるのを避ける)。stable に移るとき Claude Code が書く。管理設定に置くと、ユーザー・プロジェクトが下げられない組織全体の下限になる |
requiredMaximumVersion |
文字列("2.1.150" のようなバージョン番号。無効な値は無視) |
未設定(上限なし) | 【管理設定のみ】組織が起動を許す最新の Claude Code のバージョン。実行中のバージョンが新しいと、起動時に終了し、組織の承認した方法で承認済みバージョンを入れるよう案内する。ほかの場所では警告なしで無視される |
requiredMinimumVersion |
文字列("2.1.150" のようなバージョン番号。無効な値は無視) |
未設定(下限なし) | 【管理設定のみ】組織が起動を許す最古の Claude Code のバージョン。実行中のバージョンが古いと、起動時に終了し、組織の承認した方法で更新するよう案内する。検査は起動時のみ。ほかの場所では警告なしで無視される |
ツール#
デスクトップアプリのツールまわりの制限です。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
browserExternalPageTools |
文字列 "disabled"(デスクトップアプリは "disable" も、大文字小文字を問わず受け付ける) |
未設定(Claude のツールは外部ページで動く) | 【管理設定のみ】デスクトップアプリの Browser ペインで、Claude のツールが外部ページを読む・操作するのを止める。人が外部サイトを自分で開くことと、ローカル開発サーバーのプレビューを Claude のツールで扱うことは残る |
disableBrowserExternalNavigation |
Boolean(JSON の true のみ有効) |
未設定(外部ブラウジングはオン) | 【管理設定のみ】デスクトップアプリの Browser ペインの外部ブラウジングを、人にも Claude にもオフにする(localhost の開発サーバーのプレビューは動く)。デスクトップアプリが読み、ターミナルの CLI は無視する |
disableMobileSimulatorTools |
Boolean(JSON の true のみ有効) |
未設定(Claude のシミュレーターツールは各人のデスクトップアプリの設定トグルに従う) | 【管理設定のみ】デスクトップアプリの iOS Simulator ペインに対する Claude のツールをブロックする(人の手動操作は残り、アプリ内からは戻せない)。デスクトップアプリが読み、ターミナルの CLI は無視する |
プライバシーとテレメトリ#
トランスクリプトの保持・フィードバック・アンケート・通信の事前確認の設定です。関連:セキュリティとデータの扱い、利用状況の計測。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
cleanupPeriodDays |
数値(日数。整数で最小 1) |
30 |
セッションのトランスクリプトなどのアプリデータを何日保つか。セッション開始後に、保持期間を安全に決められるかぎりバックグラウンドで削除する |
desktopSessionCleanupPeriodDays |
数値(日数。整数で最小 0) |
0(期間の制限なし) |
【ユーザーか管理設定。--settings のファイルも読む。プロジェクト/ローカルでは無視】Claude Desktop や Cowork で開始・最後に続けたセッションのトランスクリプトの保持日数の上限。未設定では年数にかかわらず保つ |
feedbackDrafts |
"notify"・"quiet"・"off" |
"notify" |
【ユーザーか管理設定】Claude が下書きするフィードバックの扱い。"notify" は Claude が下書きをキューに入れたとき入力欄の上にカードを出す(1 セッションで最大 3 枚)、"quiet" はカードなしで下書きし、キュー数がプロンプトのフッターに出る、"off" は SendFeedback ツールを外し下書きを作れなくする |
feedbackSurveyRate |
数値(0〜1) |
未設定(Anthropic がリモートで設定する率。リモート設定を受けない Bedrock・Agent Platform・Foundry では組み込みの 0.005) |
セッションが対象のとき、品質アンケートが出る確率。0 で出さない |
skipWebFetchPreflight |
Boolean | 未設定(セッション内の各ホスト名への最初の取得の前にチェックが走る) | WebFetch のドメイン安全性チェック(取得前に各ホスト名を api.anthropic.com へ送る)を省く。Bedrock・Agent Platform・Foundry など Anthropic への通信をブロックする環境で true にする。false ではチェックがセッション内の各ホスト名への最初の取得の前に走る |
組織管理#
管理設定そのものの動きを決めるキーです。配り方と全体像は 組織への導入と管理設定 を見てください。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
disableSideloadFlags |
Boolean | false |
【管理設定のみ】--plugin-dir・--plugin-url・--agents・--mcp-config の CLI フラグを起動時に拒否する(1 回の実行で strictKnownMarketplaces を回避するのに使えてしまうため)。true ではエラーで終了する |
forceRemoteSettingsRefresh |
Boolean | false |
【管理設定のみ】サーバー管理設定を新しく取得するまで CLI の起動を止め、取得に失敗したら(キャッシュや設定なしで続けず)終了する。短い時間でも古い設定で動く窓を許せない環境向け。管理者が管理するどの管理元の true も有効(最優先でなくても)。false では起動を止めない(サインインの起動時は最大 5 秒待つ) |
managedSourcesBehavior |
"first-wins"・"merge" |
"first-wins" |
【管理設定のみ】組織が配る管理元のうち最優先のものだけを適用するか("first-wins"。ポリシーキーを持つ最優先の管理元がポリシーを与え、下位は全管理元から読むキーだけ寄与する)、配る全管理元を組み合わせるか("merge")。ポリシーキーは、このキーと wslInheritsWindowsSettings 以外のすべての設定キー。このキーは、このキーかポリシーキーを持つ最優先の管理元から読む |
parentSettingsBehavior |
"first-wins"・"merge" |
"first-wins" |
【管理設定のみ】管理者が配った管理層があるとき、組み込み先のホストプロセス(Agent SDK・IDE 拡張)が与える管理設定を適用するか。"first-wins" はホストの設定を捨てる。"merge" は制限する方向のフィルターを通して、管理層の下に適用する。管理者が管理する最優先の管理元から読む |
policyHelper |
オブジェクト:path・timeoutMs・refreshIntervalMs |
未設定(ヘルパーなし) | 【管理設定のみ】起動時に管理設定を計算する、配布した実行ファイル(デバイスの状態・ID・リモートサービスからポリシーを導ける)。最初のプロンプトを受け付ける前に実行する。macOS の plist・Windows の HKLM レジストリ・管理設定ファイルから読む。サーバー管理設定では適用されない |
policyHelper.path |
文字列(. や .. を含まない正規化した絶対パス。Windows ではドライブ文字か UNC のパスで .exe で終わる) |
なし(policyHelper を設定するときは必須) |
【管理設定のみ】実行するヘルパーの実行ファイル |
policyHelper.timeoutMs |
整数(ミリ秒。最小 1000) |
10000 |
【管理設定のみ】ヘルパーを待つ時間。タイムアウトは非ゼロ終了と同じ失敗で、起動時なら Claude Code は起動を拒否する |
policyHelper.refreshIntervalMs |
整数(ミリ秒。0 で更新なし、それ以外は最小 60000) |
未設定(起動時に 1 回だけ実行) | 【管理設定のみ】ポリシーの変更を実行中のセッションに届けるため、ヘルパーをバックグラウンドで一定間隔で再実行する。成功すると出力が再起動なしで以前の管理設定を置き換える。失敗すると最後に成功したポリシーが保たれる |
wslInheritsWindowsSettings |
Boolean | false(WSL は /etc/claude-code だけ読む) |
【管理設定のみ。管理者が管理する Windows の管理元で】WSL 上の Claude Code が、Windows のポリシーの鎖(HKLM と Windows の管理設定ファイルが /etc/claude-code と HKCU より優先)から管理設定を読む |
managedSourcesBehavior が "merge" のときの合成規則#
"merge" は、下位のソースの項目(permissions.allow など)をポリシーへ加えるので、最優先より下のすべてが管理者の管理下にあるときだけ使います。
| キーの種類 | 合成の仕方 | 該当するキー |
|---|---|---|
| リスト | 全ソースの項目を結合する | permissions.allow・sandbox.network.allowedDomains などのリスト型のキー |
| ロック | どれかのソースが設定した最も厳しい値を適用する。厳しい値がなければ最優先のソースの緩い値だけを適用する | allowManagedPermissionRulesOnly・permissions.disableBypassPermissionsMode などの Boolean や列挙のロック |
| 制限の許可リスト | 最優先のソースが設定したリストを丸ごと取る(下位の項目は足さない)。最優先が設定していなければ次のソースから丸ごと | availableModels・allowedMcpServers・allowedProviders・strictKnownMarketplaces・allowedChannelPlugins・fallbackModel の鎖 |
| 丸ごと取る値 | 最優先のソースが設定した値を丸ごと取る(下位とは組み合わせない) | sandbox.credentials.awsPairs・sandbox.ripgrep(v2.1.257 以降) |
| 提供する MCP サーバー | 全ソースのサーバー名を結合。同じ名前は上位の項目を丸ごと適用 | managedMcpServers |
| 最優先のソースだけから読む | ポリシーキーを持つ最優先のソースからだけ読む(最優先が設定していなくても、下位の値は無視) | apiKeyHelper・awsAuthRefresh・awsCredentialExport・gcpAuthRefresh・otelHeadersHelper・proxyAuthHelper・forceLoginOrgUUID・forceLoginMethod の "claudeai"・"console"・parentSettingsBehavior・modelPicker・policyHelper・permissions.defaultMode |
env |
"first-wins" と "merge" のどちらでも、管理元をまたいで変数ごとにマージ |
env |
| そのほかのキー | 設定した最優先のソースの値を取る | cleanupPeriodDays・model |
policyHelper:ポリシーキーを持つ最優先のソースが MDM ポリシーか管理設定ファイルのときだけ有効(サーバー管理設定では適用されない)modelOverrides:availableModelsと対になる。設定した最優先のソースから取るが、より上位がmodelOverridesなしでavailableModelsを設定していれば、全ソースのmodelOverridesを無視するforceLoginGatewayUrl・gatewayInternalNetworks・forceLoginMethodの"gateway":サーバー管理設定からは読まれない(そこでの値は適用もされず、MDM や管理設定ファイルの値を隠しもしない)。マシン上の管理元のうち、ポリシーキーを持つ最上位だけが供給するallowedProviders:表の規則の後も、マシン自身のリストが結果を制限する- どのソースが合成されたかは、
/statusのSetting sources行で確認できる
policyHelper の出力と失敗#
- ヘルパーは引数なしで実行され、環境に
CLAUDE_CODE_VERSIONが入り、標準出力の JSON エンベロープ(上限 1 MiB)を読む - 設定は
managedSettingsキーの下に置く。managedSettingsのない素の設定オブジェクトは何も適用されず、エラーも出ない - ヘルパーが
managedSettingsを出すと、それがその実行の唯一の管理設定のソースになる(MDM・ファイル・HKCU のソースは無視され、親の設定とはマージされない)。managedSettingsを省いたエンベロープで0終了したヘルパーは、管理設定に寄与せず、ほかのソースが通常どおり適用される - 起動時の
forceRemoteSettingsRefreshの検査は、ヘルパーより前に走り、どの管理元も読む
{
"managedSettings": {
"permissions": { "deny": ["Read(//etc/secrets/**)"] }
}
}
ヘルパーの実行は、次のときに失敗します。
pathがpolicyHelper.pathの規則を破っている、pathに通常のファイルが無い(同じtimeoutMsの中で確認される)- ヘルパーが非ゼロで終了する・
timeoutMsが過ぎても実行中・起動しない(実行権限がないなど) - 標準出力か標準エラーに 1 MiB を超えて書く
- 標準出力が単一の JSON オブジェクトでない、または
managedSettingsに Claude Code が直せないスキーマ違反がある
起動時の実行が失敗すると、理由を出して起動を拒否します(対話・claude -p・Agent SDK・バックグラウンドセッションと、ほとんどのサブコマンドが対象)。非ゼロ終了なら理由にヘルパーの標準エラー(空なら標準出力)が含まれ、タイムアウトなら timeoutMs の上限を示して出力は含まれません。障害への耐性が要るヘルパーは、自前でキャッシュから返して 0 で終了します。バックグラウンドの更新が失敗すると最後に成功したポリシーが保たれ、/status が失敗理由を表示します。--debug では全実行のヘルパーの標準エラーがデバッグログに出ます。policyHelper の値が無効(パスだけの文字列・最小値未満の timeoutMs)だと、その項目を捨ててヘルパーを実行せずに残りの管理設定で起動します。ヘルパーをオフにするには、設定しているソースからキーを消します。
グローバル設定#
settings.json でなく ~/.claude.json に置くキーです。ほとんどは /config から切り替えると書かれます。
| キー | 型・値 | 既定 | 説明 |
|---|---|---|---|
autoConnectIde |
Boolean | false |
外部のターミナルから Claude Code を起動したとき、動いている IDE へ自動で接続する。VS Code・JetBrains のターミナルの外で動かすと /config に「Auto-connect to IDE (external terminal)」が出る。CLAUDE_CODE_AUTO_CONNECT_IDE が優先 |
autoInstallIdeExtension |
Boolean | true |
VS Code のターミナルから Claude Code を動かしたとき、IDE 拡張を自動でインストールする。CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL でも止められる |
claudeInChromeDefaultEnabled |
Boolean | 未設定(Chrome 連携はオフで、設定を案内することはある) | --chrome を毎回渡さずに、セッションの開始時に Chrome 連携をオンにする。v2.1.287 以降は VS Code 拡張のセッションにも効き、true ではセッションの開始時にブラウザへ接続し、false や未設定では @browser と入力したときに接続する。claude remote-control が始めるプロジェクトスレッドのセッションもこのキーに従う(bypassPermissions などを除く) |
copyFullResponse |
Boolean | false |
/copy が、コードブロックがあるときのピッカーなしで毎回応答全体をコピーする。ピッカーで「Always copy full response」を選ぶと true になる |
copyOnSelect |
Boolean | true |
フルスクリーン描画かエージェントビューで、マウスで選択し終えたテキストを自動でクリップボードにコピーする。フルスクリーン描画がオンのとき /config に「Copy on select」が出る。false では選択してもクリップボードは変わらず、キーボードショートカットでコピーする |
defaultToAgentsView |
Boolean | false |
引数なしの claude で、新しい会話でなくエージェントビューを開く(エージェントビューがオフでなければ。/config の「Open agents view by default」) |
diffTool |
"auto"・"terminal" |
"auto" |
VS Code・JetBrains の IDE が接続されているとき、Edit・Write が提案する変更の diff の表示先。"auto" は IDE の diff ビューアーで開き、"terminal" はターミナルに保つ |
externalEditorContext |
Boolean | false |
Ctrl+G で外部エディタを開くとき、エディタのバッファの先頭に Claude の前の応答を # コメント行として入れる(読みながら書ける。Claude Code が除く) |
leftArrowOpensAgents |
Boolean | true |
空のプロンプトで ← を押すとセッションをバックグラウンドにしてエージェントビューを開く。false でショートカットをオフ(エージェントビューから接続したセッションでは別の動き)。エージェントビューが使えるとき /config に「← opens agents」が出る |
permissionExplainerEnabled |
Boolean | true(v2.1.256 まで) |
【削除済み】v2.1.257 で、Bash・PowerShell の権限確認の Ctrl+E によるコマンド説明とともに削除された。設定しても効かない |
prStatusFooterEnabled |
Boolean | true |
プロンプトのフッターに、現在のブランチのオープンな PR/MR のバッジ(状態を示す色付きの下線つき)を出す。/config の「Show PR status footer」。false ではフッターの PR/MR の確認も行わない |
teammateDefaultModel |
文字列(モデルのエイリアスか完全なモデル ID)か null |
未設定(v2.1.233 まで) | 【削除済み】v2.1.234 で、/config の「Default teammate model」の行とともに削除された。設定しても効かない |
関連ページ#
- 設定ファイルの仕組み:ファイルの置き場所・優先順位・設定例
- 権限ルール:
permissions.allow・ask・denyの書き方 - サンドボックス:
sandbox.*の仕組み - 環境変数一覧:
envに書ける変数 - 設定のデバッグ:設定が効かないとき
公式ドキュメント(英語)
2026年10月5日時点の内容をもとに、日本語でまとめています。