SpyBara
Go Premium

settings-reference.md 2026-11-06 23:01 UTC to 2026-11-07 23:58 UTC

No changes for this document in this history range.

2026
Mon 2 23:57 Tue 3 23:58 Wed 4 23:59 Thu 5 23:03 Fri 6 23:01 Sun 8 22:58 Mon 9 23:02 Thu 12 22:01

すべての設定

Claude Code の settings.json キーの完全なリファレンス:各キーの場所、型とデフォルト値、貼り付け可能な例、およびすべてのキーのインデックス。

Back to index

このリファレンスページでは、Claude Code が設定ファイルから読み込む各キーと、代わりに ~/.claude.json に保持する短いキーグループを一覧表示しています。ファイルを選択するか、優先順位を確認するには、設定ファイルと優先順位から始めてください。

設定インデックス

以下の各キーは、それぞれの項目にリンクしています。Scope は、そのキーを記述できるファイルを示します。User は ~/.claude/settings.json、Project は .claude/settings.json、Local は .claude/settings.local.json、Managed は組織がデプロイするものです。Any file はこの 4 つすべてを意味し、Global config は ~/.claude.json を意味します。

Key Description Topic Scope
advisorModel Claude がアドバイザーツールに問い合わせたときに応答するモデルを選択します モデルと応答 Any file
agent すべてのセッションを、プロンプト、ツール、モデルを備えた名前付きのサブエージェントとして開始します エージェント、セッション、worktree Any file
agentPushNotifEnabled Claude が必要と判断したときにスマートフォンへプッシュ通知を送信できるようにします リモート、デスクトップ、通知 Any file
allowAllClaudeAiMcps デプロイされた managed-mcp.json と併せて、Claude Code が自ら取得する claude.ai コネクタを読み込みます MCP Managed
allowClaudeInChromeWithManagedMcp デプロイされた managed-mcp.json と併せて、組み込みの Claude in Chrome サーバーを実行できるようにします MCP Managed
allowedChannelPlugins メッセージをプッシュできるチャネルプラグインのデフォルトの許可リストを置き換えます プラグインとスキル Managed
allowedHttpHookUrls HTTP フックの送信先にできる URL を制限します フックと自動化 Any file
allowedMcpServers ユーザーが追加できる MCP サーバーの許可リストを指定します MCP Any file
allowedProviders マシンが使用できる API プロバイダーを制限します 認証とプロバイダー Managed
allowManagedHooksOnly 組織がデプロイしたフックのみを実行します フックと自動化 Managed
allowManagedMcpServersOnly 管理された MCP 許可リストのみが適用されるようにします MCP Managed
allowManagedPermissionRulesOnly 管理設定を権限ルールの唯一の設定ソースにします 権限設定 Managed
alwaysThinkingEnabled すべてのセッションで拡張思考をオフにします モデルと応答 Any file
apiKeyHelper 独自のコマンドで API 認証情報を生成します 認証とプロバイダー Any file
askUserQuestionTimeout 未回答の質問が、一定のアイドル時間後に自動で続行されるようにします インターフェースとターミナル User or managed
appendPlugins ユーザーがインストールしたすべての mod の後に、組織の mod を実行します プラグインとスキル User or managed
attribution Claude Code がコミットとプルリクエストに追加する帰属表示をカスタマイズします Git と帰属表示 Any file
attribution.commit Claude Code がコミットに追加するトレーラーを変更または非表示にします Git と帰属表示 Any file
attribution.pr プルリクエストの説明にある帰属表示の行を変更または非表示にします Git と帰属表示 Any file
attribution.sessionUrl クラウドおよび Remote Control のコミットから claude.ai のセッションリンクを省略します Git と帰属表示 Any file
autoCompactEnabled 自動圧縮をオフまたはオンにします メモリとコンテキスト Any file
autoCompactWindow Claude Code が圧縮を行う前に、コンテキストがどの程度埋まるかを設定します メモリとコンテキスト Any file
autoConnectIde 外部ターミナルから、実行中の VS Code または JetBrains IDE に自動接続します グローバル設定 Global config
autoContinueAtUsageLimit claude.ai の使用制限がリセットされるまで開いているセッションで待機し、リセット後にタスクを自動で続行します インターフェースとターミナル User or managed
autoInstallIdeExtension 外部ターミナルから /ide で IDE 拡張機能をインストールできるようにします グローバル設定 Global config
autoMemoryDirectory 自動メモリを任意のディレクトリに保存します メモリとコンテキスト Any file
autoMemoryEnabled 自動メモリをオフまたはオンにします メモリとコンテキスト Any file
autoMode auto モードの分類器に独自の許可ルールと拒否ルールを追加します 権限設定 User or managed
autoMode.classifyAllShell 限定的な許可ルールに一致するものも含め、すべてのシェルコマンドを auto モードの分類器に通します 権限設定 User or managed
autoScrollEnabled フルスクリーン表示で新しい出力に追従して最下部までスクロールします インターフェースとターミナル Any file
autoUpdatesChannel latest ではなく stable のリリースチャネルに従います 更新とバージョン管理 Any file
availableModels ユーザーが選択できるモデルを制限します モデルと応答 Any file
availableModelsMatch availableModels の各モデル ID エントリが、その名前で指定したバージョンのみを許可するようにします モデルと応答 Managed
awaySummaryEnabled ターミナルに戻ったときに表示されるセッションの要約をオフにします リモート、デスクトップ、通知 Any file
awsAuthRefresh 独自のコマンドで、.aws 内の期限切れの Bedrock 認証情報を更新します 認証とプロバイダー Any file
awsCredentialExport 独自のコマンドから Bedrock 認証情報を JSON として提供します 認証とプロバイダー Any file
axScreenReader スクリーンリーダーに適した出力をレンダリングします インターフェースとターミナル User or managed
bashEditDiffEnabled すべての権限モードで、Bash コマンドの実行中に変更されたファイルを記録します インターフェースとターミナル User or managed
bashOutputMaxChars 成功したコマンドの出力のうち、Claude がインラインで受け取る量を設定します メモリとコンテキスト Any file
blockedMarketplaces 組織でプラグインマーケットプレイスのソースをブロックします プラグインとスキル Managed
browserExternalPageTools デスクトップの Browser ペインで、外部ページに対して Claude のツールを使用させないようにします ツール Managed
channelsEnabled 組織でチャネルを許可します プラグインとスキル Managed
claudeInChromeDefaultEnabled 対話型 CLI と VS Code 拡張機能で、セッション開始時に Chrome 統合をオンにします グローバル設定 Global config
claudeMd 管理設定から、組織全体の CLAUDE.md の指示を注入します メモリとコンテキスト Managed
claudeMdExcludes メモリの読み込み時に特定の CLAUDE.md ファイルをスキップします メモリとコンテキスト Any file
cleanupPeriodDays Claude Code がトランスクリプトを削除するまで保持する日数を選択します プライバシーとテレメトリ Any file
companyAnnouncements 起動時に組織のお知らせを表示します インターフェースとターミナル Any file
copyFullResponse /copy で、ピッカーを表示せずに応答全体をコピーするようにします グローバル設定 Global config
copyOnSelect フルスクリーン表示とエージェントビューで、マウスで選択したテキストの自動コピーをオフにします グローバル設定 Global config
crossSessionInbound Claude Code が他のセッションからのメッセージを配信するか、配信せずに通知を表示するか、拒否するかを選択します エージェント、セッション、worktree Any file
defaultShell ! プレフィックスで入力したシェルコマンドを Bash と PowerShell のどちらで実行するかを選択します インターフェースとターミナル Any file
defaultToAgentsView 引数なしで claude を実行したときに、新しい会話ではなくエージェントビューを開きます グローバル設定 Global config
deniedMcpServers URL、コマンド、または名前で特定の MCP サーバーをブロックします MCP Any file
deniedModels availableModels で許可されているモデルも含め、特定のモデルをブロックします モデルと応答 Managed
desktopSessionCleanupPeriodDays Claude Desktop と Cowork のトランスクリプトの保持期限を日数で設定します プライバシーとテレメトリ User or managed
dialogExpiry 転送されたダイアログに Remote Control または SDK ホストが応答するまで Claude Code が待機する時間を設定します。この時間を過ぎると Claude Code はダイアログをキャンセルします インターフェースとターミナル User or managed
diffTool Claude が提案したファイルの変更を VS Code または JetBrains の差分ビューアーで開くか、ターミナルに表示したままにするかを選択します グローバル設定 Global config
disableAgentView バックグラウンドエージェントとエージェントビューをオフにします エージェント、セッション、worktree Any file
disableAllHooks フック、カスタムのステータスライン、カスタムの @ ファイル候補コマンドをまとめてオフにします フックと自動化 Any file
disableArtifact 非推奨です。Artifact ツールをオフにするには enableArtifact を使用します リモート、デスクトップ、通知 Any file
disableAutoMode 権限モードの切り替えサイクルから auto モードを削除します 権限設定 Any file
disableBrowserExternalNavigation デスクトップの Browser ペインを、ユーザーと Claude の両方に対して localhost に制限します ツール Managed
disableBundledSkills Claude Code に含まれるスキルとワークフローをオフにします プラグインとスキル Any file
disableClaudeAiConnectors claude.ai コネクタをオフにし、Claude Code がそれらを取得しないようにします MCP Any file
disableCommandPluginSources マーケットプレイスで宣言されたコマンドを実行してインストールするプラグインをブロックします プラグインとスキル Managed
disableDeepLinkRegistration Claude Code が claude-cli:// ハンドラーを登録しないようにします リモート、デスクトップ、通知 Any file
disableDesktopLocalSessions デバイス上で実行される Desktop の Code セッションをオフにし、他のホストへの SSH とクラウドのみを残します リモート、デスクトップ、通知 Managed
disabledMcpjsonServers プロジェクトの .mcp.json にある特定のサーバーを拒否します MCP Any file
disableMobileSimulatorTools デスクトップの iOS Simulator ペインで Claude のツールをブロックします ツール Managed
disableRemoteControl Remote Control を、起動可能なすべての場所でオフにします リモート、デスクトップ、通知 Any file
disableSideloadFlags プラグイン、サブエージェント、MCP サーバーをサイドロードする CLI フラグを拒否します エンタープライズと管理設定 Managed
disableSkillShellExecution スキルとカスタムコマンドがインラインでシェルを実行しないようにします プラグインとスキル Any file
disableWorkflows 全員に対して動的ワークフローをオフにします。自分だけに適用する場合は enableWorkflows を使用します フックと自動化 Any file
editorMode 入力プロンプトで vim キーバインドを使用します インターフェースとターミナル Any file
effortLevel 独自に保存されたレベルを持たないモデルのデフォルトの effort レベルを設定します モデルと応答 Any file
emojiCompletionEnabled プロンプト入力での :shortcode: 絵文字の候補表示と置換をオフにします インターフェースとターミナル Any file
enableAllProjectMcpServers プロジェクトの .mcp.json ファイル内のすべてのサーバーを、確認なしで承認します MCP Any file
enableArtifact いずれかのファイルで false を指定すると Artifact ツールがオフになります。どのファイルでも再度オンにすることはできません リモート、デスクトップ、通知 Any file
enabledMcpjsonServers プロジェクトの .mcp.json にある特定のサーバーを承認します MCP Any file
enabledPlugins スコープごとに個々のプラグインをオンまたはオフにします プラグインとスキル Any file
enableWorkflows プランのデフォルトに対して、動的ワークフローをオンまたはオフにします フックと自動化 Any file
enforceAvailableModels /model の Default の選択肢を availableModels の許可リスト内に収めます モデルと応答 Any file
env すべてのセッションとそのサブプロセスに環境変数を設定します メモリとコンテキスト Any file
externalEditorContext Ctrl+G を押して編集するときに、Claude の最後の応答をコメントとして表示します グローバル設定 Global config
extraKnownMarketplaces リポジトリまたは組織用にマーケットプレイスを登録します プラグインとスキル Any file
fallbackModel プライマリモデルが過負荷のときに使用するバックアップモデルを指定します モデルと応答 Any file
fastMode 利用可能なセッションで fast mode をオンにします モデルと応答 Any file
fastModePerSessionOptIn セッションごとに fast mode をオンにすることを必須にします モデルと応答 Any file
feedbackDrafts Claude が確認用にフィードバックの下書きをキューに入れるかどうかを制御します プライバシーとテレメトリ User or managed
feedbackSurveyRate セッション品質アンケートが表示される頻度を変更します プライバシーとテレメトリ Any file
fileCheckpointingEnabled /rewind で復元するファイルスナップショットをオフまたはオンにします メモリとコンテキスト Any file
fileSuggestion 独自のコマンドで @ ファイルのオートコンプリートを提供します インターフェースとターミナル Any file
footerLinksRegexes 出力内の issue ID やレビュー ID を、入力ボックスの下にクリック可能なリンクとして表示します インターフェースとターミナル User or managed
forceLoginGatewayUrl ログイン画面の接続先となるゲートウェイ URL を設定します 認証とプロバイダー User or managed
forceLoginMethod ログイン方法を制限し、claude.ai、Claude Console、またはクラウドゲートウェイのみにします 認証とプロバイダー Any file
forceLoginOrgUUID claude.ai のログインを組織に固定します。これを強制するのは管理設定のみです 認証とプロバイダー Any file
forceRemoteSettingsRefresh サーバー管理設定が新たに取得されるまで起動をブロックします エンタープライズと管理設定 Managed
gatewayInternalNetworks 組織が内部で使用しているパブリック IPv4 アドレス空間上のクラウドゲートウェイに /login が到達できるようにします 認証とプロバイダー Managed
gcpAuthRefresh 独自のコマンドで Google Cloud 認証情報を更新します 認証とプロバイダー Any file
hooks Claude Code のライフサイクルの各時点で、独自のコマンドをフックとして実行します フックと自動化 Any file
httpHookAllowedEnvVars HTTP フックがヘッダーに含められる環境変数を制限します フックと自動化 Any file
idleCompaction 離席中の長い会話を Claude Code が圧縮しないようにします メモリとコンテキスト Any file
includeCoAuthoredBy 非推奨です。コミットと PR の帰属表示を非表示にしたり変更したりするには attribution を使用します Git と帰属表示 Any file
includeGitInstructions 組み込みのコミットと PR の指示を Claude のコンテキストから削除します Git と帰属表示 Any file
inputNeededNotifEnabled Claude がユーザーの入力を待っているときにプッシュ通知を受け取ります リモート、デスクトップ、通知 Any file
isolatePeerMachines Claude が別のマシン上にある自分のセッションにメッセージを送信する前に確認を求めます エージェント、セッション、worktree Any file
keybindingFlavor 非推奨で、効果はありません。単語編集のショートカットは常に readline の規則に従います インターフェースとターミナル Any file
language Claude に英語以外の言語で応答させます モデルと応答 Any file
leftArrowOpensAgents セッションをバックグラウンドに移してエージェントビューを開く ← ショートカットをオフにします グローバル設定 Global config
managedMcpServers ユーザー自身が追加したサーバーに加えて、リモート MCP サーバーをすべてのユーザーに提供します MCP Managed
managedSourcesBehavior 優先順位が最も高いソースのみを使用するのではなく、デプロイしたすべての管理ソースを組み合わせます エンタープライズと管理設定 Managed
maxEffortLevel すべてのプロバイダーで、全モデルまたはモデルごとに effort レベルの上限を設定します モデルと応答 Any file
maxProseWidth 幅の広いターミナルで、Claude の応答の文章部分の幅に上限を設定します インターフェースとターミナル Any file
minimumVersion 特定のバージョン未満のものが自動更新でインストールされないようにします 更新とバージョン管理 Any file
model Claude Code の起動時のモデルを変更します モデルと応答 Any file
modelOverrides Bedrock の ARN など、モデル ID をプロバイダーの ID にマッピングします モデルと応答 Any file
modelPicker /model ピッカーに表示するモデルを、独自の順序とラベルで選択します モデルと応答 User or managed
modelPricing 定価ではなく、組織の契約料金で支出を報告します モデルと応答 Managed
modelSettings モデルごとに保存した effort レベルや自動圧縮ウィンドウを保持するか、特定のモデルの effort に上限を設定します モデルと応答 Any file
otelHeadersHelper 独自のコマンドで、ローテーションする OpenTelemetry ヘッダーを生成します 認証とプロバイダー Any file
outputStyle 出力スタイルで Claude の役割、トーン、出力形式を変更します モデルと応答 Any file
parentSettingsBehavior 管理設定をデプロイしている場合に、SDK または IDE ホストが渡す制限を適用するか破棄するかを指定します エンタープライズと管理設定 Managed
permissionExplainerEnabled v2.1.257 で削除されました。シェルの権限プロンプトでの Ctrl+E によるコマンドの説明も同時に削除されています グローバル設定 Global config
permissions 許可(allow)、確認(ask)、拒否(deny)のルールとデフォルトの権限モードを設定します 権限設定 Any file
permissions.additionalDirectories 現在のディレクトリ以外のディレクトリへのファイルアクセスを Claude に許可します 権限設定 Any file
permissions.allow 列挙したツールの使用を確認なしで承認します 権限設定 Any file
permissions.ask 列挙したツールの使用の前に常に確認を求めます 権限設定 Any file
permissions.blockReadsOutsideWorkingDirectories すべての権限モードで、ファイルツールが作業ディレクトリ外の読み取りを拒否するようにします 権限設定 Any file
permissions.blockWritesOutsideWorkingDirectories Claude Code 自身の一部のファイルを除き、すべての権限モードで Write、Edit、NotebookEdit ツールが作業ディレクトリ外のパスを拒否するようにします 権限設定 Any file
permissions.defaultMode 新しいセッションのデフォルトの権限モードを設定します 権限設定 Any file
permissions.deny シークレットを含むファイルの読み取りなど、列挙したツールの使用をブロックします 権限設定 Any file
permissions.disableBypassPermissionsMode 誰も bypassPermissions モードに入れないようにします 権限設定 Any file
plansDirectory plan モードがプランファイルを書き込む場所を選択します メモリとコンテキスト Any file
pluginConfigs プラグインの設定ダイアログで入力した回答を保存します プラグインとスキル User or managed
pluginSuggestionMarketplaces /plugin でプラグインのインストール候補を表示できるマーケットプレイスを選択します プラグインとスキル Managed
pluginTrustMessage プラグインの信頼に関する警告に独自のテキストを追加します プラグインとスキル Managed
policyHelper 起動時に管理設定を算出する実行ファイルを実行します エンタープライズと管理設定 Managed
policyHelper.path Claude Code が実行するヘルパー実行ファイルを指定します エンタープライズと管理設定 Managed
policyHelper.refreshIntervalMs ヘルパーをバックグラウンドで一定間隔ごとに再実行します エンタープライズと管理設定 Managed
policyHelper.timeoutMs Claude Code がヘルパーを待機する時間を設定します エンタープライズと管理設定 Managed
preferredNotifChannel タスク完了時の通知にターミナルのベルまたはデスクトップ通知を選択します リモート、デスクトップ、通知 Any file
prefersReducedMotion スピナー、シマー、フラッシュのアニメーションを軽減またはオフにします インターフェースとターミナル Any file
prependPlugins ユーザーがインストールしたすべての mod の前に、組織の mod を実行します プラグインとスキル User or managed
processWrapper macOS と Linux で、Claude Code のバックグラウンドプロセスを社内ランチャー経由で実行します エージェント、セッション、worktree User or managed
promptCacheTtl メイン会話のプロンプトキャッシュの有効期間を選択します モデルと応答 Any file
promptSuggestionEnabled 入力ボックスにグレー表示されるプロンプト候補を非表示にします インターフェースとターミナル Any file
prStatusFooterEnabled プロンプトフッターの PR レビューステータスバッジと、その裏で行われるプルリクエストのチェックをオフにします グローバル設定 Global config
prUrlTemplate PR リンクの参照先を github.com ではなく社内のコードレビューツールにします Git と帰属表示 Any file
remote.defaultEnvironmentId claude --cloud のデフォルトのクラウド環境を選択します。セルフホストの ccpool_ ID は、ユーザー設定、管理設定、--settings からのみ読み取られます リモート、デスクトップ、通知 Any file
remoteControlAtStartup セッション開始時に Remote Control に自動接続します リモート、デスクトップ、通知 Any file
requiredMaximumVersion 組織が許可するバージョンより新しいバージョンでは起動を拒否します 更新とバージョン管理 Managed
requiredMinimumVersion 組織が要求するバージョンより古いバージョンでは起動を拒否します 更新とバージョン管理 Managed
respectGitignore gitignore の対象ファイルを @ ファイルピッカーから除外します インターフェースとターミナル Any file
respondToBashCommands ! シェルコマンドの実行後に Claude が応答しないようにします インターフェースとターミナル Any file
sandbox macOS、Linux、WSL2 で、Bash コマンドをファイルシステムとネットワークから分離します サンドボックス設定 Any file
sandbox.allowAppleEvents macOS で、サンドボックス化されたコマンドが Apple Events を送信できるようにします サンドボックス設定 User or managed
sandbox.allowNestedUserNamespaces Linux と WSL2 で、サンドボックス化されたコマンドがユーザー名前空間を作成できるようにします サンドボックス設定 User or managed
sandbox.allowUnsandboxedCommands ブロックされたコマンドを Claude がサンドボックスの外で再試行できるようにするか、それを禁止します サンドボックス設定 Any file
sandbox.autoAllowBashIfSandboxed サンドボックス化されたコマンドを権限プロンプトなしで実行します サンドボックス設定 Any file
sandbox.bwrapPath PATH 外にある bubblewrap バイナリをサンドボックスが使用するように指定します サンドボックス設定 Managed
sandbox.credentials サンドボックス内で認証情報ファイルと変数を非表示またはマスクします サンドボックス設定 Any file
sandbox.credentials.allowPlaintextInject 信頼できるテストネットワーク上で、マスクされた認証情報がプレーン HTTP サービスに届くようにします サンドボックス設定 User or managed
sandbox.credentials.awsPairs カスタム名の AWS キー変数を、再署名用の 1 つの認証情報に関連付けます サンドボックス設定 User or managed
sandbox.credentials.envVars サンドボックス内で環境変数の設定を解除またはマスクします サンドボックス設定 Any file
sandbox.credentials.files サンドボックス内で認証情報ファイルの読み取りをブロックまたはマスクします サンドボックス設定 Any file
sandbox.credentials.sigv4 ストリーミング、署名付き、または SigV4A の AWS リクエストを失敗させるか、そのまま通すかを選択します サンドボックス設定 User or managed
sandbox.enabled macOS、Linux、WSL2 で Bash のサンドボックス化をオンにします サンドボックス設定 Any file
sandbox.enableWeakerNestedSandbox 非特権コンテナ内で Linux のサンドボックスを実行します サンドボックス設定 Any file
sandbox.enableWeakerNetworkIsolation macOS のサンドボックス内で、gh、gcloud、terraform が MITM プロキシの背後で TLS を検証できるようにします サンドボックス設定 Any file
sandbox.excludedCommands Claude Code がサンドボックスの外で実行できるコマンドを指定します サンドボックス設定 Any file
sandbox.failIfUnavailable サンドボックスを起動できない場合に、サンドボックスなしで実行するのではなく起動を拒否します サンドボックス設定 Any file
sandbox.filesystem サンドボックス化されたコマンドが読み書きできるパスを制御します サンドボックス設定 Any file
sandbox.filesystem.allowManagedReadPathsOnly 組織がブロックした読み取りパスを開発者が再度開けないようにします サンドボックス設定 Managed
sandbox.filesystem.allowRead denyRead がブロックする領域内で、読み取りを再び許可します サンドボックス設定 Any file
sandbox.filesystem.allowWrite サンドボックス化されたコマンドが書き込めるパスを追加します サンドボックス設定 Any file
sandbox.filesystem.denyRead サンドボックス化されたコマンドが特定のパスを読み取れないようにします サンドボックス設定 Any file
sandbox.filesystem.denyWrite サンドボックス化されたコマンドが特定のパスに書き込めないようにします サンドボックス設定 Any file
sandbox.filesystem.disabled ネットワーク分離を維持したままファイルシステム分離をオフにします サンドボックス設定 User or managed
sandbox.ignoreViolations コマンドが調べることが想定されているパスについて、違反レポートを抑制します サンドボックス設定 Any file
sandbox.network サンドボックス化されたコマンドが到達できるホスト、ポート、ソケットを制御します サンドボックス設定 Any file
sandbox.network.allowAllUnixSockets サンドボックス化されたコマンドがすべての Unix ソケットに接続できるようにします サンドボックス設定 Any file
sandbox.network.allowedDomains サンドボックス化されたコマンドで確認が表示されないよう、ドメインを事前に許可します サンドボックス設定 Any file
sandbox.network.allowLocalBinding macOS で、サンドボックス化されたコマンドがネットワークポートでリッスンし、localhost に接続できるようにします サンドボックス設定 Any file
sandbox.network.allowMachLookup iOS Simulator や Playwright など、macOS でサンドボックス化されたツールが XPC サービスに到達できるようにします サンドボックス設定 Any file
sandbox.network.allowManagedDomainsOnly ネットワーク許可リストを管理設定に固定します サンドボックス設定 Managed
sandbox.network.allowUnixSockets macOS でサンドボックス化されたコマンドが使用できる Unix ソケットのパスを列挙します サンドボックス設定 Any file
sandbox.network.deniedDomains 許可されたワイルドカードに含まれる場合でも、サンドボックス化されたコマンドに対してドメインをブロックします サンドボックス設定 Any file
sandbox.network.httpProxyPort サンドボックスの HTTP トラフィックを独自のプロキシ経由でルーティングします サンドボックス設定 Any file
sandbox.network.socksProxyPort サンドボックスの SOCKS トラフィックを独自のプロキシ経由でルーティングします サンドボックス設定 Any file
sandbox.network.strictAllowlist 許可リスト外のホストを、確認を求めずに拒否します サンドボックス設定 User or managed
sandbox.network.tlsTerminate HTTPS リクエストを読み取れるよう、サンドボックスのプロキシで TLS を終端します サンドボックス設定 User or managed
sandbox.ripgrep サンドボックス内で独自の ripgrep バイナリを使用します サンドボックス設定 User or managed
sandbox.socatPath PATH 外にある socat バイナリをサンドボックスのプロキシが使用するように指定します サンドボックス設定 Managed
showClearContextOnPlanAccept プランの承認画面に「clear context」オプションを表示します インターフェースとターミナル Any file
showThinkingSummaries 折りたたまれた省略表示ではなく、Claude の思考の要約を表示します モデルと応答 Any file
showTurnDuration 各応答の後に表示される「Cooked for」の所要時間を非表示にします インターフェースとターミナル Any file
skillListingBudgetFraction スキル一覧に割り当てるコンテキストを増減します メモリとコンテキスト Any file
skillListingMaxDescChars スキル一覧で各スキルの説明の長さに上限を設定します メモリとコンテキスト Any file
skillOverrides SKILL.md を編集せずにスキルを非表示にしたり折りたたんだりします プラグインとスキル Any file
skipAutoPermissionPrompt 組み込みのデフォルトによってではなく、ユーザー自身が初めて auto モードに入ったときに Claude Code が表示する 1 回限りの通知をスキップします 権限設定 User or managed
skipDangerousModePermissionPrompt bypassPermissions モードに入る前の確認ダイアログをスキップします 権限設定 User, local, or managed
skipWebFetchPreflight Anthropic に到達できない場合に WebFetch のホスト名チェックをスキップします プライバシーとテレメトリ Any file
spellcheck インストールしたスペルチェッカーで、プロンプト入力内のスペルミスに下線を引きます インターフェースとターミナル User or managed
spinnerTipsEnabled Claude の作業中にスピナーに表示されるヒントを非表示にします インターフェースとターミナル Any file
spinnerTipsOverride スピナーで順に表示されるヒントに独自のヒントを追加するか、組み込みのヒントを置き換えます インターフェースとターミナル Any file
spinnerVerbs ターンの実行中に表示される動詞を追加または置き換えます インターフェースとターミナル Any file
sshConfigs Desktop の環境セレクターに SSH 接続を追加します リモート、デスクトップ、通知 User or managed
sshHostAllowlist Desktop の SSH セッションが到達できるホストを制限します リモート、デスクトップ、通知 Managed
sshHostCommands ホストをコマンドから取得する SSH 接続を Desktop の環境セレクターに追加します リモート、デスクトップ、通知 User or managed
statusLine 独自のコマンドを実行して、プロンプトの下にステータスラインをレンダリングします インターフェースとターミナル Any file
strictKnownMarketplaces ユーザーが追加してインストール元にできるマーケットプレイスのソースの許可リストを指定します プラグインとスキル Managed
strictPluginOnlyCustomization ユーザーとプロジェクトのソースからのスキル、エージェント、フック、MCP サーバーをブロックします プラグインとスキル Managed
strictPluginOnlyCustomization.agents エージェントをプラグインと管理ソースに限定します プラグインとスキル Managed
strictPluginOnlyCustomization.hooks フックをプラグインと管理ソースに限定します プラグインとスキル Managed
strictPluginOnlyCustomization.mcp MCP サーバーをプラグインと管理ソースに限定します プラグインとスキル Managed
strictPluginOnlyCustomization.skills スキルをプラグインと管理ソースに限定します プラグインとスキル Managed
subagentPromptCacheTtl サブエージェントおよびメイン会話以外のリクエストのプロンプトキャッシュの有効期間を選択します モデルと応答 Any file
subagentStatusLine 独自のコマンドで、サブエージェントのタスク表示の行を書き換えます インターフェースとターミナル Any file
switchModelsOnFlag 安全性分類器がリクエストを警告したときに、モデルを自動で切り替えるか一時停止します モデルと応答 Any file
syncClaudeAiPlugins claude.ai アカウントで有効にしたプラグインの読み込みと、新しいプラグインのダウンロードを停止します プラグインとスキル User, local, or managed
syncClaudeAiSkills claude.ai アカウントで有効にしたスキルの読み込みと、新しいスキルのダウンロードを停止します プラグインとスキル User, local, or managed
syntaxHighlightingDisabled 差分とコードブロックのシンタックスハイライトをオフにします インターフェースとターミナル Any file
taskOutputMaxChars v2.1.277 で削除されました。この設定がサイズを制御していた TaskOutput ツールも同時に削除されています メモリとコンテキスト Any file
teammateDefaultModel v2.1.234 で削除されました。Claude Code がチームメイトのモデルを選択する方法については、チームメイトとモデルを指定するを参照してください グローバル設定 Global config
teammateMode エージェントチームのチームメイトの表示方法を選択します エージェント、セッション、worktree Any file
terminalProgressBarEnabled 対応しているターミナルで、ターミナルのプログレスバーを非表示にします インターフェースとターミナル Any file
terminalTitleFromRename /rename と --name がターミナルのタブタイトルを変更しないようにします インターフェースとターミナル Any file
theme 組み込みまたはカスタムのインターフェースのカラーテーマを選択します インターフェースとターミナル Any file
timeFormat インターフェースの時刻を、12 時間制または 24 時間制、UTC、または strftime パターンで表示します インターフェースとターミナル Any file
timeZone インターフェースの時刻を、システムとは異なるタイムゾーンで表示します インターフェースとターミナル Any file
tui フルスクリーンまたはクラシックのターミナルレンダラーを選択します インターフェースとターミナル Any file
ultracode 指示がなくても、実質的なタスクごとに Claude にワークフローを計画させます モデルと応答 Any file
useAutoModeDuringPlan plan モードで auto モードの分類器にシェルコマンドを審査させます。代わりに確認を表示するには false を設定します 権限設定 User, local, or managed
verbose 切り詰められた要約ではなくツールの出力全体を表示します。両方が設定されている場合は viewMode が優先されます インターフェースとターミナル Any file
viewMode すべてのセッションを default、verbose、または focus ビューで開始します インターフェースとターミナル Any file
vimInsertModeRemaps jj などの 2 キーの INSERT モードのシーケンスを Escape にマッピングします インターフェースとターミナル User or managed
voice 音声入力をオンにし、hold モードまたは tap モードを選択します インターフェースとターミナル Any file
voiceEnabled 旧形式の単一キーで音声入力をオンにします インターフェースとターミナル Any file
wheelScrollAccelerationEnabled フルスクリーン表示でのマウスホイールの加速をオフにします インターフェースとターミナル Any file
workflowKeywordTriggerEnabled プロンプト内の ultracode という単語でワークフローを開始できるようにします。開始せずにこの単語を入力するには false を設定します フックと自動化 Any file
workflowSizeGuideline 動的ワークフローで Claude が目標とするエージェント数を設定します フックと自動化 Any file
worktree Claude Code が git の worktree を作成する方法を設定します エージェント、セッション、worktree Any file
worktree.baseRef リモートのデフォルトブランチまたはローカルの HEAD を基に、新しい worktree を作成します エージェント、セッション、worktree Any file
worktree.bgIsolation バックグラウンドセッションが worktree なしで作業コピーを編集できるようにします エージェント、セッション、worktree Any file
worktree.location Desktop の SSH セッションがリモートマシン上で worktree を作成する場所を選択します エージェント、セッション、worktree User
worktree.sparsePaths 各 worktree で必要なディレクトリのみをチェックアウトします エージェント、セッション、worktree Any file
worktree.symlinkDirectories 大きなディレクトリを複製するのではなく、各 worktree にシンボリックリンクします エージェント、セッション、worktree Any file
wslInheritsWindowsSettings WSL が Windows のポリシーチェーンから管理設定を読み取るようにします エンタープライズと管理設定 Managed

モデルと応答

Claude Code が使用するモデルと、その応答のしかたを選択します。これらの設定が /model コマンドや環境変数とどのように相互作用するかについては、モデル設定を参照してください。

advisorModel

Claude がサーバー側の advisor ツールを呼び出したときに応答するモデルを選択します。設定を解除すると advisor はオフになります。advisor はメインモデルと同等以上の能力を持つ必要があります。受け入れられる組み合わせと、受け入れられない組み合わせを選択した場合の動作については、advisor モデルを選択するを参照してください。

通常、このキーを手動で編集することはありません。/advisor を実行すると、現在の選択、advisor として使用できるモデル、および No advisor を表示するピッカーが開きます。Claude Code は選択内容を ~/.claude/settings.json のこのキーに保存します。Remote Control クライアントから選択した場合や、リモートワーカーに接続されたセッションで選択した場合、その選択はそのセッションにのみ適用され、このキーは変更されません。

アカウントで使用クレジットへの同意が必要な場合は、まず /model fable を実行して同意してください。同意するまでは、/advisor で Fable を選択しても何も保存されず、Claude Code は先に /model fable を実行するよう案内します。

  • スコープ: Any file
  • 型: 文字列。エイリアス "fable"、"opus"、"sonnet" のいずれか(Claude Code におけるそのモデルファミリーの現在のデフォルトバージョンに解決されます)、または "claude-opus-5-5" のような完全なモデル ID
  • デフォルト: 未設定。advisor はオフです
  • セッションごとの上書き: --advisor は、1 つのセッションに限りこのキーよりも優先されます。CLAUDE_CODE_DISABLE_ADVISOR_TOOL は advisor をオフにし、このキーで再びオンにすることはできません
{
  "advisorModel": "opus"
}

このキーは、Amazon Bedrock や Claude Platform on AWS など、advisor が利用できないプロバイダーでは効果がありません。"fable" には Fable へのアクセスが必要です。

alwaysThinkingEnabled

これを false に設定すると、すべてのセッションで拡張思考がオフになります。思考はデフォルトでオンのため、true にしても何も変わりません。ほとんどのユーザーは、ファイルを編集するのではなく /config からこれを設定します。

Opus 5.5、Sonnet 5.5、Haiku 5.5、Fable モデルなど、常に思考するモデルでは false は効果がありません。サードパーティプロバイダーでは、Claude Code は思考をオフにする代わりに thinking パラメータを省略するため、適応型推論モデルは引き続き思考する場合があります。Anthropic API で思考をオフにした場合、Claude Code は、Opus 5 などその組み合わせを受け付けないことが分かっているモデルに対して、より高いレベルではなく effort high を送信します。

  • スコープ: Any file
  • 型: Boolean
    • true: 効果なし。思考はすでにオンです
    • false: Claude Code はすべてのセッションで拡張思考をオフにします
  • デフォルト: 未設定。思考をサポートするモデルでは思考がオンになります
  • セッションごとの上書き: MAX_THINKING_TOKENS は、1 つのセッションに限りこのキーよりも優先されます。0 は false と同じモデルおよびプロバイダーの制限のもとで思考をオフにし、正の値はこのキーが false の場合でも思考をオンにします。適応型推論モデルでは、数値そのものは無視されます
{
  "alwaysThinkingEnabled": false
}

availableModels

メインセッション、サブエージェント、スキル、advisor でユーザーが選択できるモデルを制限します。管理されたリストは、/model、--model、および開発者自身のファイル内の model キーを制約し、リスト外のモデルは選択できません。デフォルトのプレフィックス一致では、これだけでは Default オプションには影響しません。Default オプションも制限するには、enforceAvailableModels と組み合わせてください。

  • スコープ: Any file。組織全体に適用するには、管理設定でデプロイします。
  • 型: モデルのエイリアスまたは ID の配列
  • デフォルト: 未設定。すべてのモデルが利用可能です

この例では、Sonnet と Haiku のモデルのみを選択できるようにします。

{
  "availableModels": ["sonnet", "haiku"]
}

"claude-opus-5" のようなモデル ID のエントリは、Opus 5.5 など、それを拡張する後続のバージョンも許可します。それらのバージョンのいずれかをブロックするには、deniedModels を使用します。各モデル ID のエントリが指定したバージョンのみを許可するようにするには、availableModelsMatch を使用します。モデル選択を制限するを参照してください。サードパーティプロバイダーの ID については、サードパーティデプロイ向けにモデルを固定するを参照してください。

availableModelsMatch

availableModels のエントリをモデル ID とどのように照合するかを選択します。デフォルトでは、モデル ID のエントリはそれを拡張する後続のバージョンも許可するため、"claude-opus-5" は Opus 5.5 を許可します。"exact" を指定すると、各モデル ID のエントリは指定したバージョンのみを許可するため、そのモデルの新しいバージョンは、リストに追加するまでブロックされたままになります。Claude Code v2.1.283 以降が必要です。

  • スコープ: Managed。Claude Code は、ユーザー設定、プロジェクト設定、ローカル設定、および --settings 内のこのキーを警告付きで無視します
  • 型: 文字列。次のいずれか:
    • "prefix": モデル ID のエントリは、そのバージョンと、別のセグメントでそれを拡張するすべてのモデル ID を許可します
    • "exact": モデル ID のエントリは指定したバージョンのみを許可するため、"claude-opus-5" は Opus 5 を許可しますが、claude-opus-5-5 は許可しません。"claude-opus-4-5" のようなエントリは、日付付きの Anthropic モデル ID claude-opus-4-5-20251101 も許可します。"opus" のようなファミリーエイリアスは引き続きファミリー全体を許可し、best、opusplan、default のエントリは無視されます
  • デフォルト: "prefix"

この例では、Opus 5 と Sonnet 5 を許可し、いずれの後続リリースも許可しません。

{
  "availableModels": ["claude-opus-5", "claude-sonnet-5"],
  "availableModelsMatch": "exact"
}

"exact" を指定した場合、リストに少なくとも 1 つのモデルまたはファミリーが指定されていれば、Default オプションもリスト内のモデルに制限されます。特定のモデルまたはバージョンをブロックするを参照してください。

deniedModels

availableModels 許可リストの有無にかかわらず、またそのリストで許可されている場合でも、特定のモデルをブロックします。Claude Code はブロックされたモデルを /model ピッカーに表示せず、availableModels が適用されるあらゆる場所でそのモデルを選択できなくなります。特定のモデルまたはバージョンをブロックするで説明しているとおり、Default オプションのセッションでもブロックされたモデルは実行されません。Claude Code v2.1.283 以降が必要です。

  • スコープ: Managed。Claude Code は、ユーザー設定、プロジェクト設定、ローカル設定、および --settings 内のこのキーを警告付きで無視します
  • 型: モデルのエイリアスまたは ID の配列
    • "opus" のようなファミリーエイリアスは、そのファミリーのすべてのモデルをブロックします
    • "claude-opus-5-5" のようなモデル ID は、日付付き ID やプロバイダー固有の ID を含む、あらゆる表記のそのバージョンをブロックします
    • "claude-opus-5" のようにマイナーバージョンのないモデル ID は、Opus 5.5 など後続のマイナーバージョンもブロックします。Opus 5 のみをブロックするには "claude-opus-5-0" と記述します
    • best、opusplan、default のエントリは無視されます
  • デフォルト: 未設定。ブロックされるモデルはありません

この例では、Opus と Sonnet のモデルを許可し、Opus 5.5 をブロックします。

{
  "availableModels": ["opus", "sonnet"],
  "deniedModels": ["claude-opus-5-5"]
}

特定のモデルまたはバージョンをブロックするを参照してください。

effortLevel

レベルを保存していないモデルに対して、デフォルトの effort レベルを設定します。低いレベルは単純なタスクでより高速かつ低コストになり、高いレベルは複雑な問題に対してより深く推論します。

自分のマシン上の対話セッションで /effort low、medium、high、xhigh を実行すると、Claude Code はこのキーに書き込むのではなく、アクティブなモデルのレベルを modelSettings の下に保存します。v2.1.251 より前は、/effort はこのキーに書き込んでいました。

同じ設定ファイル内では、Claude Code はこのキーよりもモデルごとに保存されたレベルを使用します。ファイル間の優先順位については modelSettings に記載しています。

リモートワーカーに接続されたセッション、-p の実行、および Agent SDK では、/effort はそのセッションにのみ適用されます。同様にそのセッションにのみ適用される対話的な選択については、effort レベルを調整するに記載しています。/effort が出力するメッセージに、どちらになったかが示されます。

  • スコープ: Any file
  • 型: 文字列。次のいずれか:
    • "low": 推論が最も少なく、知能をあまり必要としない、短く範囲の限られたレイテンシー重視のタスク向け
    • "medium": ある程度の知能と引き換えにできる、コスト重視の作業でトークン使用量を削減します
    • "high": トークン使用量と知能のバランスを取ります
    • "xhigh": より多くのトークンを消費して、より深く推論します
  • デフォルト: 未設定
  • セッションごとの上書き: --effort は 1 つのセッションに限りこのキーよりも優先され、CLAUDE_CODE_EFFORT_LEVEL はその両方よりも優先されます
{
  "effortLevel": "xhigh"
}

ユーザー設定ファイル ~/.claude/settings.json では、このキーは /effort がモデルごとにレベルを保存するようになる前に書き込んでいた古い形式であり、以前と同じ範囲、つまり Opus 5、Fable 5.1、およびそれ以前のモデルに引き続き適用されます。Opus 5.5 とそれ以降にリリースされたモデルはこのキーを無視し、レベルを保存するまでは独自のデフォルトで開始します。レベルは /effort によって modelSettings の下に書き込まれます。プロジェクト設定、ローカル設定、管理設定、および --settings では、このキーはすべてのモデルに適用されます。

enforceAvailableModels

/model ピッカーには Default オプションがあり、それが解決されるモデルについては default モデル設定で説明しています。availableModels 許可リストは指定できるモデルを制限しますが、デフォルトのプレフィックス一致ではアカウントタイプのデフォルトを再マッピングしないため、Default がリスト外のモデルに解決される場合があります。このキーはそのギャップを埋めます。Claude Code v2.1.175 以降が必要です。

組織が何らかの管理設定をデプロイしている場合、Claude Code はこのキーを管理ソースからのみ読み取り、他のファイル内のこのキーは無視します。

起動時のモデルチェックにこのキーがどのように適用されるかについては、Amazon Bedrock および Google Cloud's Agent Platform を参照してください。

  • スコープ: Any file
  • 型: Boolean
    • true: Default が availableModels 外のモデルに解決される場合、Claude Code はそれをリスト内で最初に利用可能なモデルに解決します
    • false: このキーは Default の解決方法を変更しません
  • デフォルト: false

この例では、名前による選択を Sonnet と Haiku のモデルに制限し、Default がそれらのうち最初に利用可能なものに解決されるようにします。

{
  "availableModels": ["sonnet", "haiku"],
  "enforceAvailableModels": true
}

availableModels が未設定または空の場合、このキーは効果がありません。Default モデルに許可リストを適用するを参照してください。Claude Code v2.1.175 以降が必要です。

fallbackModel

プライマリモデルが過負荷または利用できない場合に Claude Code が順番に試すバックアップモデルを指定します。Claude Code はそのターンの残りの間、チェーン内で次に利用可能なモデルに切り替え、通知を表示します。チェーンがない場合、Claude Code は同じモデルで再試行した後にサーバーのエラーを表示し、ユーザーが自分で再試行するかモデルを切り替えることになります。

切り替えが発生すると、フォールバックモデルでは 1 ターンの間プロンプトキャッシュがコールドの状態になります。次のメッセージでは再びプライマリモデルが最初に試されます。

  • スコープ: Any file
  • 型: モデルのエイリアスまたは ID の配列。"default" はデフォルトモデルに展開されます
  • デフォルト: 未設定。失敗したリクエストは別のモデルで再試行されません
  • セッションごとの上書き: --fallback-model は、1 つのセッションに限りこのキーよりも優先されます

この例では、プライマリモデルが失敗した場合に、まず Sonnet 5、次に Haiku 4.5 を試します。

{
  "fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"]
}

ほとんどの配列設定とは異なり、このキーは設定ファイル間でマージされません。このキーを定義している最も優先順位の高いファイルがチェーン全体を提供します。プロジェクトファイルで ["claude-sonnet-5"] を設定し、ユーザーファイルで ["claude-haiku-4-5"] を設定した場合、チェーンは ["claude-sonnet-5"] のみになります。Claude Code はリストから最大 3 つの異なる許可されたモデルを保持し、残りは無視します。フォールバックモデルチェーンを参照してください。

fastMode

利用可能なセッションで fast mode をオンにします。トークンあたりのコストが高くても速度を優先したい、迅速な反復作業やライブデバッグなどの対話的な作業向けです。通常、このキーを手動で編集することはありません。/fast を実行すると ~/.claude/settings.json に fastMode: true が書き込まれ、もう一度実行して fast mode をオフにするとキーが削除されます。

fast mode をサポートしているのは Opus 5.5、Opus 5、Opus 4.8 のみです。他のモデルで /fast を実行すると Opus に切り替わり、サポートされていないモデルに切り替えると fast mode はオフになります。fast mode がオンの状態でモデルを切り替えるを参照してください。

  • スコープ: Any file
  • 型: Boolean
    • true: Claude Code は、利用可能なセッションで fast mode をオンにします
    • false: fast mode はオフのままです
  • デフォルト: 未設定。fast mode はオフです
  • セッションごとの上書き: CLAUDE_CODE_DISABLE_FAST_MODE は 1 つのセッションに限り fast mode をオフにし、このキーで再びオンにすることはできません
{
  "fastMode": true
}

fastModePerSessionOptIn

通常、/fast を実行すると fastMode がユーザー設定に保存されるため、サポートされているモデルでの新しいセッションは fast mode がオンの状態で開始します。このキーを true に設定するとこれを止められます。保存された fastMode: true はセッション開始時に fast mode をオンにしなくなり、各ユーザーは fast mode を使いたいセッションごとに /fast を実行する必要があります。Claude Code はユーザーのファイル内の fastMode キーを残すため、このキーをオフにすると以前の動作に戻ります。

Team プランまたは Enterprise プランのオーナーは、サーバー管理設定を通じて組織全体にデプロイできます。管理設定でこのキーが設定されている場合、対話型ターミナルセッション以外では /fast on が拒否され、組織によって fast mode が無効化されていることが通知されます。これには、非対話モード、VS Code 拡張機能、クラウドセッションが含まれます。

  • スコープ: Any file
  • 型: Boolean
    • true: 保存された fastMode: true はセッション開始時に fast mode をオンにしなくなるため、各ユーザーは fast mode を使いたいセッションごとに /fast を実行します。--settings で渡された fastMode: true は、管理設定でこのキーが設定されていない限り、そのセッションでは引き続き有効です
    • false: 保存された fastMode: true は、サポートされているモデルでの新しいセッションごとに、開始時に fast mode をオンにします
  • デフォルト: false
{
  "fastModePerSessionOptIn": true
}

セッションごとのオプトインを必須にするを参照してください。

language

Claude がデフォルトで英語以外の言語で応答するようにします。応答に使える言語の固定リストはありません。Claude Code はこの値を、常にその言語で応答するという指示としてそのまま Claude に渡すため、Claude が読み取れる言語名であれば何でも機能します。Claude Code は値をチェックしないため、スペルを誤った名前はエラーにならず、記述したとおりに Claude に渡されます。同じ値は、音声入力(こちらにはサポートされている音声入力言語の固定リストがあります)と、自動生成されるセッションタイトルの言語も設定します。

  • スコープ: Any file
  • 型: 文字列。"japanese"、"spanish"、"french" など任意の言語名。Claude Code は検証しません
  • デフォルト: 未設定。その場合、セッションタイトルは会話の言語に合わせられます
{
  "language": "japanese"
}

maxEffortLevel

セッションで使用できる effort レベルに上限を設け、それより低いレベルは使用可能なままにします。それより高いレベルは、/effort、/model ピッカー、--effort、CLAUDE_CODE_EFFORT_LEVEL、スキルやサブエージェントの effort フロントマター、またはモデル自体のデフォルトから指定されたものを含め、すべて上限のレベルで実行されます。Claude Code は各リクエストの前に自ら上限を適用するため、Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry を含むすべてのプロバイダーで上限が維持されます。Claude Code v2.1.267 以降が必要です。

  • スコープ: Any file。組織全体に適用するには、管理設定でデプロイします。複数のスコープで上限が設定されている場合は最も低いものが適用されるため、あるスコープで設定された上限を別のスコープから引き上げることはできません
  • 型: 文字列。"low"、"medium"、"high"、"xhigh"、"max" のいずれか。"max" を指定すると上限は設定されません
  • デフォルト: 未設定。上限は適用されません
  • モデルごとの上限: モデルの modelSettings エントリに maxEffortLevel を追加します。そのエントリは、ユーザー設定や 1 つの管理ソースなど、両方を設定している設定ソース内に限り、そのモデルについてこのキーを置き換えます。そこで "max" を設定すると、そのモデルをそのソースの上限から除外できます。ただし、Claude Code は他のソースからの上限を引き続き適用します

この例では、すべてのモデルの上限を medium に設定し、Sonnet 4.6 を除外します。

{
  "maxEffortLevel": "medium",
  "modelSettings": {
    "claude-sonnet-4-6": {
      "maxEffortLevel": "max"
    }
  }
}

組織がモデルに対して effort の制限も設定している場合は、2 つの上限のうち低い方が適用されます。

model

新しいセッションごとに使用するモデルを設定し、毎回 /model で選択しなくて済むようにします。ここで設定しても、セッションの途中で切り替えることはできます。管理者がユーザーの選択を上書きする組織のデフォルトモデルを設定している場合は、ユーザー設定、プロジェクト設定、ローカル設定でこのキーを設定していても、そのモデルが使用されます。

  • スコープ: Any file
  • 型: 文字列。モデルのエイリアスまたは完全なモデル ID
  • デフォルト: 未設定。Claude Code はアカウントのデフォルトモデルを使用します
  • セッションごとの上書き: --model は ANTHROPIC_MODEL よりも優先され、どちらも 1 つのセッションに限り、管理された model を含めてこのキーよりも優先されます。ただし、availableModels リストは引き続き選択に適用されます
{
  "model": "claude-sonnet-5"
}

ここで設定した値は、ANTHROPIC_DEFAULT_MODEL よりも優先されます。Claude Code が ANTHROPIC_DEFAULT_MODEL を使用するのは、他に何もモデルを選択していない場合のみです。

modelOverrides

Anthropic のモデル ID を、Amazon Bedrock の推論プロファイル ARN などのプロバイダー固有のモデル ID にマッピングします。これにより、モデルピッカーの各エントリは、プロバイダー API を呼び出す際にマッピングされた値を使用します。管理者は Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry でこれを使用して、ガバナンス、コスト配分、リージョンルーティングのために、各モデルバージョンを特定の推論プロファイル、バージョン名、またはデプロイにルーティングします。

  • スコープ: Any file
  • 型: モデル ID をプロバイダーのモデル ID にマッピングするオブジェクト
  • デフォルト: 未設定

この例では、Opus 4.6 へのすべての呼び出しを指定した Bedrock 推論プロファイルにルーティングします。

{
  "modelOverrides": {
    "claude-opus-4-6": "arn:aws:bedrock:us-east-1:123456789012:inference-profile/example"
  }
}

バージョンごとにモデル ID を上書きするを参照してください。

modelPicker

/model ピッカーに表示するモデルを、記述した順序と選択したラベルで一覧にします。これにより、ピッカーには組織で実行しているモデルが、組み込みのラインナップの後に、またはその代わりに表示されます。各行の model はそのまま使用されるため、--model が受け付けるものは何でも指定できます。opus のようなエイリアス、Anthropic のモデル ID、または Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry、LLM ゲートウェイ向けのプロバイダー形式の ID です。Claude Code v2.1.242 以降が必要です。

  • スコープ: User or managed。Claude Code はこのキーを管理設定、--settings、ユーザー設定から読み取り、プロジェクト設定とローカル設定では無視します。これにより、クローンしたリポジトリがピッカーのラベルを変更することはできません。これら 3 つのうちこのキーを設定している最も優先順位の高いものがラインナップ全体を提供し、Claude Code が 2 つのソースのラインナップを組み合わせることはありません。
  • 型: 行の配列である options と、省略可能な Boolean の replaceBuiltInOptions を持つオブジェクト
  • デフォルト: 未設定。ピッカーには組み込みのラインナップが表示されます

この例では、チームが認識できる名前で、組み込みのラインナップの後に 2 つの Bedrock デプロイを追加します。

{
  "modelPicker": {
    "options": [
      { "model": "us.anthropic.claude-opus-4-8", "label": "Opus (production)" },
      {
        "model": "us.anthropic.claude-sonnet-4-6",
        "label": "Sonnet (production)",
        "description": "Day-to-day work"
      }
    ]
  }
}

modelPicker のフィールド

このキーは 2 つのフィールドを受け取ります。1 つは行そのもの用、もう 1 つはそれらの行が組み込みのラインナップを置き換えるか、追加されるかを指定するものです。

フィールド 型 機能
options 行の配列。各行には必須の model と、省略可能な label、description、behavesAs があります ピッカーに表示される行で、この順序で表示されます。ただし、グレーアウトされた行は一番下に移動します。label がない場合、Claude Code は既知のモデルであれば組み込みの名前を、それ以外の場合はモデル ID を行のタイトルとし、description がない場合は汎用的な 2 行目を記述します
replaceBuiltInOptions Boolean、デフォルトは false true に設定すると、これらの行、Default、およびセッションですでに使用しているモデルの行のみが表示されます。未設定のままにすると、これらの行は組み込みのラインナップの後に追加されます

options 内のエントリには、model と並んで省略可能な behavesAs 文字列を含めることもでき、これには v2.1.257 以降が必要です。model が使用中のバージョンより新しいエントリに対して、claude-opus-4-8 など、使用中の Claude Code バージョンがすでに認識しているモデルの ID を設定します。すると Claude Code は、そのモデルを不明なモデルとして扱う代わりに、既知のモデルの機能と effort のデフォルトをそのエントリに適用します。エントリのラベルと、Claude Code がリクエストで送信するモデル ID は変わりません。

replaceBuiltInOptions がオンの場合、Claude Code は他のすべての行を非表示にします。対象は、組み込みのラインナップ、availableModels のエントリに対して追加される行、ゲートウェイ検出で見つかったモデル、および ANTHROPIC_CUSTOM_MODEL_OPTION です。オフの場合、Claude Code は組み込みのラインナップですでにカバーされているリスト内のモデルをスキップします。ラベルはピッカーの表示を変えるだけで、Claude Code が実行するモデルは変わりません。

availableModels 許可リストは、これらの行にも引き続き適用されます。リスト内のモデルを許可リストに追加する前に、マージの動作を読んでください。特定のモデル ID は、そのファミリーのワイルドカードエントリを絞り込みます。Claude Code は、ピッカーを表示する前に各行をセッションに照らしてチェックすることも行います。

  • 削除: 廃止されたモデルや組織がアクセスできないモデルなど、Claude Code が提供できない行
  • グレーアウト: まだ選択できない行。理由とともに表示されます
  • 残る行がない場合: Claude Code は組み込みのラインナップを保持し、通常どおり許可リストで絞り込みます

Claude Code は解析できない行を削除し、残りを保持します。壊れた設定ファイルを修正するを参照してください。

modelPricing

表示価格ではなく、組織が実際に支払っている料金で支出を報告します。組織に契約料金がある場合に設定すると、開発者が目にする金額が請求額と一致するようになります。Claude Code はこの料金を、/usage、ステータスライン、Agent SDK の total_cost_usd、--max-budget-usd の上限、および OpenTelemetry のコストメトリクスとイベントに適用します。料金はユーザーが指定します。Claude Code が契約や Claude Console から料金を読み取ることはありません。Claude Code v2.1.242 以降が必要です。

  • スコープ: Managed。このキーは、サーバー管理設定、MDM ポリシー、managed-settings.json ファイル、またはポリシーヘルパーを通じてデプロイします。Claude Code は、ユーザー設定、プロジェクト設定、ローカル設定、--settings、および Windows ではユーザーが書き込み可能な HKCU レジストリ内のこのキーを無視します。サーバー管理設定を使用する場合、各セッションは、そのセッションの設定の取得で設定が確認されるまで、表示価格でコストを報告します。Claude Code を組み込み、CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST を設定しているホストアプリケーションは、SDK の managedSettings オプションを通じて独自の料金表を提供できます。Claude Code がこれを使用するのは、どの管理ソースもこのキーを設定していない場合のみで、Claude Code v2.1.246 以降に限られます。
  • 型: 省略可能な multiplier と省略可能な overrides マップを持つオブジェクト
  • デフォルト: 未設定。ホストアプリケーションが料金表を提供しない限り、Claude Code は表示価格で報告します

一律の割引または上乗せには multiplier のみを、モデルごとの料金には overrides のみを設定するか、両方を設定します。

この例では、Sonnet 4.6 の契約料金を設定したうえで、Sonnet の行を含むすべての金額を 15% 引き下げます。

{
  "modelPricing": {
    "multiplier": 0.85,
    "overrides": {
      "claude-sonnet-4-6": {
        "input": 2.4,
        "output": 12,
        "cacheRead": 0.24,
        "cacheWrite": 3
      }
    }
  }
}

すべての金額を上乗せするには、multiplier を 1 より大きく 10 以下の値に設定します。上乗せには Claude Code v2.1.271 以降が必要です。それより前のバージョンでは、1 より大きい multiplier は警告付きで無視され、設定の残りは保持されます。

料金が有効になっていることを確認する方法を含む手順については、契約料金で支出を報告するを参照してください。

modelPricing のフィールド

フィールド 型 機能
multiplier 0 より大きく 10 以下の数値 overrides の行が対象としているかどうかにかかわらず、Claude Code が計算するすべてのコストをスケーリングします。1 未満は割引、1 より大きい値は上乗せです
overrides モデル ID から、input、output、cacheRead、cacheWrite(それぞれ 0 から 10000)を持つ料金オブジェクトへのマップ そのモデルの 100 万トークンあたりの USD 料金で、4 つすべてが必須です。cacheWrite は 5 分と 1 時間の両方のキャッシュ書き込みを対象とします。modelPricing の行が適用されるモデルを参照してください

Claude Code は、fast mode の追加料金や米国内のみでの推論の料金を加算せず、行の料金を記述したとおりに使用します。multiplier も設定している場合、Claude Code はそれを行の料金に重ねて適用します。Claude Code は、解析できない料金を持つ行や、解析できない multiplier を削除し、残りを保持します。壊れた設定ファイルを修正するを参照してください。

modelPricing の行が適用されるモデル

Claude Code は、行のキーからその行がどのモデルに適用されるかを判断します。

  • 組み込みモデルの ID: Claude Code 自身が組み込みモデルに使用するキーで、claude-sonnet-4-6 のようなモデル自体の ID であるか、Bedrock、Agent Platform、Foundry の ID であるかは問いません。Claude Code は、そのモデルのすべての日付付きスナップショット ID とプロバイダー固有の ID にその行を適用します。
  • その他のキー: ゲートウェイのモデルエイリアスなど、組み込みモデルの ID ではないキー。Claude Code はその 1 つの ID にのみ行を適用します。モデル ID がいずれかのキーに完全に一致し、かつ組み込みモデルの ID をキーとする行にも該当する場合、Claude Code は完全一致を使用します。
  • Bedrock のアプリケーション推論プロファイル: Claude Code が modelOverrides マップまたは bedrock:GetInferenceProfile による検索を通じて、プロファイルをルーティング先のモデルに解決すると、Claude Code はそのモデルの行をプロファイルに適用します。

modelSettings

使用するモデルごとに effort レベルを保存します。Claude Code v2.1.251 以降が必要です。

自分のマシン上の対話セッションで、/effort または /model ピッカーの effort スライダーを使って low、medium、high、xhigh をデフォルトとして保存すると、Claude Code は使用中のモデルの下にそのレベルをここに書き込むため、このキーを自分で編集することはほとんどありません。VS Code 拡張機能のモデルピッカーでこれらのレベルのいずれかを選択した場合も、Claude Code は同じようにここに保存します。/effort がそのセッションにのみ適用されるセッションについては、effortLevel のエントリに記載しています。

保存したレベルを変更または削除するには、このキーを手動で編集します。

ここでのモデルの effortLevel は、同じ設定ファイル内のトップレベルの effortLevel よりも優先されます。ファイル間では、Claude Code はモデルごとに個別に解決します。そのモデルの effortLevel、またはそのモデルに適用されるトップレベルの effortLevel のいずれかを設定している、最も優先順位の高い設定ファイルが決定するため、管理設定の effortLevel はユーザー設定に保存したレベルよりも優先されます。起動時の --effort など、保存されたレベルを上書きできるその他の要素については、effort レベルを調整するに記載しています。

1 つのモデルのレベルを設定するのではなく effort に上限を設けるには、そのモデルのエントリに maxEffortLevel フィールドを追加します。このフィールドには Claude Code v2.1.267 以降が必要です。

  • スコープ: Any file
  • 型: モデル名を、次のいずれかのフィールドを持つオブジェクトにマッピングするオブジェクト:
    • effortLevel: "low"、"medium"、"high"、"xhigh" のいずれか
    • maxEffortLevel: モデルが実行できる最も高い effort レベル
    • autoCompactWindow: 100000 から 1000000 までのトークン数、またはモデル向けに調整されたウィンドウを表す "auto"。/autocompact はここに保存します。そのモデルについては、この値が同じ設定ファイル内のトップレベルの autoCompactWindow よりも優先されます。Claude Code v2.1.288 以降が必要です
  • デフォルト: 未設定

Claude Code は各エントリを claude-opus-5-5 のようなモデルの正規名の下に書き込み、そのモデルのエイリアス、日付サフィックス付き、[1m]、および認識されたプロバイダー固有の ID を同じエントリに照合します。

この例では、他のモデルがそれぞれ保存済みまたはデフォルトのレベルを使用する一方で、Opus 5.5 を high に保ちます。

{
  "modelSettings": {
    "claude-opus-5-5": {
      "effortLevel": "high"
    }
  }
}

使用中のモデルについて保存したレベルをクリアするには、/effort auto を実行します。Claude Code は、他のエントリとトップレベルの effortLevel をそのまま残します。

outputStyle

名前で出力スタイルを選択します。出力スタイルとは、Claude の役割、トーン、出力形式を変更する指示の保存済みセットで、組み込みの Explanatory スタイルや Learning スタイル、または自分で作成したスタイルなどがあります。

セッション中にこのキーを変更すると、Claude は次のメッセージから新しいスタイルを使用します。そのメッセージのプロンプトキャッシュにおけるコストについては、出力スタイルの変更を参照してください。v2.1.251 より前は、変更は /clear を実行するか新しいセッションを開始した後にのみ適用されていました。

  • スコープ: Any file
  • 型: 文字列。組み込みまたはカスタムの出力スタイルの名前
  • デフォルト: 未設定。Claude Code はデフォルトのスタイルを使用します

この例では、タスクの合間に教育的な解説を追加する組み込みの Explanatory スタイルを選択します。

{
  "outputStyle": "Explanatory"
}

promptCacheTtl

プロンプトキャッシュがメインの会話を保持する期間を選択します。このキーは、対話、-p、および Agent SDK のターンと、それらとインラインで Claude Code が実行するヘルパーに適用されます。1 時間の有効期間では、長めの休憩をはさんでもキャッシュがウォームな状態に保たれますが、API は 5 分の有効期間よりも高い料金で各キャッシュ書き込みを請求します。Claude Code v2.1.242 以降が必要です。

この例では、メインの会話を 1 時間の有効期間に保ち、サブエージェントは 5 分のままにします。

{
  "promptCacheTtl": "1h",
  "subagentPromptCacheTtl": "5m"
}

各有効期間のコストについては、キャッシュの有効期間を参照してください。

showThinkingSummaries

対話セッションで Claude の拡張思考の要約を表示します。Ctrl+O で思考を展開したときに完全な要約を表示したい場合に設定します。未設定または false の場合、Anthropic API は思考ブロックを編集済み(非表示)にし、Claude Code は折りたたまれたスタブを表示します。

  • スコープ: Any file
  • 型: Boolean
    • true: Ctrl+O で思考を展開すると、完全な思考の要約が表示されます
    • false: Anthropic API は思考ブロックを編集済み(非表示)にし、Claude Code は折りたたまれたスタブを表示します
  • デフォルト: false
{
  "showThinkingSummaries": true
}

編集による非表示化で変わるのは表示内容だけであり、モデルが生成する内容は変わりません。思考の費用を削減するには、代わりに予算を下げるか思考を無効にします。

subagentPromptCacheTtl

Claude Code がメインの会話の外で行うリクエストをプロンプトキャッシュが保持する期間を選択します。このキーは、サブエージェント、ワークフロー、およびコンテキスト圧縮やセッションタイトルなど、Claude Code 自身のバックグラウンドリクエストとヘルパーリクエストに適用されます。1 時間の有効期間では、長めの休憩をはさんでもキャッシュがウォームな状態に保たれますが、API は 5 分の有効期間よりも高い料金で各キャッシュ書き込みを請求します。Claude Code v2.1.242 以降が必要です。

この例では、サブエージェントとメインの会話の外で行われるその他のリクエストに 1 時間の有効期間を与えます。

{
  "subagentPromptCacheTtl": "1h"
}

このキーは promptCacheTtl が対象としないリクエストをカバーするため、両方を設定すると Claude Code が行うすべてのリクエストの有効期間を選択できます。サブエージェントのキャッシュがメインの会話のキャッシュとどのように異なるかについては、サブエージェントとキャッシュを参照してください。

switchModelsOnFlag

安全性分類器がリクエストを警告したときの動作を選択します。フォールバックモデルに切り替えて続行するか、一時停止して切り替えるかプロンプトを編集するかを選べるようにするかのいずれかです。

  • スコープ: Any file。/config では Switch models when a message is flagged として表示され、オプションは Switch automatically と Ask each time です。
  • 型: Boolean
    • true: Claude Code はフォールバックモデルに切り替えて続行します
    • false: 対話セッションでは、Claude Code は一時停止し、切り替えるかプロンプトを編集するかを選べるようにします。-p の実行など、ダイアログを表示できない場合は、警告されたリクエストはエラーとして終了します
  • デフォルト: 未設定。Claude Code は自動的に切り替えますが、対話セッションでは先に確認する場合があります
{
  "switchModelsOnFlag": false
}

切り替える前に確認するを参照してください。

ultracode

ultracode をオンにした状態でセッションを開始します。オンにすると、Claude はユーザーからの依頼を待たずに、実質的なタスクごとにワークフローを計画します。Claude がワークフローを計画するのは、ユーザーに対して動的ワークフローが有効で、かつモデルが xhigh の effort をサポートしている場合のみです。このキーはセッションの effort レベルを変更しません。ultracode はセッションが使用しているレベルで実行されます。Claude Code はこのキーを読み取りますが、書き込むことはありません。/effort ultracode は現在のセッションに限り ultracode をオンにします。

  • スコープ: Any file
  • 型: Boolean
    • true: ユーザーに対して動的ワークフローが有効で、かつモデルが xhigh をサポートしている場合、セッションは ultracode がオンの状態で開始します
    • false: セッションは ultracode がオフの状態で開始します
  • デフォルト: 未設定。ultracode はオフです
  • セッションごとの上書き: /effort ultracode はこのキーなしで 1 つのセッションに限り ultracode をオンにし、/effort ultracode off はこのキーが true の場合に 1 つのセッションに限りオフにします。--effort ultracode フラグも、1 つのセッションに限り xhigh の effort で ultracode をオンにします
{
  "ultracode": true
}

セッションの effort レベルは、effortLevel、modelSettings、およびその他の effort のソースから決まります。maxEffortLevel などの effort の上限は、ultracode をオフにすることなくそのレベルを引き下げます。この動作と /effort ultracode off の形式には Claude Code v2.1.284 以降が必要です。v2.1.284 より前は、ultracode: true はセッションを xhigh の effort で実行し、xhigh 未満の effort の上限があると ultracode はオフのままでした。Agent SDK の apply_flag_settings コントロールリクエストもこのキーを受け付けます。

権限設定

Claude が何を確認なしで実行できるか、新しいセッションのデフォルトの権限モード、auto モードの分類器が何を許可するかを決定します。ルール構文と権限モデルについては、権限を設定するを参照してください。

allowManagedPermissionRulesOnly

管理設定を権限ルールの唯一の設定ソースにします。Claude Code はユーザー、プロジェクト、ローカル、および --settings ファイル内の allow、ask、deny ルールを無視し、--allowedTools を無視し、権限プロンプトで常に許可する選択肢を非表示にし、新しいルールの保存を停止します。

埋め込みホストからの親設定が適用される場合、Claude Code はそれらを管理層の一部として扱います。それらの allow ルールと additionalDirectories を削除し、deny および ask ルールは保持します。ただし、パターンが ! で始まる Read および Edit ルールは除きます。このキーを設定しているかどうかに関わらず、ホストは ! ルールで管理ルールからパスを除外することはできません。

--disallowedTools ルールと現在のセッションの deny および ask ルールは、Claude Code が設定をセッション中に再度読み込んだ後を含めて、引き続き適用されます。これらは制限のみを行うため、管理ルールが付与するものを拡大することはできません。v2.1.257 より前では、Claude Code は最初の設定再度読み込み時にそれらのコマンドラインおよびセッションルールを削除していました。

--disallowedTools またはセッションルール内の ! パターンが除外できるものについては、Read および Edit ルールを参照してください。

このキーを設定すると、Claude Code v2.1.282 以降では、次のソースにあるスキルおよび .claude/commands/ ファイルの allowed-tools フロントマターも無視されます。

管理設定からのスキルとバンドルスキルは allowed-tools を保持します。これらの Desktop セッション外の @inline プラグインも、anthropic-skills という名前のものを除き、それを保持します。スキルの disallowed-tools は引き続き適用されます。Claude Code がこのフィールドを無視したときに開発者に何が表示されるかについては、管理権限ルールのみが適用される場合を参照してください。

  • スコープ: Managed
  • タイプ: ブール値
    • true: 管理設定が権限ルールの唯一の設定ソースになります
    • false: Claude Code は管理ルールに加えて、ユーザー、プロジェクト、ローカル、および --settings ファイルから権限ルールを適用します
  • デフォルト: 未設定。Claude Code はユーザー、プロジェクト、ローカル設定、および --settings から権限ルールを管理ルールに加えて適用します
{
  "allowManagedPermissionRulesOnly": true
}

このキーは MCP サーバーの許可リストをロックダウンしません。そのためには、allowManagedMcpServersOnlyを設定してください。管理のみの設定を参照してください。

autoMode

auto モードの分類器がブロックおよび許可するものに独自のルールを追加します。これを使用して、分類器に組織が信頼するリポジトリ、バケット、ドメインを伝え、日常的な内部操作のブロックを停止させます。分類器には組み込みの許可および拒否ルールが付属しています。リテラル文字列 "$defaults" を配列に含めて、それらの組み込みルールをその位置に保持し、その周りに独自のルールを追加します。省略すると、それらを独自のルールに置き換えます。

  • スコープ: User or managed
  • タイプ: environment、allow、soft_deny、hard_deny の散文ルール配列、および classifyAllShell ブール値を含むオブジェクト
  • デフォルト: 未設定。分類器は組み込みルールのみを使用します

この例は、"$defaults" を通じて組み込みの soft_deny ルールを保持し、terraform apply をブロックするルールを 1 つ追加します。

{
  "autoMode": {
    "soft_deny": ["$defaults", "Never run terraform apply"]
  }
}

これらのファイルの複数が同じ配列を設定する場合、Claude Code はエントリを連結します。ルール形式と各配列の適用方法については、auto モードを設定するを参照してください。

autoMode.classifyAllShell

auto モードがアクティブな間、すべての Bash および PowerShell コマンドを auto モードの分類器に通します。デフォルトでは、auto モードは任意のコードを実行できる許可ルールのみを一時停止します。具体的には、Bash(*) などのツール全体およびワイルドカードのルールと、Bash(python *) などのインタープリタまたはシェルラッパーのプレフィックスです。Bash(npm test) など、それ以外の許可ルールに一致するコマンドは、コマンドごとの許可ドメインを持たない限り分類器をスキップします。スキップした場合、ルールのプレフィックスが想定していなかった破壊的な引数が見過ごされたまま通過する可能性があります。このキーを設定すると、セッションのすべてのシェル許可ルールが一時停止され、分類器がすべてのコマンドを確認します。Claude Code v2.1.193 以降が必要です。

  • スコープ: User or managed。autoModeが読み取られる場所で読み取られます。
  • タイプ: ブール値
    • true: auto モードがアクティブな間、Claude Code はすべての Bash および PowerShell コマンドを分類器に通し、シェル許可ルールを一時停止します。auto モード外では、ルールは引き続き適用されます
    • false: auto モードは Bash(*) や Bash(python *) など、任意のコードを実行できる許可ルールのみを一時停止します。それ以外の許可ルールに一致するコマンドは、コマンドごとの許可ドメインを持たない限り分類器をスキップし、その他すべてのシェルコマンドは分類器を通ります
  • デフォルト: false
{
  "autoMode": {
    "classifyAllShell": true
  }
}

すべてのシェルコマンドを分類器にルーティングするを参照してください。

disableAutoMode

auto モードを Shift+Tab サイクルから削除します。--permission-mode auto、設定ファイル、または組み込みデフォルトからauto モードで開始する可能性があるセッションは、代わりに default で開始します。管理者は管理設定で設定して、組織内の開発者が auto モードを使用するのを防ぎます。

  • スコープ: Any file。管理設定で最も有用です。ユーザーはそれを上書きできません。permissions の下で permissions.disableAutoMode としても受け入れられます。
  • タイプ: 文字列 "disable"
  • デフォルト: 未設定
{
  "disableAutoMode": "disable"
}

permissions

Claude が確認なしで使用できるツール、プロンプトを表示するツール、ブロックされるツールを制御します。また、新しいセッションのデフォルトの権限モードも設定します。以下のすべての permissions.* キーはこのオブジェクトの下にネストされます。

  • スコープ: Any file
  • タイプ: allow、ask、deny、additionalDirectories、blockReadsOutsideWorkingDirectories、blockWritesOutsideWorkingDirectories、defaultMode、disableBypassPermissionsMode、disableAutoMode を含むオブジェクト
  • デフォルト: 未設定

この例は npm run コマンドを確認なしで承認し、git push の前にプロンプトを表示し、.env の読み取りをブロックし、セッションを acceptEdits で開始します。

{
  "permissions": {
    "allow": ["Bash(npm run *)"],
    "ask": ["Bash(git push *)"],
    "deny": ["Read(./.env)"],
    "defaultMode": "acceptEdits"
  }
}

3 つのルール配列は 1 つの構文を共有します。permissions.allow の下の権限ルール構文を参照してください。異なるファイルからの権限ルールがどのように結合されるかについては、スコープ全体での権限ルールのマージ方法を参照してください。一般的に設定キーがどのように結合されるかについては、設定ガイドの設定の優先順位を参照してください。

useAutoModeDuringPlan

Claude Code が plan モード中にシェルコマンドを確認するために auto モードの分類器を使用するかどうかを選択します。デフォルトの true では、auto モードが利用可能な場合、分類器は計画中に各コマンドを確認し、プロンプトは表示されません。ただし、重要パスの削除を除きます。false に設定すると、組み込みの読み取り専用セット外のすべてのコマンドに対して権限プロンプトが表示されます。/config に Use auto mode during plan として表示されます。

  • スコープ: User, local, or managed。リポジトリがこれをオフにすることはできません。
    • これらのファイルのいずれか、または --settings で false が設定されていると、オフになります。ただし、--setting-sources などのオプションでそのユーザーまたはローカルファイルを除外した場合は除きます。除外されたファイルを無視するには Claude Code v2.1.314 以降が必要です
  • タイプ: ブール値
    • true: 未設定と同じです。auto モードが利用可能な場合、分類器は計画中にシェルコマンドを確認します
    • false: 組み込みの読み取り専用セット外のすべてのコマンドに対して権限プロンプトが表示されます
  • デフォルト: true
{
  "useAutoModeDuringPlan": false
}

permissions.allow

Claude Code が確認なしで承認するツール使用をリストします。MCP ルールでは、* はツール名内の mcp__<server>__ プレフィックスの後にのみ使用できます(例:mcp__github__get_*)。サーバー名には使用できません。

  • スコープ: Any file
  • タイプ: 権限ルール文字列の配列
  • デフォルト: 未設定
  • セッションごとの上書き: --allowedTools は 1 つのセッションに許可ルールを追加しますが、任意の設定ファイルからの拒否ルールは、それが指定するツールを引き続きブロックします

この例は git diff を承認し、Claude Code が確認なしに .zshrc を読み取ることを許可します。

{
  "permissions": {
    "allow": ["Bash(git diff *)", "Read(~/.zshrc)"]
  }
}

Claude Code はプロジェクトの .claude/settings.json から allow ルールを適用するのは、そのフォルダのワークスペース信頼ダイアログを受け入れた後のみです。

権限ルール構文

権限ルールは Tool または Tool(specifier) の形式に従います。Claude Code は deny ルールを最初に評価し、次に ask、次に allow を評価し、各ルールの具体性に関係なく最初に一致したものが結果を決定します。権限ルール評価順序を参照してください。

各行は 1 つのルール形状とそれが一致するものを示します。

ルール 一致するもの
Bash すべての Bash コマンド
Bash(npm run *) npm run で始まるコマンド
Read(./.env) .env ファイルの読み取り
WebFetch(domain:example.com) example.com へのフェッチリクエスト

ワイルドカード動作、Read、Edit、WebFetch、MCP、Agent ルールのツール固有パターン、および Bash パターンのセキュリティ制限を含む完全なルール構文については、権限ルール構文を参照してください。

permissions.ask

acceptEdits や bypassPermissions など、本来であれば承認される権限モードであっても確認を求めるツール使用をリストします。dontAsk モードでは、Claude Code は一致するツール使用に対してプロンプトを表示する代わりに拒否します。

  • スコープ: Any file
  • タイプ: 権限ルール文字列の配列
  • デフォルト: 未設定
{
  "permissions": {
    "ask": ["Bash(git push *)"]
  }
}

permissions.deny

Claude Code がブロックするツール使用をリストします。API キー、シークレット、または環境値を保持するファイルに使用します。Claude Code は一致するファイルをファイル検出と検索結果から除外し、それらの読み取りを拒否し、一致するパスのEdit および Write ツールをブロックします。

Read および Edit 拒否ルールは Claude の組み込みファイルツール、Claude Code が Bash で認識するファイルコマンド(cat、head、tail、sed、tee など)、および > file や < file などの Bash リダイレクションのターゲットに適用されます。ファイル名を指定せずにファイルを読み取るコマンド(grep -r pattern . など)や任意のサブプロセスには適用されないため、OS レベルで強制するにはサンドボックスを有効にしてください。

  • スコープ: Any file
  • タイプ: 権限ルール文字列の配列
  • デフォルト: 未設定
  • セッションごとの上書き: --disallowedTools はこのキーと並行して 1 つのセッションに拒否ルールを追加します

この例は .env ファイル、secrets ディレクトリ、認証情報ファイルの読み取りを拒否し、curl コマンドをブロックします。

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Read(./config/credentials.json)",
      "Bash(curl *)"
    ]
  }
}

ツール名はグロブパターンを受け入れるため、"*" はすべてのツールを拒否し、"mcp__*" はすべての MCP ツールを拒否します。Claude Code は、他のツールがまだ Claude で利用可能である限り、EndConversationツールの拒否ルールを無視します。Bash 拒否ルールは Claude が書いたコマンドと一致するため、Bash(curl *) は /usr/bin/curl や sh -c 'curl …' を停止しません。Bash ルールが一致しないものを参照してください。このキーは非推奨の ignorePatterns 設定に置き換わるものです。

permissions.additionalDirectories

Claude に開始したディレクトリ外のディレクトリへのファイルアクセスを付与し、追加の作業ディレクトリとして使用します。ほとんどの .claude/ 設定は、これらのディレクトリから検出されません。

  • スコープ: Any file。ただし、プロジェクトおよびローカルのエントリが付与するサンドボックスの書き込みアクセスには制限があります
  • タイプ: ディレクトリパスの配列
  • デフォルト: 未設定
  • セッションごとの上書き: --add-dir および /add-dir はこのキーと並行して 1 つのセッションにディレクトリを追加します
{
  "permissions": {
    "additionalDirectories": ["../docs/"]
  }
}

allow ルールと同様に、プロジェクトの .claude/settings.json のエントリは、そのフォルダのワークスペース信頼ダイアログを受け入れた後にのみ有効になります。

permissions.blockReadsOutsideWorkingDirectories

bypassPermissions を含むすべての権限モードで、Claude のファイルツールが作業ディレクトリ外の読み取りを拒否するようにします。Claude Code はそれらのパスに対する Read、Grep、Glob、LSP の呼び出しを拒否し、/add-dir でディレクトリを追加するようユーザーに求めるよう Claude に指示します。Claude Code 自体が必要とするファイル(~/.claude/ の下のスキル、プラグイン、ルール、エージェント、コマンド、CLAUDE.md メモリファイルなど)は読み取り可能なままです。Claude Code v2.1.257 以降が必要です。

Claude Code はシェルコマンドを同じ方法では拒否しません。

シェルパーサーが追跡できない Bash コマンド(複数回ディレクトリを変更するものやサブシェルを実行するものなど)は、auto モードおよび bypassPermissions モードでもプロンプトを表示します。プロンプトは、コマンドが作業ディレクトリ外のパスを指定していない場合でも表示されます。このプロンプトは、コマンドがサンドボックスで実行され、サンドボックスがブロックを強制する場合には適用されません。

また、作業ディレクトリ外の最初の読み取り前に表示される auto モードのプロンプトでそのような読み取りをブロックすることを選択した場合も、Claude Code はここに true を書き込みます。

  • スコープ: Any file。いずれかのファイルの true が適用されるため、リポジトリは自身に対してブロックをオンにできますが、ユーザーが設定したブロックを解除することはできません。
  • タイプ: ブール値
    • true: Claude のファイルツールは作業ディレクトリ外の読み取りを拒否します
    • false: 未設定と同じです。別のファイルが true を設定している場合、ブロックは引き続き適用されます
  • デフォルト: 未設定。作業ディレクトリ外の読み取りは権限モードに従います
{
  "permissions": {
    "blockReadsOutsideWorkingDirectories": true
  }
}

ブロックを解除するには、それを設定しているすべての設定ファイルからキーを削除し、実行中の各セッションを再起動します。

--add-dir、/add-dir、またはユーザー設定や管理設定の additionalDirectories で追加したディレクトリは、ブロックにおいて作業ディレクトリとしてカウントされます。リポジトリ設定でのみ追加されたディレクトリはカウントされません。該当するのは .claude/settings.json のディレクトリと、git がそのファイルを未追跡として報告する場合を除く .claude/settings.local.json のディレクトリです。git リポジトリではないディレクトリ、または git がそのファイルを追跡している場合、Claude Code は .claude/settings.local.json をリポジトリ設定として扱うため、読み取り可能にしておきたいディレクトリは代わりにユーザー設定に配置してください。

autoMemoryDirectoryがプロジェクトの .claude/settings.json から、またはリポジトリ提供として扱われる.claude/settings.local.json から来る場合、Claude Code はそのディレクトリから自動メモリを読み込まず、そこに保存もしません。

ブロック下のサンドボックス化されたコマンド

サンドボックス化がオンの場合、ブロックはサンドボックス化されたコマンドにも適用されます。Claude Code はホームディレクトリおよびユーザーファイルを保持する他のルート(/Users、/home、/root、/Volumes、/mnt、/media、/run/media、/srv)への読み取りアクセスを拒否します。その後、作業ディレクトリ、Claude Code がセッション中に作成する worktree、セッションの一時ディレクトリ、およびコマンドが必要とする ~/.claude の部分(スキルやプラグインなど)を再度開きます。ブロックが有効な間、リポジトリ設定からの allowRead および allowWrite エントリはカウントされません。

セッションの作業ディレクトリがリンクされた git worktree である場合(Claude Code がセッション中に入ったものを含む)、リポジトリの共通 .git ディレクトリはサンドボックス化されたコマンドに対して読み取り可能および書き込み可能なままなので、git はそこで引き続き機能します。

次の場合、ブロックはサンドボックス化されたコマンドには及びませんが、Claude のファイルツールは引き続きそれを強制します。

  • ファイルシステム分離が sandbox.filesystem.disabled によってオフになっている
  • allowManagedReadPathsOnly が設定されている
  • Claude Code を開始したディレクトリのパスに *、?、[ などのグロブ文字が含まれている

ブロック下で、Claude Code はサンドボックス化されたコマンドに対してグローバル git 設定ファイルを再度開くため、git はユーザーのアイデンティティと設定を保持します。

  • ~/.gitconfig
  • $XDG_CONFIG_HOME/git の下の config、ignore、attributes ファイル(デフォルトは ~/.config/git)
  • グローバル git 設定が [include]、[includeIf]、core.excludesFile、core.attributesFile を通じて指定するファイル

Claude Code は各ファイルを個別に判断します。ファイルが、サンドボックス化されたコマンドが直接またはシンボリックリンクを通じて書き込める場所にある場合、Claude Code はそのファイルが指定するファイルを再度開きません。

Linux および WSL2 では、シンボリックリンクである設定ファイルはそれ自身のパスで読み取り不可のままになることがあり、その場合 git はそのファイルなしで実行されます。~/.git-credentials および $XDG_CONFIG_HOME/git/credentials はブロックされたままです。

再度開いたファイルがシークレット(http.extraHeader トークンなど)を保持する場合、そのパスを sandbox.filesystem.denyRead に追加してください。ファイルをカバーする denyRead エントリは、常にこの再度開く処理より優先されます。

permissions.blockWritesOutsideWorkingDirectories

bypassPermissions を含むすべての権限モードで、Write、Edit、NotebookEdit ツールが作業ディレクトリ外のパスを拒否するようにします。ただし、Claude Code 自身の一部のファイルは除きます。このキーは、シェルコマンド、MCP ツール、またはフックが実行するプログラムを制限しません。シェルコマンドの書き込み先を制限するには、サンドボックス化をオンにしてください。Claude Code v2.1.314 以降が必要です。

このキーがオンになると、Claude Code は EnterWorktree および ExitWorktree ツールも削除するか、それらへの呼び出しを拒否します。worktree での作業を続けるには、Claude に EnterWorktree ツールがないの手順に従ってください。

  • スコープ: Any file。セッションが読み込むいずれかのファイルの true が適用されるため、リポジトリは自身に対してブロックをオンにできますが、ユーザーが設定したブロックを解除することはできません。クラウドセッションでは、ファイルツールがそれ自体が境界となるコンテナ内で実行されるため、Claude Code がこのキーを適用しない場合があります。
  • タイプ: ブール値
    • true: ブロックをオンにします
    • false: 未設定と同じです。別のファイルが true を設定している場合、ブロックは引き続き適用されます
  • デフォルト: 未設定。作業ディレクトリ外への書き込みは権限モードに従います。Claude Code が管理設定の permissions オブジェクトを読み取れない間も、ブロックはオンになります。
{
  "permissions": {
    "blockWritesOutsideWorkingDirectories": true
  }
}

ブロックをテストするには、作業ディレクトリ外にファイルを作成するために Write ツールを使用するよう Claude に依頼します(ホームディレクトリが作業ディレクトリに含まれていない場合は ~/block-test.txt など)。Claude Code はその呼び出しを拒否し、拒否メッセージには設定によって作業ディレクトリ外への書き込みがブロックされていることが示されます。

ブロックを解除するには、それを設定しているすべての設定ファイルからキーを削除し、Claude Code を再起動します。

書き込みブロックが拒否するものと書き込み可能なままのもの

Claude Code 自身の一部のファイルは書き込み可能なままです。たとえば、プランファイル、スクラッチパッド、バックグラウンドセッションの tmp ディレクトリ、このプロジェクトの自動メモリ内の .md ファイルなどです。

作業ディレクトリ外にあるユーザー自身のファイルに加えて、ブロックは次への書き込みを拒否します。

  • Claude Code の設定ファイル: 設定ファイルはブロックを解除できるため、Claude Code は作業ディレクトリ内でもこれらの書き込みを拒否します。設定ファイルはユーザー自身で編集してください。
  • リポジトリ設定のみが追加するディレクトリ: additionalDirectories が .claude/settings.json のみ、または git がそのファイルを未追跡として報告する場合を除き .claude/settings.local.json のみでリストしているディレクトリ
  • サブエージェントの worktree: isolation: worktree サブエージェントの worktree が作業ディレクトリ外にある場合、そのファイル編集は拒否されます
  • リポジトリが選択したディレクトリ内の自動メモリ: リポジトリ設定で autoMemoryDirectory が指定するディレクトリ

何を追加しても、設定ファイルへの書き込みは拒否されたままです。それ以外のいずれかのケースで書き込みを通すには、作業ディレクトリを追加します。/add-dir には存在するディレクトリが必要なため、サブエージェントの worktree については、リポジトリルートの .claude/worktrees ディレクトリを指定してください。

読み取りまたは書き込みのブロックに 1 つのディレクトリを通す

blockReadsOutsideWorkingDirectories または blockWritesOutsideWorkingDirectories が true の間に Claude がプロジェクト外の 1 つのディレクトリにアクセスできるようにするには、そのディレクトリを作業ディレクトリとして追加します。セッション内で /add-dir <directory> を実行するか、Claude Code の開始時に --add-dir <directory> を渡すか、ユーザー設定または管理設定の additionalDirectories にリストしてください。どちらのブロックについても、Claude のファイルツールを通過させる許可ルールはありません。

permissions.defaultMode

新しいセッションのデフォルトの権限モードを設定します。未設定のままにすると、使用しているサーフェスの組み込みデフォルトが適用されます。

  • スコープ: Any file。auto および bypassPermissions はプロジェクトまたはローカル設定からは有効にならないため、代わりに ~/.claude/settings.json で設定してください。v2.1.257 より前では、bypassPermissions は任意のファイルから有効になりました。VS Code 拡張機能が開始する会話の場合、Claude Code はユーザー、管理、および --settings の値のみを読み取ります。
  • タイプ: 文字列。次のいずれか:
    • "default": Claude Code は確認なしで読み取りのみを実行します
    • "acceptEdits": Claude Code は確認なしでファイル編集と mkdir や mv などの一般的なファイルシステムコマンドも実行します
    • "plan": Claude Code は読み取りと計画を行いますが、計画を承認するまで編集をブロックします
    • "auto": Claude Code は日常的なプロンプトなしで実行します。シェルコマンドやネットワークリクエストなどのアクションが実行される前に、バックグラウンドの分類器がそれらがユーザーのリクエストに沿っているかを確認します
    • "dontAsk": Claude Code はプロンプトを表示するはずのすべての呼び出しを自動的に拒否します。ただし、インストールした mod はそれらの呼び出しの一部を引き続き承認できます。作業ディレクトリ内のファイル読み取り、承認が不要な他のアクション、事前承認されたツールは引き続き実行されます。ただし、ネットワークパスからの読み取りは除きます
    • "bypassPermissions": Claude Code はすべてを確認なしで実行します
    • "manual": "default" のエイリアス
  • デフォルト: 未設定
  • セッションごとの上書き: --permission-mode、および bypassPermissions に相当する --dangerously-skip-permissions は、1 つのセッションにおいてこのキーより優先されます
{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

権限ルールはすべてのモードの上に重ねて適用されます。deny ルールは bypassPermissions を含むすべてのモードでブロックします。権限モードを参照してください。クラウドセッションでは、Claude Code はこのキーのうち acceptEdits、plan、default、auto のみを尊重します。VS Code 拡張機能が開始する会話については、拡張機能が開始権限モードとして読み取る設定を参照してください。

permissions.disableBypassPermissionsMode

誰も bypassPermissions モードに入れないようにします。Claude Code は --dangerously-skip-permissions フラグを拒否し、エージェント定義の permissionMode: bypassPermissions を無視するため、サブエージェントは親セッションの権限モードで実行されます。

  • スコープ: Any file。通常、組織のポリシーを強制するために管理設定で設定します。
  • タイプ: 文字列 "disable"
  • デフォルト: 未設定
  • セッションごとの上書き: このキーは --dangerously-skip-permissions より優先されます。キーが設定されている間、Claude Code はそのフラグを拒否します
{
  "permissions": {
    "disableBypassPermissionsMode": "disable"
  }
}

v2.1.223 より前では、Claude Code はバイパスが無効になっていてもフロントマターの権限モードを適用していました。

skipAutoPermissionPrompt

組み込みデフォルトによってセッションが auto モードで開始された場合ではなく、ユーザー自身の設定やモードセレクターなどを通じて初めて auto モードに入ったときに Claude Code が表示する、auto モードを説明する 1 回限りの通知をスキップします。Claude Code はその通知を 1 回表示した後、表示済みであることを記録するため、このキーは通知がまだ表示されていない場合にのみ意味を持ちます。

  • スコープ: User or managed。リポジトリがこれを設定することはできません。
  • タイプ: ブール値
    • true: Claude Code は通知をスキップします
    • false: 未設定と同じです。これらのファイルのいずれかが true を設定しない限り、通知が 1 回表示されます
  • デフォルト: 未設定。通知が 1 回表示されます
{
  "skipAutoPermissionPrompt": true
}

skipDangerousModePermissionPrompt

--dangerously-skip-permissions からか defaultMode: "bypassPermissions" からかに関わらず、セッションが bypassPermissions モードに入る前に Claude Code が表示する確認ダイアログをスキップします。そのダイアログを一度受け入れると、Claude Code はユーザー設定のこのキーに true を書き込みます。

  • スコープ: User, local, or managed。信頼されていないリポジトリがダイアログをスキップさせることはできません。
  • タイプ: ブール値
    • true: Claude Code はセッションが bypassPermissions モードに入る前の確認ダイアログをスキップします
    • false: 未設定と同じです。これらのファイルのいずれかが true を設定しない限り、ダイアログが表示されます
  • デフォルト: 未設定。ダイアログが表示されます
{
  "skipDangerousModePermissionPrompt": true
}

サンドボックス設定

Claude が実行するコマンドをファイルシステム、ネットワーク、認証情報から分離します。サンドボックスの仕組みとプラットフォーム要件については、サンドボックスを参照してください。

sandbox

サンドボックスを使用して、Claude が実行する Bash コマンドをファイルシステムとネットワークから分離します。enabled でサンドボックスをオンにしてから、filesystem、network、credentials サブオブジェクトを使用して、サンドボックス化されたコマンドが何にアクセスできるかを制限または拡大します。サンドボックスは macOS、Linux、WSL2 で実行されます。

  • Scope: Any file
  • 型: enabled、failIfUnavailable、autoAllowBashIfSandboxed、excludedCommands、allowUnsandboxedCommands、enableWeakerNestedSandbox、enableWeakerNetworkIsolation、allowAppleEvents、allowNestedUserNamespaces、bwrapPath、socatPath、ignoreViolations、ripgrep に加え、filesystem、network、credentials の各オブジェクトを持つオブジェクト
  • Default: 未設定。Claude Code はサンドボックスなしでコマンドを実行します

これはサンドボックスをオンにし、サンドボックス化されたコマンドの権限プロンプトをスキップし、docker をサンドボックスの外で実行し、2 つの追加の書き込みパスを開き、AWS 認証情報ファイルを非表示にし、GitHub と npm を事前に許可します:

{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": true,
    "excludedCommands": ["docker *"],
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"],
      "denyRead": ["~/.aws/credentials"]
    },
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}

管理設定が enabled や failIfUnavailable などのブール値キーを設定した場合、その値は開発者が設定したものをすべて上書きします。Claude Code は配列キーをセッションが読み込む設定スコープ全体でマージするため、開発者はエントリを追加できます。管理設定専用のロックについては、ポリシーの拡大を開発者に防止させるを参照してください。組織に対してサンドボックスを必須にするには、管理設定でサンドボックスを強制するを参照してください。

sandbox.enabled

Bash コマンドのサンドボックスをオンにします。/sandbox パネルでモードを選択すると、Claude Code はこのキーを現在のプロジェクトの .claude/settings.local.json に書き込みます。~/.claude/settings.json に設定して、すべてのプロジェクトをサンドボックス化します。

{
  "sandbox": {
    "enabled": true
  }
}

Linux と WSL2 では、サンドボックスは bubblewrap と socat が必要です。Linux と WSL2 をセットアップするを参照してください。サンドボックスが起動できない場合、failIfUnavailable も設定していない限り、Claude Code はコマンドをサンドボックスなしで実行します。

sandbox.failIfUnavailable

sandbox.enabled が true であるにもかかわらず、プラットフォームが非対応であるか依存関係チェックが失敗したためにサンドボックスを起動できない場合に、Claude Code を起動時にエラーで終了させます。このキーがない場合、Claude Code はサンドボックスなしでコマンドを実行します。セキュリティゲートとしてサンドボックス化を必須とする管理されたデプロイでは、この設定を使用できます。

サンドボックスがサポートしていないプラットフォームでは、このキーがオンの場合、Claude Code は起動しません。管理設定でサンドボックスを強制するを参照してください。

次の例では、管理対象のマシンでサンドボックスをオンにし、failIfUnavailable を true に設定します。

{
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true
  }
}

管理設定でサンドボックスを強制するを参照してください。

sandbox.autoAllowBashIfSandboxed

Claude Code がサンドボックス化された Bash コマンドを権限プロンプトなしで実行できるようにします。サンドボックスで実行できないコマンドは通常の権限フローを通過し、deny ルールと Bash(git push *) などのコンテンツスコープ付き ask ルールは引き続き適用されます。ベアの Bash ask ルールはサンドボックス化されたコマンドではスキップされます。これを false に設定して、サンドボックス化されたコマンドも通常の権限フローを通すようにします。これは /sandbox Mode タブが通常権限モードと呼ぶものです。

  • Scope: Any file
  • Type: ブール値
    • true: Claude Code はサンドボックス化された Bash コマンドを権限プロンプトなしで実行します。ただし、自動許可モードで説明されているケースを除きます。CLAUDE_CODE_SUBPROCESS_ENV_SCRUB は自動許可をオフにします
    • false: サンドボックス化されたコマンドは通常の権限フローを通過するため、許可ルールと権限モードが決定します。/sandbox Mode タブはこれを通常権限モードと呼びます
  • Default: true

これはサンドボックスをオンに保ち、サンドボックス化されたコマンドを通常の権限フローを通します:

{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": false
  }
}

自動許可モードで引き続きプロンプトが表示される操作と、plan モードでの動作については、自動許可モードを参照してください。

sandbox.excludedCommands

Claude Code がサンドボックスの外で実行するコマンド(サンドボックスで動作しないツールなど)に名前を付けます。各エントリは、Bash(...) 権限ルールの内容と同じ構文を使用します:正確なコマンド、docker * などのプレフィックス、またはワイルドカードパターン。ワイルドカードを含まないパターンは完全一致となるため、docker は引数なしの docker にのみ一致します。

エントリは、Bash 呼び出しのすべてのコマンドをカバーする場合にのみ、Bash 呼び出しをサンドボックスから外します。一部の呼び出し形式はそれでもサンドボックス化されたままです。docker * エントリだけでは、npm ci && docker build . をサンドボックスから外しません。

{
  "sandbox": {
    "excludedCommands": ["docker *"]
  }
}

Claude Code は、Bash 呼び出しが以下のような形状のいずれかを持つ場合、その呼び出しをサンドボックス化したままにします:

  • sudo、eval、または xargs で始まるコマンド
  • cd、pushd、または popd(呼び出しのどこにでも出現)
  • コマンド置換、サブシェル、または if や for などの制御フロー ブロック
  • docker build . > build.log や <<EOF ヒアドキュメントなどのリダイレクト(ただし 2>&1 のようにファイルディスクリプタを複製するだけのものを除く)
  • 変数から来るコマンド名
  • パス引数が絶対パスである、~ で始まる、または .. セグメントを含む git clone、git init、git worktree add、git worktree move、または git bundle create

たとえば、cd build && docker compose up は docker * エントリの下でサンドボックス化されたままであり、cd エントリを追加してもそれは変わりません。git * エントリの下では、git clone <url> vendor/lib はサンドボックスの外で実行されますが、git clone <url> ~/tools はサンドボックス化されたままです。クローンは、宛先パスが指す場所に、実行可能なものを含む可能性のあるファイルツリー全体を書き込みます。

除外されたコマンドも通常の権限フローを通過します。除外は便宜的なものであり、セキュリティ境界ではありません。ツールが特定の場所にのみ書き込む必要がある場合は、filesystem.allowWrite を使えばサンドボックス化されたままにできます。

サンドボックスが管理者必須でない限り、セッションが読み込む設定スコープのエントリは 1 つのリストに結合されます。管理者必須の間、Claude Code は .claude/settings.json と .claude/settings.local.json のエントリを無視するため、クローンしたリポジトリがコマンドをサンドボックスの外に出すことはできません。管理設定、--settings、および ~/.claude/settings.json のエントリは引き続き適用され、このリストに対する管理設定専用のロックはありません。

sandbox.allowUnsandboxedCommands

サンドボックスによってブロックされた後、Claude が dangerouslyDisableSandbox パラメータを使用してコマンドをサンドボックスの外で再試行できるようにします。false の場合、Claude Code はそのパラメータを無視します。その結果、サンドボックスの実行中は、Claude が実行するコマンドは excludedCommands のエントリに一致しない限りサンドボックス化されます。/sandbox Overrides タブはその状態を厳密なサンドボックスモードとして表示します。管理設定で false にすると、その対象となる開発者に対して厳密なサンドボックスモードがオンになります。

  • Scope: Any file(プロジェクト設定とローカル設定には制限あり)
  • Type: ブール値
    • true: Claude がサンドボックスによってブロックされた後、dangerouslyDisableSandbox パラメータを使用してコマンドをサンドボックスの外で再試行できます
    • false: Claude Code はそのパラメータを無視するため、サンドボックスの実行中は、Claude が実行するコマンドは excludedCommands のエントリに一致しない限りサンドボックス化されます
  • Default: true

これにより、管理設定がカバーするすべてのユーザーに対して厳密なサンドボックスモードが強制されます:

{
  "sandbox": {
    "enabled": true,
    "allowUnsandboxedCommands": false
  }
}

管理設定または --settings からの false は、サンドボックスを管理者必須にもします。ユーザー設定の false はプロジェクトの true よりも優先されますが、サンドボックスを管理者必須にはしません。プロジェクトの値よりも優先させるには Claude Code v2.1.285 以降が必要です。

サンドボックスなしの再試行を誰が承認するかは、権限モードと許可ルールによって決まります。サンドボックスなしの再試行エスケープハッチを参照してください。

! シェルモードプロンプトで自分で入力するコマンドがサンドボックス化されるときを確認するには、厳密なサンドボックスモードを参照してください。

sandbox.filesystem

サンドボックス化されたコマンドが読み取りおよび書き込みできるパスを制御します。デフォルトでは、作業ディレクトリ、ユーザーごとの一時ディレクトリ、--add-dir、/add-dir、または permissions.additionalDirectories で追加したディレクトリに書き込むことができ、認証情報ファイルを含むファイルシステムの残りの部分を読み取ることができます。4 つのパスリストで制限または拡大するか、disabled でファイルシステムレイヤーをオフにします。ファイルシステム分離のデフォルト境界を参照してください。

  • Scope: Any file
  • Type: allowWrite、denyWrite、denyRead、allowRead 配列を含むオブジェクト、および allowManagedReadPathsOnly と disabled ブール値
  • Default: 未設定。デフォルトの読み取りおよび書き込み境界が適用されます

これにより、サンドボックス化されたコマンドはビルドディレクトリと kubeconfig に書き込むことができ、AWS 認証情報ファイルを非表示にします:

{
  "sandbox": {
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"],
      "denyRead": ["~/.aws/credentials"]
    }
  }
}

Claude Code はこれらのリストを OS サンドボックス境界で強制するため、kubectl、terraform、npm などのサンドボックス化されたコマンドが開始するすべてのサブプロセスに適用されます。Claude Code は権限ルールを同じリストに追加します:Edit 許可および拒否ルールを allowWrite および denyWrite に、Read 拒否ルールを denyRead に、WebFetch(domain:...) 許可および拒否ルールをnetworkドメインリストに追加します。

ロックが適用されない限り、Claude Code はセッションが読み込む設定ファイル全体でこれらのリストをマージします。allowManagedReadPathsOnlyは allowRead を管理設定からのエントリに制限し、allowManagedDomainsOnlyは許可されたドメインに対して同じことを行います。リポジトリロックは、リポジトリの設定ファイルからのエントリを除外します。

サンドボックスを設定するは、--setting-sources で除外するソースをカバーしています。セッション中にリストを編集すると、Claude Code は実行中のセッションに変更を適用します。

サンドボックスパスプレフィックス

allowWrite、denyWrite、denyRead、allowRead、および credentials.files のパスはプレフィックスで解決されます:

プレフィックス 意味 例
/ ファイルシステムルートからの絶対パス /tmp/build は /tmp/build のままです
~/ ホームディレクトリに相対 ~/.kube は $HOME/.kube になります
./ またはプレフィックスなし プロジェクト設定ではプロジェクトルートに相対、ユーザー設定では ~/.claude に相対 .claude/settings.json の ./output は <project-root>/output に解決されます

絶対パスの //path プレフィックスも機能します。プロジェクト相対解決を期待して単一スラッシュ /path を使用する場合は、./path に切り替えます。この構文は、//path を絶対パスに、/path をプロジェクト相対に使用するRead および Edit 権限ルールとは異なります。サンドボックスファイルシステムパスは標準規則を使用するため、/tmp/build は絶対パスです。

Claude Code はディレクトリパスから末尾のスラッシュを削除するため、~/.aws と ~/.aws/ は同じディレクトリと一致します。v2.1.224 より前では、Claude Code は末尾のスラッシュをサンドボックスに渡していたため、末尾のスラッシュ付きで記述された denyRead または denyWrite エントリの下のパスを、Claude が引き続き読み取りまたは書き込みできました。

サンドボックスパスでワイルドカードが機能する場所

ワイルドカード *、?、** は、macOS では 4 つの sandbox.filesystem パスリストすべてで機能しますが、Linux と WSL2 では機能する場所が限られます:

sandbox.filesystem リスト Linux と WSL2 で機能するもの Linux と WSL2 で機能しない例 代わりに記述するもの
denyRead、allowRead 末尾の /** は機能するため、~/build/** は ~/build と同じディレクトリを対象とします。その他のワイルドカードは、エントリのフルパスの最初のディレクトリ名より後でのみ機能します。 denyRead 内の /**/*.pem は何も対象としないため、読み取りをブロックしません /srv/**/*.pem のように、トップレベルディレクトリごとに 1 つのエントリ
allowWrite、denyWrite 末尾の /** のみが機能するため、~/build/** は ~/build と同じディレクトリを対象とします ./src/* は src 内にある * という名前のファイルまたはディレクトリのみを対象とし、それが存在しない場合は何も対象としません src 配下のすべてを対象とする ./src、またはパスごとに 1 つのエントリ

~/keys/*.pem では、ワイルドカードは最初のディレクトリ名より後にあります。ホームディレクトリが /home/alice の場合、最初のディレクトリ名は home です:

~/keys/*.pem              the entry
/home/alice/keys/*.pem    its full path
 ^^^^                     the first directory name, home

Linux と WSL2 では、セッション内の /sandbox の Config タブに、末尾の /** 以外のワイルドカードを含む Edit 権限ルールについての警告が表示されます。それらのワイルドカードは、サンドボックス化されたコマンドには機能しません。ルールが対象とすべき各パス、またはそれらを含むディレクトリを、許可ルールの場合は allowWrite に、拒否ルールの場合は denyWrite に追加してください。

角括弧、波括弧、丸括弧を含むディレクトリ名

名前に角括弧を含むディレクトリを許可またはブロックするには、./app/[slug] のように名前をそのまま記述します。このエントリでは、[slug] は角括弧を含めてディレクトリの実際の名前です:

app/
└── [slug]/
    └── page.tsx

このエントリはディレクトリ配下のすべてを対象とするため、末尾の /** は付けないでください。macOS、Linux、WSL2 では、サンドボックス化されたコマンドの起動時に app/[slug] ディレクトリが存在している必要があります。

  • [slug] のような角括弧: macOS ではすべてのリストで、Linux と WSL2 では denyRead と allowRead で、./app/[slug] の角括弧はパターンとしても扱われます。その場合、このエントリは app/s や app/g など、app 配下にある、slug のうち 1 文字を名前とするパスにも一致します。このエントリが allowRead にある場合、または macOS で allowWrite にある場合、サンドボックス化されたコマンドはそれらのパスにもアクセスできます。アクセスさせるべきでないものは名前を変更してください。
  • [user-id] や [post-id] のように、ハイフンの左側の文字が右側の文字より後にソートされる角括弧: ./app/[user-id] は、すべてのプラットフォームのすべてのリストで、その名前と完全に一致するディレクトリのみを対象とします。v2.1.304 より前は、denyRead または allowRead にそのようなエントリがあると、Linux と WSL2 でサンドボックス化されたコマンドの起動に失敗していました。
  • 波括弧と丸括弧: これらは通常の文字であるため、~/data/{keys,tokens} は 2 つの選択肢ではなく、{keys,tokens} という名前の 1 つのディレクトリを対象とします。~/data/keys と ~/data/tokens を対象とするには、それぞれを個別のエントリとして追加してください。

sandbox.filesystem.allowWrite

作業ディレクトリ、ユーザーごとの一時ディレクトリ、--add-dir、/add-dir、または permissions.additionalDirectories で追加したディレクトリを超えて、サンドボックス化されたコマンドが書き込むことができるパスを追加します。kubectl やビルドツールなどのサブプロセスがプロジェクト外に書き込む必要がある場合に使用します。

これにより、ビルドは /tmp/build の下に書き込むことができ、kubectl は kubeconfig を更新できます:

{
  "sandbox": {
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"]
    }
  }
}

Claude Code は allowWrite エントリと Edit(...) 許可権限ルールからのパスをセッションが読み込むすべての設定スコープ全体でマージし、permissions.blockReadsOutsideWorkingDirectoriesがオンの間、リポジトリ設定からのものを除外します。リポジトリロックによってリポジトリのエントリが除外されることもあります。allowWrite エントリは保護されたパスを解除できません。

sandbox.filesystem.denyWrite

サンドボックス化されたコマンドが特定のパスへの書き込みをブロックします。これには、別の方法で書き込み可能なディレクトリ内のパスが含まれます。

これにより、サンドボックス化されたコマンドがシステム設定を変更したり、バイナリをインストールしたりするのを防ぎます:

{
  "sandbox": {
    "filesystem": {
      "denyWrite": ["/etc", "/usr/local/bin"]
    }
  }
}

Claude Code はセッションが読み込むすべての設定スコープ全体でエントリをマージし、Edit(...) 拒否権限ルールからのパスを追加します。

sandbox.filesystem.denyRead

サンドボックス化されたコマンドが特定のパス(デフォルトの読み取りポリシーが公開する認証情報ファイルなど)の読み取りをブロックします。認証情報ファイルを保護し、サンドボックスプロキシを通じて使用可能に保つには、代わりに sandbox.credentials を参照してください。

{
  "sandbox": {
    "filesystem": {
      "denyRead": ["~/.aws/credentials"]
    }
  }
}

Claude Code はセッションが読み込むすべての設定スコープ全体でエントリをマージし、Read(...) 拒否権限ルールからのパスを追加します。filesystem.disabledが true の場合、Claude Code はこれらのエントリを強制しません。

sandbox.filesystem.allowRead

denyReadがブロックする領域内の特定のパスの読み取りを再度開き、ワークスペースのみの読み取りアクセスを構築します。正確またはワイルドカード denyRead エントリは、より広い allowRead 内でブロックされたままです。重複テーブルが示すとおりです。ワイルドカード denyRead エントリ(~/**/.env など)がディレクトリと一致する場合、Claude Code はその内容の読み取りもブロックします。v2.1.236 より前の macOS では、Claude Code はワイルドカード denyRead エントリが一致したパスを、より広い allowRead エントリがカバーしている場所で再度開き、一致したディレクトリの内容を読み取り可能なままにしました。

これにより、プロジェクト自体を除くホームディレクトリの読み取りがブロックされます:

{
  "sandbox": {
    "filesystem": {
      "denyRead": ["~/"],
      "allowRead": ["."]
    }
  }
}

Claude Code は . エントリをプロジェクト設定ではプロジェクトルートに、ユーザー設定では ~/.claude に解決します。allowManagedReadPathsOnly が設定されていない限り、Claude Code はセッションが読み込む設定ファイル全体でエントリをマージし、permissions.blockReadsOutsideWorkingDirectories がオンの間はリポジトリ設定からのエントリを除外します。リポジトリロックによってリポジトリのエントリが除外されることもあります。

sandbox.filesystem.allowManagedReadPathsOnly

管理設定から来る allowRead エントリのみを尊重するため、開発者は組織がブロックしたパスへの読み取りアクセスを再度開くことができません。Claude Code は引き続きセッションが読み込むすべての設定スコープから denyRead エントリをマージします。

  • Scope: Managed
  • Type: ブール値
    • true: Claude Code は管理設定からの allowRead エントリのみを尊重します
    • false: 他の設定ファイルからの allowRead エントリもマージされます
  • Default: false

これにより、ホームディレクトリの読み取りがブロックされ、~/work が再度開かれ、開発者が他のものを再度開くのが停止されます:

{
  "sandbox": {
    "filesystem": {
      "denyRead": ["~/"],
      "allowRead": ["~/work"],
      "allowManagedReadPathsOnly": true
    }
  }
}

ポリシーの拡大を開発者に防止させるを参照してください。

sandbox.filesystem.disabled

ネットワークの隔離を維持したまま、ファイルシステムの隔離をスキップします。サンドボックス化されたコマンドはホストのファイルシステムへの無制限の読み取りおよび書き込みアクセスを得ますが、ネットワークの送信先は network.allowedDomains に限定されたままです。コマンドが何を書き込むかではなく、どこに接続するかを制御するためにサンドボックスを使用する場合に使用します。

  • Scope: User or managed。管理設定が sandbox.filesystem を何らかの形で設定する場合、または "mode": "deny" を持つ sandbox.credentials.files エントリをリストする場合、管理設定のみがそれを設定できます。
  • Type: ブール値
    • true: Claude Code はファイルシステム分離をスキップし、ネットワーク分離を保持します
    • false: ファイルシステム分離は有効なままです
  • Default: false。ファイルシステム分離は有効なままです

これにより、ファイルシステムが開かれ、ネットワーク出力が GitHub と npm に限定されます:

{
  "sandbox": {
    "enabled": true,
    "filesystem": {
      "disabled": true
    },
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}

このレイヤーがオフの場合、Claude Code は denyRead や credentials.files の deny エントリを適用しませんが、credentials.envVars エントリと適用済みの mask エントリは引き続き機能します。autoAllowBashIfSandboxed のデフォルトは引き続き true であるため、プロンプトを表示し続けるには false に設定してください。これを設定できるソースの一覧と、隔離がオフのときに何が変わるかについては、ファイルシステムの隔離を無効にするを参照してください。

sandbox.ignoreViolations

コマンドがプローブして拒否されることが予想されるパスのサンドボックス違反レポートを沈黙させます(例えば、スタートアップ時に /etc/hosts をチェックするツール)。これらの拒否は違反として表示されず、Claude が見るものにも表示されません。サンドボックスはアクセスをブロックしたままです。レポートのみが抑制されます。キーはコマンドに対して一致するサブストリング(* はすべてのコマンドに一致)で、値はそのコマンドで無視する違反のサブストリング(ファイルシステムパスなど)です。

{
  "sandbox": {
    "ignoreViolations": {
      "*": ["/etc/hosts"]
    }
  }
}

sandbox.enableWeakerNestedSandbox

Linux サンドボックスを非特権 Docker コンテナ内で実行します。bubblewrap は新しい /proc をマウントできません。代わりに、内部サンドボックスはコンテナの既存の /proc をバインドマウントします。これにより、新しいマウントが非表示にするプロセス情報が公開されます。これはセキュリティを低下させます。外部コンテナが既に必要な分離を提供する場合にのみ使用します。

  • Scope: Any file(プロジェクト設定とローカル設定には制限あり)
  • Type: ブール値
    • true: 内部サンドボックスは新しい /proc をマウントする代わりに、コンテナの既存の /proc をバインドマウントします
    • false: サンドボックスは新しい /proc をマウントします。これは非特権 Docker コンテナでは機能しません
  • Default: false
{
  "sandbox": {
    "enabled": true,
    "enableWeakerNestedSandbox": true
  }
}

Linux と WSL2 のみ。Bubblewrap がコンテナ内で起動に失敗するを参照してください。

sandbox.enableWeakerNetworkIsolation

macOS でサンドボックス化されたコマンドがシステム TLS トラストサービス com.apple.trustd.agent に到達できるようにします。gh、gcloud、terraform などの Go ベースのツールは、network.httpProxyPortを MITM プロキシとカスタム CA で使用する場合、TLS 証明書を検証するために必要です。これはトラストサービスを通じた潜在的なデータ流出パスを開くことでセキュリティを低下させます。

  • Scope: Any file(プロジェクト設定とローカル設定には制限あり)
  • Type: ブール値
    • true: macOS でサンドボックス化されたコマンドは com.apple.trustd.agent に到達できます
    • false: macOS でサンドボックス化されたコマンドはシステム TLS トラストサービスに到達できません
  • Default: false
{
  "sandbox": {
    "enabled": true,
    "enableWeakerNetworkIsolation": true
  }
}

MITM プロキシを使用しない場合は、代わりに失敗するツールを excludedCommands にリストします。Go ベースの CLI が macOS で TLS 検証に失敗するを参照してください。

sandbox.allowAppleEvents

macOS でサンドボックス化されたコマンドが Apple Events を送信できるようにします。open、osascript、およびブラウザで URL を開くツールはこれが必要です。これがないと、エラー -600 で失敗します。これはコード実行分離を削除します。サンドボックス化されたコマンドはユーザープロンプトなしで他のアプリケーションを非サンドボックス化で起動でき、Terminal などの実行中のアプリケーションに AppleScript コマンドを送信できます。これはアプリごとの macOS オートメーション同意プロンプト(TCC)の対象です。

  • Scope: User or managed
  • Type: ブール値
    • true: macOS でサンドボックス化されたコマンドは Apple Events を送信できます
    • false: macOS でサンドボックス化されたコマンドは Apple Events を送信できないため、open と osascript はエラー -600 で失敗します
  • Default: false
{
  "sandbox": {
    "enabled": true,
    "allowAppleEvents": true
  }
}

分離を保持しながら 1 つのそのようなツールを実行するには、代わりに excludedCommands に追加します。macOS の Apple Eventsを参照してください。

sandbox.allowNestedUserNamespaces

Linux と WSL2 上のサンドボックス化されたコマンドがユーザー名前空間を作成できるようにします。Chromium や Electron 独自のサンドボックス、入れ子の bubblewrap、unshare はこれを必要とします。このキーを true に設定すると、セキュリティ境界がオフになります。サンドボックス化されたコマンドのコードが、サンドボックスの外で実行される可能性があります。rootless の Podman や Buildah については、サンドボックスは他の方法でもそれらを停止させるため、代わりに excludedCommands を使用してください。Claude Code v2.1.305 以降が必要です。

  • スコープ: User or managed。true は、~/.claude/settings.json、--settings で渡された JSON、または管理設定からのものが有効になります。Claude Code は、プロジェクトの .claude/settings.json または .claude/settings.local.json にある true を無視します。CLAUDE_CODE_SUBPROCESS_ENV_SCRUB が 1 に設定されたセッションでは、Claude Code はすべてのソースからの true を無視します。false は、設定の優先順位に従い、任意のファイルからのものが有効になります。
  • 型: ブール値
    • true: サンドボックス化されたコマンドはユーザー名前空間を作成できます
    • false: このキーによって追加で許可されるものはなく、サンドボックスのデフォルトが適用されます
  • デフォルト: false
{
  "sandbox": {
    "enabled": true,
    "allowNestedUserNamespaces": true
  }
}

このキーがオンの場合、悪意のあるコマンドを止めるために、保護されたパスや credentials.files エントリを含むサンドボックスのいかなる制限にも頼らないでください。自動許可モードでは、そのようなコマンドが権限プロンプトなしで実行される可能性があります。組織にセキュリティチームがある場合は、このキーをオンにする前に相談してください。

お使いのツールの解決方法については、Linux のサンドボックス内で Chromium または rootless Podman が失敗するを参照してください。

sandbox.ripgrep

Claude Code が使用するものの代わりに、独自の ripgrep バイナリをサンドボックスに指定します。たとえば、プラットフォームが異なる方法でビルドされた rg を必要とする場合です。

  • Scope: User or managed
  • Type: ripgrep バイナリへのパスである command を含むオブジェクト、および前置する引数の配列である optional args
  • Default: 未設定。サンドボックスは Claude Code と同じ ripgrep バイナリを使用します。USE_BUILTIN_RIPGREPを 0 に設定しない限り、これはバンドルされたバイナリです
{
  "sandbox": {
    "ripgrep": {
      "command": "/usr/local/bin/rg"
    }
  }
}

sandbox.bwrapPath

PATH の外にインストールされた bubblewrap バイナリ(エアギャップホスト上のベンダー版など)をサンドボックスに指定します。Claude Code はスタートアップ依存関係チェックと、サンドボックス化された各コマンドをラップするときの両方でパスを使用します。

  • Scope: Managed。Claude Code はユーザー、プロジェクト、またはローカルファイルがサンドボックスを別のバイナリに指定できないように、管理設定からのみ読み取ります。
  • Type: 文字列。絶対パス。Claude Code は相対パスを削除し、PATH ルックアップにフォールバックします
  • Default: 未設定。Claude Code は PATH で bwrap を見つけます
{
  "sandbox": {
    "enabled": true,
    "bwrapPath": "/opt/admin/bwrap"
  }
}

Linux と WSL2 のみ。

sandbox.socatPath

PATH の外にインストールされた socat バイナリをサンドボックスネットワークプロキシに指定します。

  • Scope: Managed
  • Type: 文字列。絶対パス。Claude Code は相対パスを削除し、PATH ルックアップにフォールバックします
  • Default: 未設定。Claude Code は PATH で socat を見つけます
{
  "sandbox": {
    "enabled": true,
    "socatPath": "/opt/admin/socat"
  }
}

Linux と WSL2 のみ。

sandbox.credentials

サンドボックス化されたコマンドから保護する認証情報ファイルと環境変数を宣言します。各エントリはファイル path または変数 name と mode に名前を付けます:deny はサンドボックス内の認証情報を非表示にし、mask はサンドボックス化されたコマンドにプレースホルダーを表示します。サンドボックスプロキシは送信リクエストで実際の値を置き換えます。Claude Code はリストしたエントリのみを保護します。組み込みの認証情報拒否リストはありません。

  • Scope: Any file。Claude Code は mask エントリ、allowPlaintextInject、awsPairs、sigv4 をユーザー設定、管理設定、--settings フラグからのみ尊重します。
  • Type: files、envVars、allowPlaintextInject、awsPairs、sigv4 を含むオブジェクト
  • Default: 未設定。認証情報は保護されません

これにより、AWS 認証情報ファイルが非表示になり、GITHUB_TOKEN がサンドボックス化されたコマンドから削除されます:

{
  "sandbox": {
    "credentials": {
      "files": [{ "path": "~/.aws/credentials", "mode": "deny" }],
      "envVars": [{ "name": "GITHUB_TOKEN", "mode": "deny" }]
    }
  }
}

deny ファイル保護はファイルシステムレイヤーの一部であるため、ファイルシステム分離を無効にする場合は適用されません。環境変数保護は引き続き適用されます。

管理設定の無効な認証情報エントリ

管理対象の sandbox.credentials エントリが検証に失敗した場合、Claude Code は可能な限り認証情報を保護し続けます:

  • files または envVars のエントリで、有効な path または name と mask または deny の mode を持つもの(キャプチャグループがない extract パターンなど)は、警告とともに mode: "deny" に低下されるため、認証情報はマスクされず、エントリを修正するまでブロックされたままです。低下した files エントリは、明示的な deny エントリのように filesystem.disabled をピンします。警告は、管理設定がファイルシステム分離をオフにする場合、その読み取りブロックが強制されないことを記します。
  • 不明な mode または無効な path または name を持つエントリは削除されます。
  • 各ケースは警告します。エントリが低下または削除されるかどうかに関わらず、残りの有効なエントリは引き続き強制されます。

v2.1.191 以降に適用されます。v2.1.221 より前では、すべての無効なエントリが削除されました。フィールドごとの処理を持つ他の管理キーについては、管理設定の無効なエントリを参照してください。

sandbox.credentials.files

認証情報ファイルまたはディレクトリをサンドボックス化されたコマンドから保護します。"mode": "deny" の場合、Claude Code はサンドボックス内のパスの読み取りをブロックします。これは sandbox.filesystem.denyRead と同じ読み取りブロックです。"mode": "mask" の場合、Linux と WSL2 でサンドボックス化されたコマンドはファイルのセンチネルコピーを読み取り、サンドボックスプロキシはそのエントリの injectHosts への送信リクエストで実際の値を置き換えます。macOS ではファイルはサンドボックス内で読み取り不可です。"mode": "mask" には Claude Code v2.1.221 以降が必要です。

  • Scope: Any file。Claude Code はプロジェクト .claude/settings.json とローカル .claude/settings.local.json から mask エントリを削除します。
  • Type: オブジェクトの配列。各オブジェクトは path と "deny" または "mask" の mode、および optional ファイルのマスクフィールドを含みます
  • Default: 未設定。認証情報ファイルは保護されません

これにより、AWS 認証情報ファイルが非表示になり、gh ホストファイルがマスクされ、api.github.com へのリクエストでのみ実際の値が置き換えられます:

{
  "sandbox": {
    "credentials": {
      "files": [
        { "path": "~/.aws/credentials", "mode": "deny" },
        { "path": "~/.config/gh/hosts.yml", "mode": "mask", "injectHosts": ["api.github.com"] }
      ]
    }
  }
}

パスは sandbox.filesystem.* 設定と同じプレフィックスを使用し、Claude Code はセッションが読み込むすべての設定スコープから配列をマージします。認証情報を保護するは、--setting-sources で除外するソースから何が引き続き適用されるかをカバーしています。mask エントリには Claude Code v2.1.221 以降が必要です。

mask 置換はサンドボックスプロキシを通じてのみ実行されるため、sandbox.network.tlsTerminate、または プレーン HTTP テストネットワークの場合は allowPlaintextInject を設定します。mask は単一ファイルに適用されるため、各認証情報ファイルを個別にリストします。Claude Code は deny エントリの mask フィールドを受け入れますが、無視します。認証情報をマスクするはどの設定ソースが尊重されるかを、認証情報ファイルをマスクするはエントリが deny にフォールバックするときをカバーしています。

ファイルのマスクフィールド

mask エントリはこれらの optional フィールドを受け入れます。extract または decode がない場合、Claude Code はファイル全体の内容を 1 つのセンチネルで置き換えます。ファイルシステム分離がオンの macOS では、Claude Code は extract または decode が実行される前に mask エントリを deny として適用します。認証情報ファイルをマスクするを参照してください。

フィールド 型 何をするか
extract 文字列。少なくとも 1 つのキャプチャグループを持つ正規表現 各一致のグループ 1 でキャプチャされたテキストのみをマスクするため、ファイルの残りは解析可能なままです。decode も設定されている場合、Claude Code は各キャプチャを置き換える前に、可能な JWT として確認します。v2.1.221 以降が必要です
onExtractNoMatch "warn"、"deny"、または "error"。デフォルト "warn" extract または decode がマスクするものを見つけられない場合に何が起こるか。warn はファイルをサンドボックス内で読み取り可能なままにし、deny は読み取り不可にし、error は設定を修正するまでサンドボックスセットアップを停止します。Claude Code は、読み取りブロックが強制されない場合、deny を error として扱います。ファイルシステム分離を無効にするか、sandbox.filesystem.allowReadエントリがパスを再度開く場合です。v2.1.221 以降が必要です。decode ケースには v2.1.224 以降が必要です
decode 文字列 "jwt" ファイル内の JSON Web Token(JWT)を見つけます。組み込みパターンまたは設定されている場合は extract を使用して、各候補を検証し、構造的に有効な偽のトークンで置き換えます。サンドボックス内のコードがトークンをデコードし続けるようにします。候補が検証されない場合、onExtractNoMatch が結果を管理します。v2.1.224 以降が必要です
maskClaims 文字列の配列。少なくとも 1 つのクレーム名。decode が必要 各検証済み JWT 内の名前付きトップレベルペイロードクレームのみをマスクし、変更されたペイロードの周りにトークンを再構築します。他のクレームは読み取り可能なままです。名前付きクレームが一致しない場合、onExtractNoMatch が結果を管理します。v2.1.224 以降が必要です
maskDuplicates ブール値。デフォルト false 各マスクされた値の逐語的なコピーをファイル内の他の場所でも置き換えます。例えば、コメントに貼り付けられたシークレット。Claude Code は生のサブストリングと一致するため、長く、高エントロピーのシークレット用に予約します。extract または decode が設定されている場合にのみ参照されます。v2.1.221 以降が必要です
injectHosts 文字列の配列。各ホストは sandbox.network.allowedDomains も認めます サンドボックスプロキシが実際の値を置き換えるホストを絞ります。未設定の場合、プロキシは sandbox.network.allowedDomains のすべてのホストへのリクエストで置き換えます。v2.1.221 以降が必要です

これにより、gh ホストファイル内の oauth_token 値のみがマスクされ、ファイル内のそれぞれの他のコピーが置き換えられ、パターンが何も一致しない場合はファイルが読み取り不可になり、実際のトークンは api.github.com へのリクエストでのみ置き換えられます:

{
  "sandbox": {
    "credentials": {
      "files": [
        {
          "path": "~/.config/gh/hosts.yml",
          "mode": "mask",
          "extract": "oauth_token:\\s*(\\S+)",
          "maskDuplicates": true,
          "onExtractNoMatch": "deny",
          "injectHosts": ["api.github.com"]
        }
      ]
    }
  }
}

sandbox.credentials.envVars

環境変数をサンドボックス化されたコマンドから保護します。"mode": "deny" の場合、Claude Code はサンドボックス化されたコマンドの環境から変数を削除します。"mode": "mask" の場合、サンドボックス化されたコマンドはセッションごとのセンチネル値を見て、サンドボックスプロキシはそのエントリの injectHosts への送信リクエストで実際の値を置き換えます。gh や npm などのツールは実際の認証情報を保持することなく認証を続けます。

  • Scope: Any file。Claude Code はプロジェクト .claude/settings.json とローカル .claude/settings.local.json から mask エントリを削除します。
  • Type: オブジェクトの配列。各オブジェクトは name と "deny" または "mask" の mode、および optional 環境変数のマスクフィールドを含みます
  • Default: 未設定。環境変数は保護されません

これにより、NPM_TOKEN がサンドボックス化されたコマンドから削除され、GITHUB_TOKEN がマスクされ、実際の値は api.github.com へのリクエストでのみ置き換えられます:

{
  "sandbox": {
    "credentials": {
      "envVars": [
        { "name": "NPM_TOKEN", "mode": "deny" },
        { "name": "GITHUB_TOKEN", "mode": "mask", "injectHosts": ["api.github.com"] }
      ]
    }
  }
}

name は文字または下線で始まり、文字、数字、下線のみを含む必要があります。Claude Code はセッションが読み込むすべての設定スコープから配列をマージし、同じ変数が両方のモードで表示される場合は deny を適用します。認証情報を保護するは、--setting-sources で除外するソースから何が引き続き適用されるかをカバーしています。

mask 置換はサンドボックスプロキシを通じてのみ実行されるため、sandbox.network.tlsTerminate、または プレーン HTTP テストネットワークの場合は allowPlaintextInject を設定します。認証情報をマスクするを参照してください。Claude Code は deny エントリの mask フィールドを受け入れますが、無視します。

環境変数のマスクフィールド

mask エントリはこれらの optional フィールドを受け入れます。extract または decode がない場合、Claude Code は全体の値を 1 つのセンチネルで置き換えます。extract と decode は同じエントリで組み合わせることはできません。

フィールド 型 何をするか
extract 文字列。少なくとも 1 つのキャプチャグループを持つ正規表現 各一致のグループ 1 でキャプチャされたテキストのみをマスクします。例えば、DATABASE_URL 接続文字列内のパスワード。値の残りは解析可能なままです。v2.1.224 以降が必要です
onExtractNoMatch "warn"、"deny"、または "error"。デフォルト "warn"。decode を持つエントリでは、"warn" のみが受け入れられます extract が何も一致しない場合に何が起こるか。warn は変数をマスクなしで渡し、deny はサンドボックス内でそれをアンセットし、error は設定を修正するまでサンドボックスセットアップを停止します。v2.1.224 以降が必要です
decode 文字列 "jwt" 全体の値が JWT であることを検証し、構造的に有効な偽のトークンで置き換えます。サンドボックス内のコードがトークンをデコードし続けるようにします。プロキシは出力時に全体の実際のトークンを置き換えます。検証されない値は警告とともにマスクなしで渡されます。v2.1.224 以降が必要です
maskClaims 文字列の配列。少なくとも 1 つのクレーム名。decode が必要 デコードされた JWT 内の名前付きトップレベルペイロードクレームのみをマスクし、変更されたペイロードの周りにトークンを再構築します。他のクレームは読み取り可能なままです。名前付きクレームが一致しない場合、変数は警告とともにマスクなしで渡されます。v2.1.224 以降が必要です
injectHosts 文字列の配列。各ホストは sandbox.network.allowedDomains も認めます サンドボックスプロキシが実際の値を置き換えるホストを絞ります。未設定の場合、プロキシは sandbox.network.allowedDomains のすべてのホストへのリクエストで置き換えます。IPv6 宛先を裸の圧縮アドレスとして書き込みます。例えば、"::1"。括弧形式ではなく。injectHosts の IPv6 宛先を参照してください

これにより、DATABASE_URL 内のパスワードのみがマスクされ、パターンが何も一致しない場合は変数がアンセットされ、SERVICE_JWT の JWT がマスクされます。api_key を除くすべてのクレームは読み取り可能なままです:

{
  "sandbox": {
    "credentials": {
      "envVars": [
        {
          "name": "DATABASE_URL",
          "mode": "mask",
          "extract": "://[^:]+:([^@]+)@",
          "onExtractNoMatch": "deny"
        },
        {
          "name": "SERVICE_JWT",
          "mode": "mask",
          "decode": "jwt",
          "maskClaims": ["api_key"]
        }
      ]
    }
  }
}

sandbox.credentials.allowPlaintextInject

TLS 終了 HTTPS だけでなく、プレーン HTTP リクエストでも mask 置換を許可します。プレーン HTTP では、アップストリーム ID は検証されず、認証情報はクリアテキストで移動するため、信頼できるテストネットワーク外ではこれをオフのままにします。

  • Scope: User or managed
  • Type: ブール値
    • true: Claude Code はプレーン HTTP リクエストと TLS 終了 HTTPS の両方で mask 置換を許可します
    • false: Claude Code は TLS 終了 HTTPS でのみ mask 置換を許可します
  • Default: false
{
  "sandbox": {
    "credentials": {
      "allowPlaintextInject": true
    }
  }
}

sandbox.credentials.awsPairs

マスクされた環境変数をグループ化して、認証情報が非標準の名前の変数に存在する場合、SigV4 再署名用に 1 つの AWS 認証情報を形成します。Claude Code は、従来の AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN トリオを全体の値をマスクする場合、自動的にリンクするため、他の名前の場合にのみこのキーが必要です。Claude Code v2.1.224 以降が必要です。

  • Scope: User or managed
  • Type: オブジェクトの配列。各オブジェクトは accessKeyIdVar、secretAccessKeyVar、および optional sessionTokenVar を含み、sandbox.credentials.envVars エントリに名前を付けます
  • Default: 未設定。従来のトリオのみがペアになります

これにより、3 つのカスタム名の変数が 1 つの AWS 認証情報にリンクされ、再署名されます:

{
  "sandbox": {
    "credentials": {
      "awsPairs": [
        {
          "accessKeyIdVar": "MY_KEY_ID",
          "secretAccessKeyVar": "MY_SECRET_KEY",
          "sessionTokenVar": "MY_SESSION_TOKEN"
        }
      ]
    }
  }
}

各名前付き変数は sandbox.credentials.envVars の全体値 mask エントリである必要があり、extract または decode なしで、すべてのペアで 1 つのスロットのみを埋めることができます。以下のルールも適用されます:

  • プロキシは、アクセスキー ID エントリの injectHosts にリストされたホストでリクエストを再署名します
  • sessionTokenVar が設定されている場合、プロキシは再署名されたリクエストで実際のトークンを x-amz-security-token として送信します
  • ペアで従来の変数のいずれかを指定すると、自動ペアリングが置き換えられます

sandbox.credentials.sigv4

サンドボックスプロキシが 再署名できないAWS リクエスト形式で何をするかを選択します:streaming は aws-chunked ストリーミングアップロード、presigned は事前署名 URL、sigv4a は SigV4A 非対称署名です。これは、マスクされたペアのプレースホルダーアクセスキー ID で署名されたリクエストにのみ適用されます。Claude Code v2.1.224 以降が必要です。

  • Scope: User or managed
  • Type: streaming、presigned、sigv4a を含むオブジェクト。各オブジェクトは以下のいずれかです:
    • "deny": プロキシはリクエストを失敗させます
    • "passthrough": プロキシはマスクされたプレースホルダーで署名されたリクエストを転送するため、ツールは AWS 自体の拒否を受け取ります
  • Default: 未設定。すべての形式は "deny" です

これにより、ストリーミングアップロードはプロキシで失敗する代わりに転送されます:

{
  "sandbox": {
    "credentials": {
      "sigv4": {
        "streaming": "passthrough"
      }
    }
  }
}

deny の場合、プロキシはリクエストを失敗させます。passthrough の場合、プロキシはマスクされたプレースホルダーから計算された署名でリクエストを転送するため、AWS はそれを拒否し、呼び出しツールはプロキシエラーの代わりに AWS 自体のレスポンスを受け取ります。

sandbox.network

サンドボックス化されたコマンドが到達できるホスト、ポート、ソケットを制御します。サンドボックスは送信トラフィックをプロキシを通じてルーティングし、これらのリストを強制します。ネットワーク分離を参照して、プロキシがどのように決定するか、およびいつプロンプトするかを確認してください。

  • Scope: Any file。strictAllowlist、allowManagedDomainsOnly、tlsTerminate は、それらのエントリが言うように、より少ないソースから読み取られます。
  • Type: 以下のサブキーを含むオブジェクト
  • Default: 未設定。ドメインは事前に許可されず、新しい各ホストをどう扱うかは権限モードによって決まります

これにより、GitHub と npm が事前に許可され、uploads.github.com がブロックされ、コマンドが localhost にバインドできます:

{
  "sandbox": {
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"],
      "deniedDomains": ["uploads.github.com"],
      "allowLocalBinding": true
    }
  }
}

Claude Code は配列サブキーを設定スコープ全体でマージするため、リポジトリロックが適用されない限り、プロジェクトはユーザーリストにドメインを追加できます。WebFetch(domain:...) 許可および拒否権限ルールは同じ許可および拒否リストをフィードします。

sandbox.network.allowUnixSockets

macOS でサンドボックス化されたコマンドが接続できる Unix ソケットパスをリストします。Claude Code は Linux と WSL2 でこのリストを無視します。seccomp フィルタはソケットパスを検査できません。代わりに allowAllUnixSockets を使用します。

{
  "sandbox": {
    "network": {
      "allowUnixSockets": ["~/.ssh/agent-socket"]
    }
  }
}

ソケットパスは広いアクセスを許可できます。たとえば、/var/run/docker.sock を許可すると、サンドボックス化されたコマンドが Docker デーモンを制御できます。セキュリティ制限を参照してください。

sandbox.network.allowAllUnixSockets

サンドボックス化されたコマンドがすべての Unix ソケットに接続できるようにします。Linux と WSL2 では、サンドボックスの seccomp フィルタ は socket(AF_UNIX, ...) 呼び出しをブロックするため、これは Unix ソケットを許可する唯一の方法です。フィルタが不足している場合(/sandbox がその Dependencies タブで報告する場合)、サンドボックスは Unix ソケット呼び出しをブロックしません。Linux と WSL2 をセットアップするを参照して、フィルタがどこから来るかを確認してください。

  • Scope: Any file(プロジェクト設定とローカル設定には制限あり)
  • 型: ブール値
    • true: サンドボックス化されたコマンドはすべての Unix ソケットに接続できます。Linux と WSL2 では、VM ソケット(AF_VSOCK アドレスファミリー)にも接続できます
    • false: サンドボックスは Unix ソケットの接続をブロックします。macOS では allowUnixSockets 内のパスを除いてブロックし、Linux と WSL2 では seccomp フィルターが存在する場合にそれを通じてブロックします
  • Default: false
{
  "sandbox": {
    "network": {
      "allowAllUnixSockets": true
    }
  }
}

WSL2 では、true は cmd.exe や powershell.exe などの Windows バイナリを起動する相互運用ソケットも再度開きます。

sandbox.network.allowLocalBinding

macOS でサンドボックス化されたコマンドがネットワークポートでリッスンし(開発サーバーの起動など)、localhost の任意のポートに接続できるようにします。ループバック以外のアドレスでリッスンするコマンドは、他のマシンからの接続を受け付けます。Linux と WSL2 では各サンドボックス化されたコマンドが独自のループバックインターフェースを持つため、このキーは効果がありません。Linux または WSL2 からホスト上のサーバーに到達するには、コマンドが localhost 上のサーバーに到達できないを参照してください。

  • Scope: Any file(プロジェクト設定とローカル設定には制限あり)
  • Type: ブール値
    • true: macOS でサンドボックス化されたコマンドは任意のローカルアドレスでリッスンし、localhost の任意のポートに接続できます
    • false: macOS でサンドボックス化されたコマンドはポートでリッスンすることも、localhost 上のサーバーに直接接続することもできません
  • Default: false
{
  "sandbox": {
    "network": {
      "allowLocalBinding": true
    }
  }
}

sandbox.network.allowMachLookup

macOS のサンドボックスが参照できる追加の XPC および Mach サービス名を記載します。iOS Simulator や Playwright など、XPC で通信するツールは、そのサービスをここに記載する必要があります。サンドボックス化されたコマンドは、記載した各サービスにサンドボックスの外からアクセスでき、サンドボックスはそれらのサービスがコマンドのために行う処理を制限しません。

次の例では、com.apple.CoreSimulator. プレフィックス配下のすべてのサービスを許可します。

{
  "sandbox": {
    "network": {
      "allowMachLookup": ["com.apple.CoreSimulator.*"]
    }
  }
}

sandbox.network.allowedDomains

サンドボックス化されたコマンドからの送信トラフィック用にドメインを事前に許可するため、サンドボックスはそれらについてプロンプトしません。*.example.com などのワイルドカードはサブドメインと一致し、optional :port サフィックスはエントリを 1 つのポートに制限します。ポートなしのエントリはすべてのポートと一致します。

これにより、GitHub がすべてのポートで事前に許可され、すべての npm サブドメイン、および 1 つの API ホストがポート 443 でのみ許可されます:

{
  "sandbox": {
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org", "api.example.com:443"]
    }
  }
}

IPv6 リテラルを括弧で囲んで書き込みます。optional ポート付き:"[::1]" はすべてのポートを許可し、"[::1]:443" は 1 つのポートを許可します。括弧形式には Claude Code v2.1.229 以降が必要です。ドメインリストの IPv6 アドレスを参照してください。

sandbox.network.deniedDomains

allowedDomainsと同じワイルドカード、ポート、IPv6 構文を使用して、サンドボックス化されたコマンドからの送信トラフィック用にドメインをブロックします。拒否されたドメインは、allowedDomains エントリも一致する場合でもブロックされたままです。

  • Scope: Any file
  • Type: 文字列の配列。各ドメイン、ワイルドカードパターン、または IP リテラル。optional :port サフィックス付き
  • Default: 未設定
{
  "sandbox": {
    "network": {
      "deniedDomains": ["sensitive.cloud.example.com"]
    }
  }
}

Claude Code はセッションが読み込むすべての設定ソースからこのリストをマージします。allowManagedDomainsOnly が設定されている場合でも、開発者は常に拒否リストを厳しくできます。IPv6 リテラルについては、ドメインリストの IPv6 アドレスを参照してください。

完全修飾ドメイン名をマークする末尾ドット(example.com. など)で書き込まれたエントリは、example.com と同じ接続をブロックします。

sandbox.network.strictAllowlist

許可リスト外のホストへのサンドボックス化されたコマンドのアクセスを、承認を求めるプロンプトを表示する代わりに拒否します。許可リストは allowedDomains と WebFetch(domain:...) 許可ルールからのドメイン、または allowManagedDomainsOnly が設定されている場合は管理設定エントリのみです。リポジトリのエントリについては、管理者必須のサンドボックスなしで適用されるロックを参照してください。Claude Code v2.1.219 以降が必要です。

  • Scope: User or managed。リポジトリはそれをオンまたはオフにできません。
  • Type: ブール値
    • true: Claude Code は許可リスト外のホストへのサンドボックス化されたコマンドアクセスを拒否します
    • false: 別の信頼できる設定ファイルが true を設定しない限り、Claude Code は許可リスト外のホストを即座に拒否するのではなく、権限モードに応じて判断します:auto モードではコマンドのコマンドごとの許可ドメインに対してホストをチェックし、dontAsk モードでは拒否し、bypassPermissions モードおよびバイパスが利用可能なインタラクティブターミナルの plan モードセッションでは許可し、それ以外の場合はユーザーに確認します
  • Default: false
{
  "sandbox": {
    "network": {
      "strictAllowlist": true
    }
  }
}

Claude Code はサンドボックス化されたコマンドのみに対してこれを強制します。WebFetch などのインプロセスツールは引き続き権限ルールに従います。尊重されるソースのいずれかが true に設定する場合、それはオンのままです。ネットワーク分離を参照してください。Claude Code v2.1.219 以降が必要です。

sandbox.network.allowManagedDomainsOnly

ネットワーク許可リストを管理設定が定義するものにロックします。Claude Code は管理設定からの allowedDomains と WebFetch(domain:...) 許可ルールのみを尊重し、ユーザー、プロジェクト、ローカル、--settings 設定からのドメインを無視し、許可されていないドメインをプロンプトする代わりに自動的にブロックします。

  • Scope: Managed
  • Type: ブール値
    • true: Claude Code は管理設定からの allowedDomains と WebFetch(domain:...) 許可ルールのみを尊重し、許可されていないドメインをプロンプトする代わりにブロックします
    • false: 他の設定ファイルからのドメインも許可リストにマージされます
  • Default: false

これにより、許可リストが GitHub と npm にロックされ、開発者が追加するドメインが無視されます:

{
  "sandbox": {
    "network": {
      "allowManagedDomainsOnly": true,
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}

キーが true の間、サンドボックスは管理者必須となり、プロキシポートを設定できるのは管理設定のみになります。

拒否されたドメインは引き続きセッションが読み込むすべてのソースからマージされます。ポリシーの拡大を開発者に防止させるを参照してください。

sandbox.network.httpProxyPort

Claude Code が実行するものの代わりに、独自の HTTP プロキシをサンドボックスに指定します。組織はこれを使用して、HTTPS トラフィックを検査したり、独自のフィルタリングルールを適用したり、リクエストをログに記録したりします。フィルタリングは独自のプロキシが引き継ぎ、Claude Code はそこに送信されるトラフィックにドメインリストとネットワークプロンプトを適用しなくなります。未設定の場合、Claude Code は HTTP トラフィック用に独自のプロキシを起動します。

{
  "sandbox": {
    "network": {
      "httpProxyPort": 8080
    }
  }
}

プロキシで SOCKS トラフィックも扱う場合は、socksProxyPort も設定します。2 つのうち一方のみを設定した場合、Claude Code はもう一方のプロトコル用に引き続き独自のプロキシを実行します。カスタムプロキシ設定を参照してください。

sandbox.network.socksProxyPort

Claude Code が実行するものの代わりに、独自の SOCKS5 プロキシをサンドボックスに指定します。フィルタリングは独自のプロキシが引き継ぎ、Claude Code はそこに送信されるトラフィックにドメインリストとネットワークプロンプトを適用しなくなります。未設定の場合、Claude Code は SOCKS トラフィック用に独自のプロキシを起動します。

{
  "sandbox": {
    "network": {
      "socksProxyPort": 8081
    }
  }
}

カスタムプロキシ設定を参照してください。

sandbox.network.tlsTerminate

サンドボックスプロキシが TLS を終了して、HTTPS リクエストの内容を読み取ることができるようにします。これは実験的であり、mask 認証情報置換はそれを必要とします。{} を設定してセッション用に一時的な認証局を生成するか、caCertPath と caKeyPath を設定して独自のものを使用します。

  • Scope: User or managed。リポジトリはそれをオンにするか、認証局を提供できません。
  • Type: optional caCertPath と caKeyPath 文字列を含むオブジェクト。各ファイルパス
  • Default: 未設定。プロキシは TLS を終了または検査しません
{
  "sandbox": {
    "network": {
      "tlsTerminate": {}
    }
  }
}

複数の尊重されるソースがそれを設定する場合、Claude Code は最も優先度の高いソースからの値を使用します:管理設定、次に --settings フラグ、次にユーザー設定。

メモリとコンテキスト

Claude Code がコンテキストに読み込む内容、コンテキスト圧縮の方法、メモリとプランの保存場所を制御します。コンテキストの管理とメモリを参照してください。

autoCompactEnabled

コンテキストが上限に近づいたときに、Claude Code が会話を自動的に圧縮するようにします。/config では Auto-compact として表示され、そこで切り替えるとこのキーがユーザー設定に書き込まれます。

  • スコープ: Any file
  • 型: ブール値
    • true: コンテキストが上限に近づくと、Claude Code は会話を自動的に圧縮します
    • false: Claude Code は自動的に圧縮しません
  • デフォルト: true
  • セッションごとの上書き: DISABLE_AUTO_COMPACT は 1 つのセッションで自動圧縮をオフにします。2 つのうちどちらかがオフにした場合、もう一方でオンに戻すことはできません
{
  "autoCompactEnabled": false
}

自動圧縮がオフの間も、手動の /compact コマンドは引き続き機能します。自動圧縮をオフにすると、アイドル時のコンテキスト圧縮もオフになります。

autoCompactWindow

Claude Code が自動的に圧縮する前に、コンテキストウィンドウがどこまで埋まるかを設定します。

  • スコープ: Any file
  • 型: トークン数、100000 から 1000000 まで。Claude Code はこの値をモデルのコンテキストウィンドウで上限設定します。各モデルのウィンドウはモデルの概要に記載されています
  • デフォルト: 未設定。この場合、Claude Code はモデルに合わせて調整されたウィンドウを選択します
  • セッションごとの上書き: --autocompact は 1 つのセッションでこのキーより優先されます。また、Claude Code が変数の値を無視する場合を除き、CLAUDE_CODE_AUTO_COMPACT_WINDOW は両方より優先されます
{
  "autoCompactWindow": 500000
}

/autocompact コマンドは、現在のモデル用のウィンドウを modelSettings の下に保存します。これは、そのモデルについて同じファイル内のこのキーより優先されます。コマンド、フラグ、変数、設定がどのように相互作用するかについては、自動圧縮ウィンドウを設定するで説明しています。

autoMemoryDirectory

自動メモリを、プロジェクトごとのデフォルトではなく任意のディレクトリに保存します。

  • スコープ: Any file
  • 型: 文字列。絶対パス、または ~/ で始まるディレクトリパス
  • デフォルト: 未設定。この場合、Claude Code は ~/.claude/projects/<project>/memory/ を使用します
{
  "autoMemoryDirectory": "~/my-memory-dir"
}

クローンしたリポジトリがプロジェクト設定やローカル設定のファイルを提供できるため、これらの設定では、Claude Code はフックと同じワークスペース信頼ルールに従ってこのキーを適用します。

autoMemoryEnabled

自動メモリをオンまたはオフにします。false の場合、Claude は自動メモリディレクトリの読み取りも書き込みも行いません。セッション中に /memory で切り替えることもでき、その場合はこのキーがユーザー設定に書き込まれます。

  • スコープ: Any file
  • 型: ブール値
    • true: 未設定と同じです。--bare、セーフモード、CLAUDE_CODE_DISABLE_AUTO_MEMORY など、このキーより優先されるものがセッションでオフにしない限り、自動メモリはオンのままです
    • false: Claude は自動メモリディレクトリの読み取りも書き込みも行いません
  • デフォルト: true
  • セッションごとの上書き: CLAUDE_CODE_DISABLE_AUTO_MEMORY は、どちらの方向でも 1 つのセッションでこのキーより優先されます
{
  "autoMemoryEnabled": false
}

bashOutputMaxChars

成功した Bash または PowerShell コマンドの出力のうち、Claude がインラインで受け取る文字数を設定します。出力が上限を超えると、Claude Code はそれをファイルに保存し、Claude は短いプレビューとファイルのパスを受け取ります。詳細なビルドやテストスイート全体のログなど、コマンドの出力がデフォルトを日常的に超え、Claude にファイルを開かずに読ませたい場合は、上限を引き上げてください。Claude Code v2.1.261 以降が必要です。

  • スコープ: Any file
  • 型: 文字数、正の整数。Claude Code は値を 4000 から 128000 の範囲に収めます
  • デフォルト: 未設定。この場合、Claude はインラインで最大 30,000 文字を受け取ります
{
  "bashOutputMaxChars": 100000
}

このキーを設定すると、Claude Code は BASH_MAX_OUTPUT_LENGTH 環境変数を無視します。

claudeMd

別のファイルをデプロイせずに、CLAUDE.md 形式の指示を組織管理のメモリとして挿入します。Claude Code は、このテキストを管理メモリのエントリとして、ユーザーおよびプロジェクトの CLAUDE.md ファイルより先に読み込みます。

  • スコープ: Managed
  • 型: 文字列。CLAUDE.md ファイルのテキストです。markdown を含め、ファイルと同じように記述し、改行は \n とします
  • デフォルト: 未設定

この例では、2 つのルールを短い markdown のリストとしてデプロイします。

{
  "claudeMd": "# Engineering rules\n\n- Always run make lint before committing.\n- Never push directly to main."
}

組織全体の CLAUDE.md をデプロイするを参照してください。

claudeMdExcludes

Claude Code がメモリを読み込む際に、特定の CLAUDE.md ファイルをスキップします。大規模なモノレポでは、自分の作業に関係のない他チームの CLAUDE.md ファイルをスキップするために使用します。大規模コードベースのガイドの関係のない CLAUDE.md ファイルを除外するで、このケースを詳しく説明しています。パターンは絶対ファイルパスに対してマッチします。

  • スコープ: Any file
  • 型: 文字列の配列。各要素は glob パターンまたは絶対パスです
  • デフォルト: 未設定。この場合、Claude Code は見つかったすべての CLAUDE.md を読み込みます
{
  "claudeMdExcludes": ["**/vendor/**/CLAUDE.md"]
}

除外はユーザー、プロジェクト、ローカルのメモリファイルにのみ適用されます。管理ポリシーの CLAUDE.md ファイルは除外できません。

env

すべてのセッションと、そのセッションから Claude Code が起動するサブプロセスに環境変数を設定します。環境変数リファレンスにあるほとんどの変数はここに記述でき、これによって変数をすべてのセッションに適用したり、チームに展開したりできます。プロジェクト設定とローカル設定では、一部の変数を設定できません。

  • スコープ: Any file
  • 型: 変数名を文字列値にマッピングするオブジェクト
  • デフォルト: 未設定

この例では、自動圧縮をオフにし、API リクエストをプロキシ経由でルーティングします。

{
  "env": {
    "DISABLE_AUTO_COMPACT": "1",
    "ANTHROPIC_BASE_URL": "https://proxy.example.com"
  }
}

env の値とシェルの相互作用

  • ここで指定した値は、シェルでエクスポートされた同じ変数を上書きします。複数の設定ファイルが同じ変数を設定している場合は、優先順位が最も高いものが適用されます。プロジェクト設定とローカル設定の例外は、Claude Code が env で無視する変数に記載しています。
  • Claude Desktop アプリまたはセルフホスト環境のランナーがセッションを開始する場合は、代わりにそれが構築する起動環境が優先されます。起動環境がすでに設定している変数については、Claude Code はどの設定ファイルの env の値も無視します。無視された各変数はデバッグログに記載されます。
  • シェルのエクスポートを取り消すには、変数を "" に設定します。Claude Code はプロバイダーの選択において空の値を未設定として扱い、サブプロセスは空の値を継承します。
  • ここで設定した NO_COLOR と FORCE_COLOR は、サブプロセスにのみ反映されます。Claude Code 自体のインターフェースのカラーを変更するには、claude を起動する前にシェルで設定してください。
  • ここに記述した値は設定ファイル内のプレーンテキストであり、Claude Code が起動するすべてのサブプロセスに渡されます。ローテーションする OTLP ベアラートークンには otelHeadersHelper を、API の認証情報には apiKeyHelper を使用してください。

Claude Code が env の値を適用するタイミング

  • ユーザー設定、--settings、管理設定からの値: 起動時、および保存された変更によってマージ後の env が変わったときに実行中のセッションで再度適用されます。
  • プロジェクト設定とローカル設定からの値: ワークスペースを信頼した後、または信頼ダイアログを表示しない -p モードでは起動時に適用され、保存された変更によってマージ後の env が変わったときに再度適用されます。
  • モデルの選択、タイムアウトと制限、機能の切り替えなど、Claude Code が安全と分類する変数: プロジェクト設定とローカル設定で設定できない変数を除き、起動時にすべての設定ファイルから適用されます。
  • v2.1.246 以降で /cd でセッションを移動した後: 以前のディレクトリの値に加えて、新しいディレクトリのプロジェクトとローカルの env の値が適用されます。

Claude Code が env で無視する変数

  • プロジェクト設定とローカル設定では、チェックアウトしたリポジトリが制御すべきでない変数を設定できません。これらはシェル、ユーザー設定、または管理設定で設定してください。テレメトリをオフにするいくつかの値を除き、Claude Code はこれらをそれぞれ破棄し、claude --debug で確認できる警告をログに記録します。対象には次のものが含まれます。

    • Claude Code が自身のファイルを保存または書き込む場所を選択する変数: CLAUDE_CONFIG_DIR、CLAUDE_CODE_TMPDIR、およびオペレーティングシステムのディレクトリ変数(HOME、TMPDIR、TMP、TEMP、XDG_* ファミリーなど)。

    • Claude Code が起動するプロセスのプログラムやマシン全体の設定を選択する Windows の変数(SystemRoot、ComSpec、ProgramData、LOCALAPPDATA、PATHEXT、PSModulePath、ProgramFiles ファミリーなど)。

    • セッションの内容をエクスポートする変数: OTEL_LOG_RAW_API_BODIES、および詳細なベータトレースのペアである ENABLE_BETA_TRACING_DETAILED と BETA_TRACING_ENDPOINT。

    • テレメトリをオンにする、送信先を選択する、またはキャプチャする内容を選択する OpenTelemetry エクスポーターの変数:

      • 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_OTLP_ENDPOINT や OTEL_EXPORTER_OTLP_METRICS_HEADERS など)
      • OTEL_EXPORTER_PROMETHEUS_HOST と OTEL_EXPORTER_PROMETHEUS_PORT

      プロジェクト設定とローカル設定から引き続き適用されるのは、何かをオフにする次の値のみです。3 つのエクスポーターセレクターに対する none、および OTEL_LOG_USER_PROMPTS、OTEL_LOG_TOOL_CONTENT、OTEL_LOG_TOOL_DETAILS に対する 0 などのオフの値です。このような値はユーザー設定にある同じ変数を上書きしますが、Claude Code を起動した環境、--settings ファイル、または管理設定で設定された変数は上書きしません。

      プロジェクトまたはローカルの設定ファイルがこのグループの変数を設定している場合、ローカルの対話型セッションでは起動時に通知が表示されます。/status または claude doctor を実行すると、Claude Code がどの変数を無視し、どの変数がテレメトリをオフにしたかを確認できます。どちらも名前のみを表示し、値は表示しません。-p による非対話型の実行や Agent SDK のセッションでは通知が表示されないため、アップグレード後にコレクターが引き続きデータを受信していることを確認してください。受信していない場合は、ユーザー設定、管理設定、ジョブの環境、または --settings で渡すファイルで変数を設定してください。

      プロジェクト設定とローカル設定でこのグループを無視する動作には、Claude Code v2.1.282 以降が必要です。

    • Claude Code の起動方法や同期方法を変更する変数(CLAUDE_CODE_PROCESS_WRAPPER、CLAUDE_CODE_SYNC_SKILLS、CLAUDE_CODE_SYNC_PLUGINS、CLAUDE_CODE_PLUGIN_CACHE_DIR、CLAUDE_CODE_PLUGIN_SEED_DIR など)。

    • claude.ai のサインインを設定する変数(CLAUDE_CODE_OAUTH_TOKEN、CLAUDE_CODE_OAUTH_REFRESH_TOKEN、CLAUDE_CODE_OAUTH_SCOPES など)。

    • スクリーンリーダーモードの変数 CLAUDE_AX_SCREEN_READER、および名前が CLAUDE_AX_ で始まるその他の変数(CLAUDE_AX_STARTUP_QUIET_MS など)。

    • 応答のないダイアログのタイマーを設定する CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS。

    • 添付ファイルの処理をオフにする CLAUDE_CODE_DISABLE_ATTACHMENTS。

    • Claude Code がファイルやディレクトリの @ メンションを展開しないようにする CLAUDE_CODE_DISABLE_FILE_MENTIONS。

    v2.1.251 より前は、プロジェクト設定とローカル設定でも、このリストのうち Claude Code がファイルを書き込む場所を選択する変数やセッションの内容をエクスポートする変数を設定できました(HOME と XDG_CONFIG_HOME を除く)。v2.1.290 より前は、ダイアログのタイマー変数と CLAUDE_CODE_DISABLE_ATTACHMENTS も設定できました。

  • CLAUDE_CODE_REMOTE や CLAUDE_CODE_ACCOUNT_UUID など、Claude Code のホスティング環境が所有する ID 変数は、すべてのファイルで無視されます。

  • Claude Code 自身がエクスポートする CLAUDE_CODE_MESSAGING_SOCKET と CLAUDE_CODE_MESSAGING_TOKEN は、すべてのファイルで無視されます。ソケット変数を無視する動作には Claude Code v2.1.224 以降が、トークンを無視する動作には v2.1.228 以降が必要です。

  • Claude Code が起動環境からのみ読み取る CLAUDE_CODE_PROJECT_DIR_NAME は、すべてのファイルで無視されます。v2.1.234 以降が必要です。

  • Claude Code が起動環境からのみ読み取る CLAUDE_CODE_RESTRICTED は、すべてのファイルで無視されます。

  • Claude Code が起動環境からのみ読み取る CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY は、すべてのファイルで無視されます。この変数には Claude Code v2.1.283 以降が必要です。

  • Claude Code が起動環境からのみ読み取る CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT、CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT、CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT、CLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT は、すべてのファイルで無視されます。

  • Claude Code が起動環境からのみ読み取る CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS は、すべてのファイルで無視されます。

  • Claude Code が起動環境からのみ読み取る CLAUDE_CODE_WARN_DISK_FREE_GIB と CLAUDE_CODE_WARN_MEMORY_FREE_GIB は、すべてのファイルで無視されます。これらの変数には Claude Code v2.1.304 以降が必要です。

fileCheckpointingEnabled

/rewind で復元できるよう、Claude Code が各編集の前にファイルのスナップショットを取るようにします。/config では Rewind code (checkpoints) として表示され、そこで切り替えるとこのキーがユーザー設定に書き込まれます。

  • スコープ: Any file
  • 型: ブール値
    • true: /rewind で復元できるよう、Claude Code は各編集の前にファイルのスナップショットを取ります
    • false: Claude Code はファイルのスナップショットを取らないため、/rewind で復元できません
  • デフォルト: true
  • セッションごとの上書き: CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING は 1 つのセッションでチェックポイント機能をオフにします。2 つのうちどちらかがオフにした場合、もう一方でオンに戻すことはできません
{
  "fileCheckpointingEnabled": false
}

-p の実行や Agent SDK のセッションでは、Claude Code はこのキーを無視します。SDK では enableFileCheckpointing オプションでチェックポイント機能をオンにし、単純な -p の実行では CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true が必要です。Agent SDK のファイルチェックポイント機能を参照してください。

idleCompaction

アイドル時のコンテキスト圧縮は、ユーザーが離席している長い会話を圧縮します。これにより、次のメッセージでは会話全体ではなく要約が送信されます。圧縮されると、会話に次の通知が表示されます。

  • ターミナル: Compacted while idle, before the prompt cache expired で始まる行
  • VS Code のチャットパネル: a summary written while you were away を含む通知
  • デスクトップアプリ: 同じ通知が、ラベルに Claude Code notice を含む行の中に表示されます。その行やテキストが表示されない場合は、Verbose 表示モードに切り替えてください。

アイドル時のコンテキスト圧縮は、次のすべての条件を満たす会話に対してデフォルトでオンになっています。

  • セッション: 対話型のターミナルセッション、VS Code 拡張機能のチャットパネル、またはデスクトップアプリの Code タブ(セッションがローカルマシン上または SSH 経由で実行される場合)を使用している
  • 自動圧縮: autoCompactEnabled がオンになっている
  • プロンプトキャッシュ: 会話が 1 時間のプロンプトキャッシュ TTL を使用している
  • サイズ: 会話のコンテキストがトークンのしきい値に達している。しきい値はデフォルトの 200,000 から変更できます
  • アイドル時間: 最後のリクエストから約 1 時間が経過しており、その時点までコンピューターがスリープしていない

アイドル時のコンテキスト圧縮をオフにするには、このキーを false に設定します。

  • スコープ: Any file
  • 型: ブール値
    • true: Claude Code は条件を満たすアイドル状態の会話を圧縮します
    • false: セッションがアイドル状態の間、Claude Code は圧縮しません
  • デフォルト: true
  • セッションごとの上書き: DISABLE_AUTO_COMPACT は、自動圧縮とともにアイドル時のコンテキスト圧縮もオフにします
{
  "idleCompaction": false
}

ターミナルセッション内からアイドル時のコンテキスト圧縮をオフまたはオンにするには、/config を実行して Idle compaction の行を変更します。選択内容はユーザー設定に保存され、すぐに適用されます。この行には Claude Code v2.1.302 以降が必要です。これらのバージョンを実行していて /config にこの行が表示されない場合は、次の原因を確認してください。

  • 別の設定ソースがキーを設定している: 管理設定、--settings フラグ、またはプロジェクトやローカルの設定ファイルの値がユーザー設定を上書きしています。代わりにそのソースでキーを変更してください
  • v2.1.314 より前のバージョンで機能フラグが利用できない: Claude Code が Anthropic から機能フラグを取得できない場合、アイドル時のコンテキスト圧縮は実行されないため、オフにする対象がありません

このキーには Claude Code v2.1.290 以降が必要です。このキーを無視する以前のバージョンでは、autoCompactEnabled をオフにしてアイドル時のコンテキスト圧縮を停止してください。

アイドル時のコンテキスト圧縮のしきい値を変更する

CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS に、アイドル時のコンテキスト圧縮が適用されるまでに会話のコンテキストが到達する必要のあるトークン数を設定します。正の整数を使用してください。100000 未満の値は、最小のしきい値である 100000 に引き上げられます。

デフォルトでは、200K のコンテキストウィンドウを使用する会話は 200,000 トークンに達する前に自動圧縮されます。この例では、しきい値を 150,000 に下げて、そうした会話が対象になるようにします。

{
  "env": {
    "CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS": "150000"
  }
}

VS Code とデスクトップアプリでのアイドル時のコンテキスト圧縮

次のような通知は、Claude Code が以前の会話を要約に置き換え、Claude が現在その要約をもとに作業していることを意味します。

Compacted using a summary written while you were away · turn off with "idleCompaction": false in settings.json

特に操作は必要ありません。アイドル時のコンテキスト圧縮をオフにするには、セッションが実行されるマシンまたは WSL ディストリビューション上の ~/.claude/settings.json、または別の設定ファイルで idleCompaction を false に設定します。

plansDirectory

plan モードで Claude Code が書き込むプランファイルの保存場所を選択します。Claude Code はプロジェクトルートを基準にパスを解決します。

  • スコープ: Any file
  • 型: 文字列。プロジェクトルートからの相対パス
  • デフォルト: 未設定。この場合、Claude Code は ~/.claude/plans を使用します
{
  "plansDirectory": "./plans"
}

次のような場合、Claude Code は設定したディレクトリではなく ~/.claude/plans にプランを保存します。

  • プロジェクトルートの外: "../plans" のように、パスがプロジェクトルートの外に解決される場合。
  • macOS、Linux、WSL でのバックスラッシュ: Windows 形式の "docs\\plans" のように、解決されたパスにバックスラッシュが含まれる場合。Windows でも機能する "docs/plans" と記述してください。

skillListingBudgetFraction

Claude は各ターンで、説明付きのスキルの一覧を参照します。Claude Code はその一覧をコンテキストウィンドウの一定割合に制限します。一覧が上限を超えると、Claude Code はすべてのスキルの名前を保持しつつ、使用頻度の低いスキルの説明を削除します。そのため、Claude はそれらのスキルを引き続き呼び出せますが、自発的に選択する可能性は低くなります。ターンごとのコンテキスト消費が増える代わりに、より多くの説明を表示し続けたい場合は、このキーの値を引き上げてください。

  • スコープ: Any file
  • 型: 数値。0 より大きく 1 以下の割合
  • デフォルト: 0.01。コンテキストウィンドウの 1% を確保します
{
  "skillListingBudgetFraction": 0.02
}

一覧が使用するコンテキストの量と、最も多くを占めているスキルを確認するには、/doctor を実行してください。

skillListingMaxDescChars

Claude は各ターンで、各スキルの description と when_to_use のテキストを示すスキルの一覧を参照します。このキーは、Claude Code がスキルごとに表示するそのテキストの文字数を制限します。これより長いテキストは上限で切り詰められます。

  • スコープ: Any file
  • 型: 文字数、正の整数
  • デフォルト: 1536
{
  "skillListingMaxDescChars": 2048
}

ターンごとのコンテキスト消費が増える代わりに長い説明をそのまま保持したい場合は値を引き上げ、skillListingBudgetFraction の範囲内により多くのスキルを収めたい場合は値を引き下げてください。

taskOutputMaxChars

[!WARNING]

v2.1.277 で、このキーがサイズを決めていた TaskOutput ツールとともに削除されました。現在のバージョンでは設定しても効果はありません。Claude は代わりに Read でバックグラウンドタスクの出力ファイルを読み取ります。

v2.1.276 までは、Claude が TaskOutput ツールでタスクを読み取る際にインラインで受け取るバックグラウンドタスクの出力の文字数を、このキーに設定していました。

インターフェースとターミナル

ターミナルでの Claude Code の見た目と動作を変更します。テーマ、エディターモード、ステータスライン、スピナー、セッション内の通知、アクセシビリティが対象です。ターミナル設定を参照してください。

askUserQuestionTimeout

応答のない AskUserQuestion ダイアログを、一定のアイドル時間の後に自動で続行させ、その時点までに選択していたオプションを送信します。席を外している間も Claude に作業を続けさせたい場合に設定します。デフォルトでは、質問は回答するまで待機します。タイマーが一時停止する場合や開始しない場合については、Question auto-continue timeout を参照してください。

  • スコープ: User or managed
  • 型: 文字列。"60s"、"5m"、"10m"、"never" のいずれか
  • デフォルト: "never"
{
  "askUserQuestionTimeout": "5m"
}

/config では Question auto-continue timeout として表示され、このキーをユーザー設定に書き込みます。管理設定または --settings フラグがこのキーを設定している間、Claude Code はこの行を非表示にします。

autoContinueAtUsageLimit

claude.ai の使用制限によってセッションが停止した後、開いたままのセッションで待機し、リセット後にタスクを自動的に続行します。自動続行をオフにするを参照してください。Claude Code v2.1.234 以降が必要です。

  • スコープ: User or managed。ユーザー設定、--settings、管理設定からのみ読み取られます。これらのいずれもキーを設定していない場合、キーを設定しているプロジェクト設定ファイルやローカル設定ファイルは無視されるのではなく、この機能をオフにします。
  • 型: Boolean
    • true: claude.ai の使用制限によってセッションが停止した後、Claude Code は開いたままのセッションで待機し、リセット後にタスクを自動的に続行します
    • false: Claude Code は自分から待機を開始しません。使用制限のオプションメニューから自分で待機を開始することは引き続き可能です
  • デフォルト: true
{
  "autoContinueAtUsageLimit": false
}

/config では Continue automatically at usage limit として表示され、このキーをユーザー設定に書き込みます。管理設定または --settings フラグがこのキーを設定している間、Claude Code はこの行を非表示にします。

autoScrollEnabled

フルスクリーンレンダリングで、新しい出力に合わせて会話の末尾まで追従します。オフにすると、Claude が作業を続けている間もスクロールした位置にとどまります。権限プロンプトは引き続きスクロールして表示されます。

  • スコープ: Any file
  • 型: Boolean
    • true: 会話が新しい出力に合わせて末尾まで追従します
    • false: Claude が作業を続けている間もスクロールした位置にとどまります。権限プロンプトは引き続きトランスクリプトの下に表示されます
  • デフォルト: true
{
  "autoScrollEnabled": false
}

フルスクリーンレンダリングがオンのとき、/config に Auto-scroll として表示され、このキーをユーザー設定に書き込みます。

axScreenReader

スクリーンリーダー向けの出力をレンダリングします。装飾的な枠線やアニメーションのないフラットなテキストです。スクリーンリーダーモードはクラシックレンダラーを使用するため、有効な間は tui 設定は効果がありません。アタッチされたバックグラウンドセッションは引き続きフルスクリーンでレンダリングされます。

  • スコープ: User or managed。--settings で渡すファイルでもキーを設定できます。Claude Code はプロジェクト設定とローカル設定のキーを無視するため、リポジトリも自分の .claude/settings.local.json もスクリーンリーダーモードをオンまたはオフにすることはできません。
  • 型: Boolean
    • true: Claude Code はクラシックレンダラーを使用して、装飾的な枠線やアニメーションのないフラットなテキストをレンダリングします
    • false: Claude Code は通常どおりレンダリングします
  • デフォルト: 未設定のため、スクリーンリーダーモードはオフです
  • セッションごとの上書き: 1 つのセッションに対して、--ax-screen-reader は CLAUDE_AX_SCREEN_READER より優先され、どちらもこのキーより優先されます
{
  "axScreenReader": true
}

bashEditDiffEnabled

Bash コマンドの実行中に Git リポジトリ内で変更されたファイルを Claude Code が記録するかどうかを選択します。記録される場合、コマンドの後にターミナルでその差分が表示され、PostToolUse Bash フックは変更されたファイルのリストを受け取ります。

リストに含まれるファイルが、必ずしもそのコマンドによって変更されたものとは限りません。コマンドの実行中に別のプログラムや別の Bash 呼び出しが行った変更も含まれることがあります。

すべての権限モードで記録するには、キーを true に設定します。Claude Code v2.1.269 以降が必要です。

  • スコープ: User or managed。true はユーザー設定、--settings で渡された JSON、または管理設定からのものだけが有効になるため、リポジトリの .claude/settings.json や .claude/settings.local.json にある true では記録をオンにできません。ただし、どちらかのリポジトリファイルにある false は、優先順位の高いファイルが true を設定していない限り、記録をオフにします。
  • 型: Boolean
  • デフォルト: 未設定。この場合、Claude Code は auto モードと bypassPermissions モードで、Bash を通じてファイルを編集するよう Claude に指示したときに変更を記録します
  • セッションごとの上書き: 1 つのセッションに対して、CLAUDE_CODE_BASH_EDIT_DIFF はこのキーより優先されます
{
  "bashEditDiffEnabled": true
}

companyAnnouncements

起動時に組織のお知らせをユーザーに表示します。複数を指定した場合、Claude Code はセッションごとに 1 つをランダムに選びます。ユーザーが初めて起動したときは、最初のエントリを表示します。

  • スコープ: Any file
  • 型: 文字列の配列
  • デフォルト: 未設定のため、お知らせは表示されません
{
  "companyAnnouncements": [
    "Welcome to Acme Corp! Review our code guidelines at docs.example.com"
  ]
}

defaultShell

入力ボックスで ! プレフィックスを付けて入力したシェルコマンド、つまり Claude Code が直接実行してセッションに追加するコマンドを、Bash と PowerShell のどちらで実行するかを選択します。

"powershell" は PowerShell ツールがオンの場合にのみ機能します。このツールは、Git Bash のない Windows ではデフォルトでオンになり、Git Bash のある Windows では claude.ai アカウントと Console アカウントでオンになります。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry のセッション、および macOS、Linux、WSL では、CLAUDE_CODE_USE_POWERSHELL_TOOL=1 を設定するとツールがオンになります。この変数を 0 に設定するとツールがオフになります。

  • スコープ: Any file
  • 型: 文字列。次のいずれか:
    • "bash": Claude Code は ! コマンドを Bash で実行します
    • "powershell": Claude Code は ! コマンドを PowerShell で実行します
  • デフォルト: "bash"。Bash が利用できない Windows では "powershell"
{
  "defaultShell": "powershell"
}

指定したシェルが利用できない場合、Claude Code はもう一方を使用します。PowerShell ツールがオフの場合、"powershell" は Bash にフォールバックし、Bash がインストールされていない場合、"bash" は PowerShell にフォールバックします。

dialogExpiry

Remote Control や SDK ホストなど、Claude Code がリモートクライアントに転送するダイアログ、および保留中のセッション間メッセージの承認ダイアログの期限を設定します。Claude Code v2.1.236 以降では、ターミナルに誰もいない可能性のあるセッションにおいて、セッション途中の Fable 使用クレジットの同意プロンプトにも同じ期限が適用されます。期限までに回答がない場合、Claude Code はダイアログをキャンセルし、何もしないというデフォルトで続行します。Claude Code v2.1.224 以降が必要です。

  • スコープ: User or managed
  • 型: 文字列。"60s"、"5m"、"10m"、または期限を無効にする "never" のいずれか
  • デフォルト: "5m"
  • セッションごとの上書き: 1 つのセッションに対して、CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS はこのキーより優先されます
{
  "dialogExpiry": "10m"
}

権限プロンプトと AskUserQuestion の質問は独自のフローを使用するため、この期限の対象にはなりません。/config では Dialog expiry として表示され、このキーをユーザー設定に書き込みます。この行には Claude Code v2.1.232 以降が必要で、管理設定または --settings フラグがこのキーを設定している間、Claude Code はこの行を非表示にします。

editorMode

入力プロンプトのキーバインドモードを選択します。

  • スコープ: Any file
  • 型: 文字列。次のいずれか:
    • "normal": プロンプト入力での標準キーバインド
    • "vim": NORMAL、INSERT、VISUAL モードを備えた vim スタイルの編集
  • デフォルト: "normal"
{
  "editorMode": "vim"
}

/config では Editor mode として表示され、このキーをユーザー設定に書き込みます。

emojiCompletionEnabled

プロンプト入力で : に続けてショートコードを入力すると絵文字の候補を表示し、:heart: のような完成したショートコードを対応する絵文字に置き換えます。両方をオフにするには false に設定します。

  • スコープ: Any file
  • 型: Boolean
    • true: Claude Code は : の後に絵文字の候補を表示し、完成したショートコードを絵文字に置き換えます
    • false: Claude Code は絵文字を候補表示せず、ショートコードも置き換えません
  • デフォルト: true
{
  "emojiCompletionEnabled": false
}

絵文字ショートコードを参照してください。

fileSuggestion

組み込みのファイル候補の代わりに独自のコマンドを実行して、@ によるファイルパスのオートコンプリートを提供します。組み込みの候補は高速なファイルシステム走査を使用しますが、大規模なモノレポでは、事前構築されたファイルインデックスなどのプロジェクト固有のインデックスの方が適している場合があります。

  • スコープ: Any file。ステータスラインとファイル候補のゲートのもとでは、Claude Code はコマンドをオフにするか管理設定の値のみを実行し、ユーザーの値は警告なしにスキップします。
  • 型: 常に "command" である type と、実行するシェルコマンドである command を持つオブジェクト
  • デフォルト: 未設定のため、Claude Code は組み込みのファイル候補を使用します
{
  "fileSuggestion": {
    "type": "command",
    "command": "~/.claude/file-suggestion.sh"
  }
}

これを保存した後、プロンプトで @ に続けてパスの一部を入力すると、候補はコマンドの出力から取得されます。

コマンドの入力と出力

Claude Code は、CLAUDE_PROJECT_DIR を含め、フックと同じ環境変数でコマンドを実行し、5 秒経過すると待機をやめます。コマンドは stdin で JSON を受け取り、その query フィールドにはそれまでに入力された内容が入っています:

{"query": "src/comp"}

改行区切りのファイルパスを stdout に出力します。Claude Code は最大 15 件を表示します:

src/components/Button.tsx
src/components/Modal.tsx
src/components/Form.tsx

次のスクリプトはクエリを読み取り、リポジトリのファイルインデックスに渡します:

#!/bin/bash
query=$(cat | jq -r '.query')
# Replace your-repo-file-index with your own file search command
your-repo-file-index --query "$query" | head -20

正規表現がターンの出力(ファイルの内容や取得したページを含むツール結果、および Claude 自身の応答)に一致したとき、入力ボックスの下のフッターにクリック可能な追加バッジをレンダリングします。レビューツールや課題トラッカーなど、プロジェクトの CLI が出力する ID をセッション内のリンクに変えるために使用します。

  • スコープ: User or managed
  • 型: オブジェクトの配列。各オブジェクトは "regex" に設定された type、正規表現の pattern、url テンプレート、およびオプションの label を持ちます。url と label 内の {name} プレースホルダーは、pattern の名前付きキャプチャグループから埋められます
  • デフォルト: 未設定のため、バッジはレンダリングされません

この例では PROJ-1234 のような課題キーに一致させ、キャプチャしたキーから各リンクを作成します:

{
  "footerLinksRegexes": [
    {
      "type": "regex",
      "pattern": "\\b(?<key>PROJ-\\d+)\\b",
      "url": "https://issues.example.com/browse/{key}",
      "label": "{key}"
    }
  ]
}

これを設定すると、ツール結果や Claude の応答に PROJ-1234 が現れたとき、https://issues.example.com/browse/PROJ-1234 にリンクする PROJ-1234 バッジがフッターに表示されます。

バッジの制約

各エントリの URL、ラベル、バッジ数には次の制限があります:

制約 動作
URL のオリジン キャプチャされた値は URL エンコードされ、作成された URL はテンプレートのリテラルなオリジンと同じでなければなりません。キャプチャはパスセグメントやクエリ値を埋めることはできますが、リンク先を変更することはできません
URL の長さ 2048 文字を超える作成された URL は破棄されます
URL スキーム https、http、または認識されたエディターやワークスペースのディープリンクスキーム(vscode、vscode-insiders、cursor、windsurf、zed、jetbrains、idea、slack、linear、notion、figma)である必要があります
ラベル デフォルトは一致したテキストで、表示幅 28 カラムに切り詰められます
バッジ数 レンダリングされるバッジは最大 5 個です。新しい一致によって最も古いものが押し出され、/clear で削除されます

ターンが完了すると、Claude Code はメインスレッドで各エントリの pattern 正規表現をターンの出力と照合するため、遅い正規表現は完了するまで UI をブロックします。(a+)+$ のようなネストした量指定子は、特定の入力に対して指数関数的に時間がかかり、セッションをフリーズさせる可能性があるため、各 pattern は線形に保ち、+ や * のネストは避けてください。

カスタムステータスラインが設定されている場合、フッターバッジはそれと並んでレンダリングされ、どちらも他方を置き換えることはありません。セッションデータから独自にコンテンツを計算するスクリプト駆動の行にはステータスラインを使用し、スクリプトなしで会話中の ID をリンクに変えるにはフッターバッジを使用します。

keybindingFlavor

[!WARNING]

v2.1.261 以降は非推奨で、効果はありません。プロンプトの単語編集キーは、Bash と同様に常に readline の慣例に従います。Claude Code は引き続き keybindingFlavor を受け付けるため、これを設定している設定ファイルは有効なままです。

v2.1.238 から v2.1.260 では、これを "readline" に設定すると、Ctrl+W は直前の単語だけを削除するのではなく、直前の空白まで戻って削除するようになりました。

  • スコープ: Any file
  • 型: 文字列。"classic" または "readline"
  • デフォルト: 未設定

maxProseWidth

Claude の応答に含まれる文章の幅に上限を設け、幅の広いターミナルでも行を読みやすく保ちます。段落、見出し、リスト、引用ブロックはこのカラム数の範囲内で折り返され、テーブルとコードブロックはターミナルの全幅を維持します。Claude Code v2.1.282 以降が必要です。

  • スコープ: Any file
  • 型: ターミナルのカラム数。整数で、最小値は 40 です。Claude Code はそれ以外の値を無視します
  • デフォルト: 未設定のため、文章はターミナルの端で折り返されます
{
  "maxProseWidth": 80
}

prefersReducedMotion

スピナー、シマー、フラッシュ効果などのインターフェースのアニメーションを減らすか、オフにします。/config では Reduce motion として表示されます。

  • スコープ: Any file
  • 型: Boolean
    • true: Claude Code はスピナー、シマー、フラッシュ効果などのインターフェースのアニメーションを減らすか、オフにします
    • false: 未設定と同じです。Claude Code はアニメーションを表示します
  • デフォルト: false
{
  "prefersReducedMotion": true
}

promptSuggestionEnabled

プロンプト入力に表示されるグレーアウトされた予測であるプロンプト候補の表示・非表示を切り替えます。非表示にするには、false に設定するか、/config で Prompt suggestions をオフにします。

  • スコープ: Any file
  • 型: Boolean
    • true: プロンプト入力にプロンプト候補が表示されます
    • false: Claude Code はプロンプト候補を非表示にします
  • デフォルト: true
  • セッションごとの上書き: 1 つのセッションに対して、CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION はこのキーより優先されます
{
  "promptSuggestionEnabled": false
}

プロンプト候補には、テレメトリがオンになっている claude.ai アカウントまたは Console アカウントが必要です。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry を使用している場合や、DISABLE_TELEMETRY などでテレメトリがオフになっている場合、このキーは効果がなく、CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=1 のみがプロンプト候補をオンにします。

respectGitignore

@ ファイルピッカーが .gitignore のパターンに一致するファイルを除外するかどうかを制御します。/config では Respect .gitignore in file picker として表示されます。

  • スコープ: Any file。どの設定ファイルもこれを設定していない場合、Claude Code は /config のトグルが書き込む ~/.claude.json の respectGitignore にフォールバックします。
  • 型: Boolean
    • true: @ ファイルピッカーは .gitignore のパターンに一致するファイルを除外します
    • false: @ ファイルピッカーは .gitignore のパターンに一致するファイルを含めます
  • デフォルト: true
{
  "respectGitignore": false
}

respondToBashCommands

入力ボックスで ! プレフィックスを付けてシェルコマンドを実行した後に Claude が応答するかどうかを選択します。デフォルトでは、Claude Code はコマンドの出力を会話に追加し、Claude がそれに応答します。このキーを false に設定すると、応答なしで出力がコンテキストに追加されるため、複数のコマンドを実行してからまとめて質問できます。

  • スコープ: Any file
  • 型: Boolean
    • true: Claude Code はコマンドの出力を会話に追加し、Claude がそれに応答します
    • false: Claude Code は応答なしで出力をコンテキストに追加します
  • デフォルト: true
{
  "respondToBashCommands": false
}

! プレフィックスによるシェルモードを参照してください。

showClearContextOnPlanAccept

plan モードで Claude がプランを完成させると、承認メニューが表示されます。プランの作成には多くのコンテキストを使用することがあるため、このキーはそのメニューに最初のオプションとして Yes, clear context and … を追加します。このオプションはプランを承認し、会話のコンテキストをクリアして、プランのみから実装を開始します。ラベルの残りの部分には、セッションが継続する権限モードの名前と、プランの作成に使用したコンテキストの量が表示されます。

  • スコープ: Any file
  • 型: Boolean
    • true: プラン承認メニューに、プランを承認して会話のコンテキストをクリアする最初のオプション Yes, clear context and … が追加されます
    • false: プラン承認メニューにコンテキストをクリアするオプションは表示されません
  • デフォルト: false
{
  "showClearContextOnPlanAccept": true
}

showTurnDuration

各応答の後に表示される「Cooked for 1m 6s · done 6:05 PM」のようなターン所要時間メッセージの表示・非表示を切り替えます。「done」の後の時刻はターンが終了した時刻を示し、timeFormat と timeZone がその形式とタイムゾーンを制御します。/config では Show turn duration として表示されます。

  • スコープ: Any file。どの設定ファイルもこれを設定していない場合、古いバージョンの ~/.claude.json にある値が適用されます。
  • 型: Boolean
    • true: 各応答の後にターン所要時間メッセージが表示されます
    • false: Claude Code はターン所要時間メッセージを非表示にします
  • デフォルト: true
{
  "showTurnDuration": false
}

spellcheck

インストールしたスペルチェッカーを使用して、入力中にプロンプト入力内のスペルミスに下線を引きます。Claude Code は入力ボックス内のテキストのみをチェックします。aspell、hunspell、ispell のインストール方法とチェッカーの対象範囲については、入力中のスペルチェックで説明しています。Claude Code v2.1.235 以降が必要です。

  • スコープ: User or managed。これを設定している最上位の階層のブロックが全体として適用されます。
  • 型: enabled(Boolean)、checker("aspell"、"hunspell"、"ispell"、または "auto")、language(文字列。辞書名としてチェッカーに渡されます)、color(文字列。ターミナルのカラー名、#rrggbb、rgb(r,g,b)、ansi256(n)、または ansi:<name>)を持つオブジェクト
  • デフォルト: 未設定のため、スペルチェックはオフです。checker のデフォルトは "auto" で、PATH 上で最初に見つかった 3 つのうちのいずれかです。language のデフォルトはチェッカー自身の辞書です。color のデフォルトはテーマのエラーカラーです
{
  "spellcheck": { "enabled": true, "language": "en_GB" }
}

spinnerTipsEnabled

Claude が作業している間、スピナーの行には「Use Plan Mode to prepare for a complex request before making changes. Press Shift+Tab twice to enable.」のような Claude Code の機能に関する短いヒントが順番に表示されます。非表示にするには、このキーを false に設定します。/config では Show tips として表示されます。

  • スコープ: Any file
  • 型: Boolean
    • true: Claude の作業中にスピナーにヒントが表示されます
    • false: Claude Code はスピナーのヒントを非表示にします
  • デフォルト: true
{
  "spinnerTipsEnabled": false
}

spinnerTipsOverride

Claude の作業中に Claude Code が表示するスピナーのヒントに独自のヒントを追加するか、組み込みのヒントを独自のものに置き換えます。Claude Code は独自のヒントを組み込みのヒントと同じローテーションに入れます。

spinnerTipsEnabled を false に設定すると、Claude Code は独自のものを含むすべてのヒントを非表示にします。

  • スコープ: Any file。Claude Code は、ユーザー設定、--settings フラグ、管理設定からのヒントオブジェクト、tipsFile、label、excludeDefault を受け付けます。プロジェクト設定とローカル設定からはプレーンな文字列のヒントのみを読み取ります。
  • 型: tips、tipsFile、label、excludeDefault フィールドを持つオブジェクト。各フィールドはオプションです
  • デフォルト: 未設定のため、Claude Code は組み込みのヒントのみを表示します

ヒントオブジェクト、tipsFile、label、およびプロジェクト設定とローカル設定はプレーンな文字列のみを提供するというスコープ行のルールには、Claude Code v2.1.247 以降が必要です。

各 tips エントリは、プレーンな文字列か、次のフィールドを持つオブジェクトです:

フィールド 必須 説明
id はい 英字、数字、.、_、- で最大 64 文字。Claude Code はこれをキーとしてヒントの表示履歴を管理するため、リストを並べ替えてもヒントのクールダウンは維持されます。同じ id を持つ 2 つのエントリがある場合、Claude Code は最初のものを使用します
text はい ヒント本文。最大 500 文字の 1 行です。Claude Code は ANSI エスケープと制御文字を取り除き、空白を 1 つにまとめます
cooldownSessions いいえ Claude Code がヒントを再び表示するまでに待つセッション数。0 から 1000、デフォルトは 0
priority いいえ 未表示の期間が同じヒント間での順序。高いものが先で、-10 から 10、デフォルトは 0

Claude Code はプレーンな文字列を、これらのデフォルト値と位置に基づく id を持つヒントとして読み取るため、リストを並べ替えるとその表示履歴はリセットされます。編集しても履歴を維持するには、ヒントに id を付けてください。

Claude Code は tips と tipsFile を合わせて最大 200 個のヒントを読み取り、無効なエントリは設定ファイルを拒否するのではなく、デバッグ警告を出して破棄します。

残りのフィールドを使用して、ヒントファイルの指定、プレフィックスの設定、組み込みヒントの非表示を行います:

  • tipsFile: 同じエントリの配列、または tips 配列を持つオブジェクトを含むローカル JSON ファイルへの絶対パスまたは ~/ パス。最大 256 KB です。Claude Code はプロセスごとに 1 回ファイルを読み取るため、編集内容は次回の起動時に読み込まれます。サーバー管理設定では設定できません。そこではインラインの tips をデプロイするか、ディスク上の managed-settings.json にパスをデプロイしてください。
  • label: ユーザー設定、--settings、管理設定からのヒントの前に Claude Code が表示するプレフィックス。最大 40 文字です。デフォルトは組み込みヒントと同じプレフィックスである Tip で、プロジェクト設定とローカル設定からのヒントは常にこれを使用します。
  • excludeDefault: 組み込みヒントを非表示にして独自のヒントのみを表示するには、true に設定します。tipsFile が存在しない、またはすべてのエントリが無効であるなどの理由で Claude Code が独自のヒントを 1 つも読み込めない場合は、スピナーを空にするのではなく、組み込みのローテーションを維持します。

複数の設定ファイルがこのキーを設定している場合、Claude Code はそれらすべてのヒントを表示し、tipsFile、label、excludeDefault については、管理設定、--settings フラグ、ユーザー設定のうち、それぞれを設定している最も優先順位の高いものから取得します。

ユーザー設定に記述したこの例では、プレーンな文字列のヒントとオブジェクトのヒントを Acme tip プレフィックスでローテーションに追加します:

{
  "spinnerTipsOverride": {
    "label": "Acme tip",
    "tips": [
      "Run /review before opening a PR",
      {
        "id": "gateway-errors",
        "text": "Seeing 5xx errors? Check the gateway status page first",
        "cooldownSessions": 5,
        "priority": 2
      }
    ]
  }
}

例の各フィールドは、Claude Code によるヒントの表示方法をそれぞれ 1 点ずつ変更します:

  • label: Claude Code は両方のヒントを Tip: ... ではなく Acme tip: ... として表示します。
  • プレーンな文字列: Claude Code はデフォルト値を与えるため、すぐ次のセッションで再び表示されることがあります。
  • id: Claude Code は 2 つ目のヒントの表示履歴を gateway-errors をキーとして管理するため、ヒントを追加したり並べ替えたりしてもクールダウンは引き続き適用されます。
  • cooldownSessions: Claude Code は gateway-errors ヒントを表示した後、5 セッション後まで再び表示しません。
  • priority: gateway-errors ヒントと別のヒントが同じセッション数だけ未表示である場合(たとえばどちらもまだ表示されていない場合)、Claude Code は gateway-errors を先に表示します。プレーンな文字列はデフォルトの優先度 0 を持ちます。

Claude の作業中、Claude Code は Acme tip: Run /review before opening a PR のように、独自のプレフィックス付きでヒントをスピナーに表示します。

spinnerVerbs

ターンの進行中、スピナーには「Accomplishing」「Architecting」「Baking」などの動詞が順番に表示されます。このキーを使用して、そのローテーションに独自の動詞を追加するか、組み込みのリストを独自のものに置き換えます。

  • スコープ: Any file
  • 型: 文字列の verbs 配列と mode を持つオブジェクト。mode は次のいずれか:
    • "append": Claude Code は独自の動詞を組み込みのセットに追加します
    • "replace": Claude Code は独自の動詞のみを表示します
  • デフォルト: 未設定のため、Claude Code は組み込みの動詞を使用します

この例では、組み込みのセットに 2 つの動詞を追加します:

{
  "spinnerVerbs": {
    "mode": "append",
    "verbs": ["Pondering", "Crafting"]
  }
}

"replace" モードで verbs 配列が空の場合、Claude Code は組み込みの動詞を維持します。

statusLine

独自のコマンドを実行して、モデル、コスト、git ブランチなどのコンテキストを含むステータスラインをプロンプトの下にレンダリングします。オプションのフィールドで、間隔の調整、定期的な再実行の追加、スクリプト自身が vim.mode をレンダリングする場合の組み込み vim モードインジケーターの非表示を行えます。

  • スコープ: Any file。allowManagedHooksOnly がオンの場合、または管理設定以外で disableAllHooks が設定されている場合は、管理設定の値のみが実行されます。
  • 型: "command" に設定された type と command 文字列、およびオプションで文字数を表す数値の padding、秒数を表す数値(最小 1)の refreshInterval、Boolean の hideVimModeIndicator を持つオブジェクト
  • デフォルト: 未設定のため、ステータスラインはありません

この例では、モデル名とコンテキスト使用量を出力し、水平方向に 2 文字分の間隔を追加します:

{
  "statusLine": {
    "type": "command",
    "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",
    "padding": 2
  }
}

この例には jq のインストールが必要で、シェルで実行されます。PowerShell と Git Bash での同等の設定については、Windows での設定を参照してください。セットアップ全体については、ステータスラインを手動で設定するを参照してください。

subagentStatusLine

Claude がサブエージェントを実行すると、Claude Code はプロンプトの下のタスク表示にそれらを一覧表示し、サブエージェントごとに name · description · token count を示す行を 1 つずつ表示します。このキーを使用すると、独自のコマンドを実行してそれらの行を書き換えることができます。たとえば、各サブエージェントのコンテキスト使用量をパーセンテージで表示できます。更新のたびに、Claude Code は表示中の行を 1 つの JSON オブジェクトとして stdin に送信します。このオブジェクトの tasks 配列には、各サブエージェントの id、name、status、model、tokenCount などが含まれます。Claude Code は、{"id", "content"} 行として書き戻した各 id の行を置き換えます。書き戻さなかった行はデフォルトのレンダリングのままです。

  • スコープ: Any file。allowManagedHooksOnly がオンの場合、または管理設定以外で disableAllHooks が設定されている場合は、管理設定の値のみが実行されます。
  • 型: "command" に設定された type と command 文字列を持つオブジェクト
  • デフォルト: 未設定のため、Claude Code はデフォルトの行をレンダリングします
{
  "subagentStatusLine": {
    "type": "command",
    "command": "jq -c '.tasks[] | {id, content: \"\\(.name): \\(.tokenCount) tokens\"}'"
  }
}

サブエージェントのステータスラインを参照してください。

syntaxHighlightingDisabled

Claude Code は、ターミナルに表示する差分、コードブロック、ファイルプレビューのコードを、組み込みのハイライターで言語ごとに色分けします。プラグインや言語サーバーは関与しません。代わりにプレーンテキストとして表示するには、このキーを true に設定します。たとえば、色がターミナルのテーマと合わない場合や、スクリーンリーダーの動作が遅くなる場合に使用します。

  • スコープ: Any file
  • 型: Boolean
    • true: Claude Code は差分、コードブロック、ファイルプレビューのシンタックスハイライトをオフにします
    • false: Claude Code はシンタックスハイライトを行います
  • デフォルト: false
{
  "syntaxHighlightingDisabled": true
}

terminalProgressBarEnabled

一部のターミナルでは、内部で実行中のプログラムについて、タブやタスクバーに進行状況インジケーターを表示できます。Claude が作業している間、Claude Code は進行中の状態をターミナルに報告するため、別のタブやウィンドウからセッションがまだ処理中かどうかを確認できます。インジケーターは、ターンの終了後もバックグラウンドサブエージェントや動的ワークフローがまだ実行中であれば表示されたままになり、セッションがアイドル状態になると消えます。

Claude Code は、インジケーターをサポートするターミナル(ConEmu、Ghostty 1.2.0 以降、iTerm2 3.6.6 以降)でのみこれを報告します。Claude Code による報告を停止するには、このキーを false に設定します。/config では Terminal progress bar として表示されます。

  • スコープ: Any file。どの設定ファイルもこれを設定していない場合、古いバージョンの ~/.claude.json にある値が適用されます。
  • 型: Boolean
    • true: サポートしているターミナルでターミナルのプログレスバーが表示されます
    • false: Claude Code はターミナルのプログレスバーを非表示にします
  • デフォルト: true
{
  "terminalProgressBarEnabled": false
}

terminalTitleFromRename

Claude Code はターミナルタブのタイトルを設定します。デフォルトでは会話から生成したタイトルを使用し、/rename または --name でセッションに名前を付けると、タブには代わりにその名前が表示されます。セッションに名前を付けた後も生成されたタイトルをタブに残すには、このキーを false に設定します。名前自体は引き続き適用されるため、/resume <name> やセッションピッカーで見つけられます。

  • スコープ: Any file
  • 型: Boolean
    • true: ターミナルタブのタイトルに、設定したセッション名が表示されます
    • false: タブには Claude Code が会話から生成したタイトルが残ります
  • デフォルト: true
{
  "terminalTitleFromRename": false
}

Claude Code によるターミナルタイトルの更新を完全に停止するには、代わりに CLAUDE_CODE_DISABLE_TERMINAL_TITLE を 1 に設定します。

theme

インターフェースのカラーテーマを選択します。/config では Theme として表示されます。

  • スコープ: Any file。どの設定ファイルもこれを設定していない場合、古いバージョンの ~/.claude.json にある値が適用されます。
  • 型: 文字列。次のいずれか:
    • "auto": ターミナルの明るい背景または暗い背景に合わせます
    • "dark": ダークテーマ
    • "light": ライトテーマ
    • "dark-daltonized": 色覚多様性に配慮した色を使用するダークテーマ
    • "light-daltonized": 色覚多様性に配慮した色を使用するライトテーマ
    • "dark-ansi": ターミナルの ANSI カラーパレットのみを使用するダークテーマ
    • "light-ansi": ターミナルの ANSI カラーパレットのみを使用するライトテーマ
    • "custom:<slug>" または "custom:<plugin-name>:<slug>": ~/.claude/themes/ またはプラグインのカスタムテーマ
  • デフォルト: "dark"
{
  "theme": "light-daltonized"
}

カスタムテーマを作成するを参照してください。

timeFormat

各ターン所要時間メッセージの末尾にある done 6:05 PM やトランスクリプトビューアーのタイムスタンプなど、Claude Code がインターフェースに表示する時刻の書式を選択します。プリセットを選ぶには、/config を実行して Time format を設定します。Claude Code v2.1.257 以降が必要です。

  • スコープ: Any file
  • 型: 文字列。次のいずれか:
    • "auto": 未設定と同じです。各時刻は組み込みの書式を維持し、ターン所要時間メッセージではロケールに従います
    • "12-hour": 12 時間制
    • "24-hour": 24 時間制
    • "24-hour-utc": 18:05Z のように分の後に Z を付けた UTC の 24 時間制。このプリセットでは Claude Code は timeZone を無視します
    • "%H:%M" のような strftime パターン: Claude Code は各時刻をそのパターンで書き出します。% を含む値はすべてパターンとして扱われ、プリセット以外のその他の値は "auto" として扱われます
  • デフォルト: "auto"
{
  "timeFormat": "24-hour"
}

/config ではプリセットのみが提供されるため、strftime パターンを使用するには、設定ファイルにキーを追加します。この例では、各時刻を 2 桁の 24 時間制で表示します:

{
  "timeFormat": "%H:%M"
}

すると、ターン所要時間メッセージとトランスクリプトビューアーには 18:05 のような時刻が表示されます。トランスクリプトビューアーではパターンがタイムスタンプ全体になるため、日付を表示したい場合は日付のディレクティブを追加します。この例では、時刻の前に日付を置きます:

{
  "timeFormat": "%Y-%m-%d %H:%M"
}

すると、同じ箇所に 2026-09-01 18:05 のような時刻が表示されます。

timeZone

インターフェースの時刻を、システムとは異なるタイムゾーンで表示します。"UTC" や "Europe/Dublin" のような IANA タイムゾーン名を設定します。すると、timeFormat が制御する時刻がこのタイムゾーンで表示されます。timeFormat が "24-hour-utc" の場合、時刻は UTC のままで、Claude Code はこのキーを無視します。/config にはこのキーの行がないため、設定ファイルで設定してください。Claude Code v2.1.257 以降が必要です。

  • スコープ: Any file
  • 型: 文字列。IANA タイムゾーン名です。Claude Code が名前を認識できない場合は、システムのタイムゾーンを使用します
  • デフォルト: 未設定のため、時刻はシステムのタイムゾーンで表示されます
{
  "timeZone": "Europe/Dublin"
}

tui

ターミナル UI のレンダラーを選択します。仮想化されたスクロールバックを備えたちらつきのない代替画面レンダラーには "fullscreen" を、クラシックなメイン画面レンダラーには "default" を使用します。/tui fullscreen または /tui default を実行すると、このキーが自動的に書き込まれます。

  • スコープ: Any file
  • 型: 文字列。次のいずれか:
    • "default": クラシックなメイン画面レンダラー
    • "fullscreen": 仮想化されたスクロールバックを備えた、ちらつきのない代替画面レンダラー
  • デフォルト: 未設定のため、Claude Code がレンダラーを選択します
  • セッションごとの上書き: 1 つのセッションに対して、CLAUDE_CODE_NO_FLICKER と CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN はこのキーより優先されます。CLAUDE_CODE_NO_FLICKER=1 はフルスクリーンをオンにし、CLAUDE_CODE_NO_FLICKER=0 または CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 はオフにします。両方が設定されている場合、Claude Code はオフにします
{
  "tui": "fullscreen"
}

tmux -CC 環境下や、Windows への SSH 接続時には、CLAUDE_CODE_NO_FLICKER=1 を設定しない限り、Claude Code はクラシックレンダラーを維持します。エージェントビューから開いたバックグラウンドセッションは、この設定にかかわらず常にフルスクリーンレンダラーを使用します。

verbose

デフォルトでは、トランスクリプトは各ツール呼び出しを、Claude が実行したコマンドやその出力の行数などの短い概要に折りたたみます。詳細を見たいときは Ctrl+O を押すと、トランスクリプト全体が展開表示に切り替わります。このキーを true に設定すると、すべてのツール呼び出しの完全な入力と出力が発生と同時にインラインで表示されます。これは、フック、MCP サーバー、または長いシェルコマンドをデバッグするときに便利です。/config では Verbose output として表示されます。

  • スコープ: Any file。どの設定ファイルもこれを設定していない場合、古いバージョンの ~/.claude.json にある値が適用されます。
  • 型: Boolean
    • true: ツールの完全な出力が表示されます
    • false: ツール出力の切り詰められた概要が表示されます
  • デフォルト: false
  • セッションごとの上書き: 1 つのセッションに対して、--verbose はこのキーより優先されます
{
  "verbose": true
}

viewMode の値、または保持された /focus の選択は、すべてのセッションでこのキーを上書きします。

viewMode

Claude Code が起動時に使用するトランスクリプトビューを "default"、"verbose"、"focus" のいずれかに設定します。設定すると、保持された /focus の選択と verbose 設定の両方を上書きします。

  • スコープ: Any file
  • 型: 文字列。次のいずれか:
    • "default": ツール出力が切り詰められた通常のトランスクリプト
    • "verbose": ツールの完全な出力を含むトランスクリプト
    • "focus": 最後のプロンプト、編集の diffstat を含むツール呼び出しの 1 行の概要、および最終的な応答のみ。フォーカスビューにはフルスクリーンレンダラーが必要です
  • デフォルト: 未設定のため、verbose 設定と最後の /focus の選択が適用されます
  • セッションごとの上書き: 1 つのセッションに対して、--verbose はこのキーより優先されます
{
  "viewMode": "focus"
}

vimInsertModeRemaps

vim エディターモードで、2 キーの INSERT モードのシーケンスを Escape にマッピングします。各キーは順に入力されるちょうど 2 つの印字可能文字で、サポートされるターゲットは "<Esc>" のみです。Claude Code はその他のエントリを無視します。

  • スコープ: User or managed。リポジトリがユーザーのキー入力を再マッピングすることはできません。
  • 型: 2 文字のシーケンスを "<Esc>" にマッピングするオブジェクト
  • デフォルト: 未設定
{
  "vimInsertModeRemaps": {
    "jj": "<Esc>"
  }
}

editorMode が "vim" でない限り、効果はありません。INSERT モードのキーシーケンスを再マッピングするを参照してください。

voice

音声入力をオンにし、音声入力キーの動作を選択します。/voice を実行すると、Claude Code がこのオブジェクトを自動的に書き込みます。

  • スコープ: Any file
  • 型: Boolean の enabled、ホールドモードでのみ適用される Boolean の autoSubmit、および mode を持つオブジェクト。mode は次のいずれか:
    • "hold": 話している間は音声入力キーを押し続け、離すと停止します
    • "tap": キーを 1 回タップすると録音を開始し、もう一度タップすると送信します
  • デフォルト: 未設定のため、音声入力はオフです。enabled が true で mode が未設定の場合、Claude Code は "hold" を使用します

この例では、音声入力をオンにし、キーを 1 回タップすると録音を開始し、もう一度タップすると送信するようにします:

{
  "voice": {
    "enabled": true,
    "mode": "tap"
  }
}

autoSubmit は、ホールドモードでキーを離したときにプロンプトを送信します。音声入力には claude.ai アカウントが必要です。

voiceEnabled

[!WARNING]

v2.1.92 で voice オブジェクトに置き換えられて以降、非推奨です。古い設定ファイルが引き続き機能するよう Claude Code はこれを読み取りますが、新しい設定では voice.enabled を設定してください。

voice オブジェクトより前からある単一の Boolean 形式で、音声入力をオンにします。両方が設定されている場合は、voice.enabled が適用されます。

  • スコープ: Any file
  • 型: Boolean
    • true: voice.enabled が設定されていない限り、claude.ai アカウントでログインしていて組織のポリシーが音声を許可している場合に、音声入力がオンになります
    • false: voice.enabled が設定されていない限り、音声入力はオフです
  • デフォルト: 未設定
{
  "voiceEnabled": true
}

wheelScrollAccelerationEnabled

フルスクリーンレンダリングで、高速スクロール時にマウスホイールのスクロール速度を加速します。ホイールのノッチごとに一定のスクロール量にするには、false に設定します。

  • スコープ: Any file
  • 型: Boolean
    • true: Claude Code は高速スクロール時にマウスホイールのスクロール速度を加速します
    • false: Claude Code はホイールのノッチごとに一定の量でスクロールします
  • デフォルト: true
{
  "wheelScrollAccelerationEnabled": false
}

Git とアトリビューション

Claude Code がコミットとプルリクエストに追加するアトリビューションを制御し、git との連携方法を設定します。

attribution

Claude Code が git コミットとプルリクエストに追加するアトリビューションをカスタマイズします。コミットはデフォルトで Co-Authored-By などの git トレーラー を取得します。プルリクエストの説明はプレーンテキストを取得します。以下のサブキーを使用して各部分を個別に設定します。

全てのアトリビューションを非表示にするには、attribution を false に設定します。それより前のバージョンも読み込む設定ファイルでは、commit と pr を空の文字列に設定し、sessionUrl を false に設定してください。

この例はコミットアトリビューションを置き換え、プルリクエストアトリビューションを削除し、セッションリンクを削除します。

{
  "attribution": {
    "commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>",
    "pr": "",
    "sessionUrl": false
  }
}

commit または pr を設定すると、Claude Code は非推奨の includeCoAuthoredBy 設定を無視し、設定しなかった方のデフォルトテキストを使用します。

Claude Code は、CLAUDE.md または memory ルールなど、アトリビューションに関するカスタマー独自の命令が、managed settings で設定されている場合を除き、これらのコミットおよび PR 行より優先されることを Claude に伝えます。

includeCoAuthoredBy

[!WARNING]

v2.0.62 以降非推奨。attribution に置き換えられました。Claude Code はまだこれを読み込みますが、新しい設定は attribution を設定する必要があります。

このキーを置き換える attribution を代わりに使用してください。これにより、コミットトレーラー、プルリクエストテキスト、セッションリンクを個別に変更または非表示にできます。Claude Code は attribution より前の設定ファイルからの includeCoAuthoredBy: false を引き続き尊重しますが、attribution.commit または attribution.pr を設定すると無視します。

  • スコープ: Any file
  • タイプ: ブール値
    • true: 未設定と同じ。Claude Code はコミットトレーラーとプルリクエストアトリビューションテキストを追加します
    • false: Claude Code はコミットトレーラーとプルリクエストアトリビューションテキストの両方を省略します。ただし、attribution が commit または pr を設定する場合は、attribution ルールが適用されます
  • デフォルト: true
{
  "includeCoAuthoredBy": false
}

全てのアトリビューションを非表示にするには、attribution を参照してください。

includeGitInstructions

Claude Code は git 関連の 2 つの部分をコンテキストとして Claude に提供します。Bash ツールの説明にあるコミットとプルリクエストの書き方に関する組み込み命令と、リポジトリの git ステータススナップショット(現在のブランチ、メインブランチ、git status 出力、最近のコミット)です。Claude Code はコンバーセーション開始時にスナップショットを読み込みます。

このキーを false に設定して両方を除外します。例えば、独自の git ワークフロースキルを使用する場合などです。

  • スコープ: Any file
  • タイプ: ブール値
    • true: Claude Code は組み込みのコミットおよびプルリクエストワークフロー命令と git ステータススナップショットを含めます。クラウドセッションはスナップショットを含めません
    • false: Claude Code は両方を除外します
  • デフォルト: true
  • セッションごとのオーバーライド: CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS はこのキーより優先されます(1 セッション)
{
  "includeGitInstructions": false
}

非対話モード または Agent SDK でシステムプロンプトを置き換えると、このキーが true の場合でも、セッションはスナップショットなしで開始されます。

  • -p 実行: --system-prompt または --system-prompt-file を渡すと、プロンプトが置き換えられます。--agent または agent 設定で選択した、独自のプロンプトを持つカスタムエージェントを実行した場合も、プロンプトが置き換えられます。bare モード 以外でスナップショットを保持するには、カスタムエージェントなしで実行し、プロンプトを置き換える代わりに --append-system-prompt で指示を追加してください。
  • Agent SDK: カスタムシステムプロンプトまたはカスタムのメインスレッドエージェントを使用すると、プロンプトが置き換えられます。システムプロンプトを設定しない場合、SDK は最小限のデフォルトを使用し、この場合もセッションはスナップショットなしで開始されます。bare モード 以外でスナップショットを保持するには、カスタム agent なしで claude_code プリセットを使用してください。

prUrlTemplate

Claude Code がレンダリングする PR リンク(フッターバッジとツール結果サマリー内)を github.com の代わりに内部コードレビューツールに指定します。Claude Code は PR URL から {host}、{owner}、{repo}、{number}、{url} を置き換えます。両方のサーフェス上の GitLab マージリクエスト リンクは GitLab URL を保持します。

  • スコープ: Any file
  • タイプ: 文字列。5 つのプレースホルダーのいずれかを使用する URL テンプレート
  • デフォルト: 未設定
{
  "prUrlTemplate": "https://reviews.example.com/{owner}/{repo}/pull/{number}"
}

Claude Code はそれ自体がレンダリングするリンクにのみテンプレートを適用します。Claude がメッセージに書き込む PR 番号(#123 など)は Claude が書き込んだままです。/pull/<number> の形状を持たない URL は変更されません。

attribution.commit

Claude Code が git コミットに追加するアトリビューションテキスト(トレーラーを含む)を設定します。コミットアトリビューションを非表示にするには、空の文字列に設定します。

  • スコープ: Any file
  • タイプ: 文字列
  • デフォルト: 未設定。Claude Code は Co-Authored-By: <name> <noreply@anthropic.com> を追加します。名前はコミットが作成されるときに使用されているモデル(Claude Sonnet 5 など)です。subagent がコミットを作成する場合、トレーラーは subagent のモデルに名前を付けます。
    • Claude Code がモデルを Claude モデルとして認識しているが、その正確なバージョンを確認できない場合、Claude のみを書き込みます。
    • モデル ID をカスタム ANTHROPIC_BASE_URL を通じて提供されるサードパーティモデルなど、Claude モデルと一致させることができない場合、Claude Code を書き込みます。

この例はデフォルトトレーラーをカスタム行とカスタム Co-Authored-By トレーラーに置き換えます。

{
  "attribution": {
    "commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>"
  }
}

attribution.pr

Claude Code がプルリクエストの説明に追加するアトリビューションテキストを設定します。プルリクエストアトリビューションを非表示にするには、空の文字列に設定します。

  • スコープ: Any file
  • タイプ: 文字列
  • デフォルト: 未設定。Claude Code は 🤖 Generated with [Claude Code](https://claude.com/claude-code) を追加します
{
  "attribution": {
    "pr": ""
  }
}

attribution.sessionUrl

Claude Code が クラウド または Remote Control セッションからコミットするか、プルリクエストを開くときに claude.ai セッションリンクを追加するかどうかを選択します。Claude Code はコミット上に Claude-Session トレーラーとしてリンクを追加し、プルリクエストの説明にリンクとして追加します。リンクを省略するには false に設定します。

  • スコープ: Any file
  • タイプ: ブール値
    • true: Claude Code はクラウドまたは Remote Control セッションからコミットするか、プルリクエストを開くときに claude.ai セッションリンクを追加します
    • false: Claude Code はリンクを省略します
  • デフォルト: true
{
  "attribution": {
    "sessionUrl": false
  }
}

フックと自動化

フックを登録し、実行するフックを制限し、ワークフローを制御します。フックイベントとペイロードについては、フックリファレンスを参照してください。

allowedHttpHookUrls

HTTP フックがターゲットできる URL を制限します。このキーを定義すると、Claude Code は HTTP フックを実行するのはその URL がパターンの 1 つと一致する場合のみで、残りはブロックして実行しません。空の配列はすべての HTTP フックをブロックします。

  • スコープ: Any file。配列は設定ファイル全体でマージされます。
  • 型: URL パターンの配列。ワイルドカードとして * を使用
  • デフォルト: 未設定。任意の URL が許可されます

この例は https://hooks.example.com/ 下のすべての URL と任意の http://localhost URL を許可します:

{
  "allowedHttpHookUrls": ["https://hooks.example.com/*", "http://localhost:*"]
}

ホスト名マッチングは大文字と小文字を区別せず、完全修飾ドメイン名を示す末尾のドット付きの hooks.example.com. を hooks.example.com と同じように扱います。これは DNS の扱い方と同じです。許可リストはすべてのソースからのフック(管理設定を含む)に適用されます。

Agent SDK の managedSettings オプションでは、リストにエントリがある場合、Claude Code はこのキーを無視するため、代わりに SDK の settings オプションでリストを渡してください。親設定で空のリストがどのように動作するかを参照してください。

allowManagedHooksOnly

フック実行を組織がデプロイするフックに制限します。

  • スコープ: Managed
  • 型: ブール値
    • true: 管理フックのみが実行され、Agent SDK フックと管理設定が強制有効にするプラグインからのフックも実行されます。allowManagedHooksOnly 下で実行されるものを参照してください
    • false: すべての設定スコープとプラグインからのフックが実行されます
  • デフォルト: 未設定。すべての設定スコープとプラグインからのフックが実行されます
{
  "allowManagedHooksOnly": true
}

allowManagedHooksOnly 下で実行されるもの

これを true に設定すると、Claude Code はどのフックとフック類似コマンドをロードするかを変更します:

  • 管理フックと SDK フックが実行されます: 管理設定からのフックと Agent SDK がプロセス内で登録するフック
  • 強制有効プラグインフックが実行されます: 管理設定が enabledPlugins を通じて強制有効にするプラグインからのフック。Claude Code は完全な plugin@marketplace ID でマッチするため、別のマーケットプレイスからの同じ名前のプラグインはブロックされたままです。これにより、組織マーケットプレイスを通じて検証済みフックを配布しながら、その他すべてをブロックできます。このようなプラグイン内の mod は、組織のものとしてカウントされる場合のみロードされます
  • 他のプラグインのモニターはブロックされます: プラグインのモニターは、そのプラグインが強制有効にされていない限り起動しません。Claude Code v2.1.310 以降が必要です
  • その他すべてはブロックされます: ユーザー、プロジェクト、ローカルフック、他のインストール済みプラグインからのフックと mod、エージェントのフロントマターで宣言されたフック。Claude Code に組み込まれた mod は実行し続けます。ユーザーの mod のみをブロックするには、代わりに allowManagedModsOnly を設定してください。
  • コマンドソースプラグインは無効になります: Claude Code は command ソースを持つプラグイン(管理 enabledPlugins で強制有効にされたプラグインを含む)も無効にします。ただし、disableCommandPluginSources を明示的に false に設定した場合を除きます
  • マーケットプレイス headersHelper コマンドはブロックされます: Claude Code はマーケットプレイス headersHelper コマンドもブロックします。ただし、disableCommandPluginSources が明示的に false に設定されている場合、または管理設定自体が宣言するマーケットプレイスの場合を除きます。Claude Code v2.1.238 以降が必要です
  • ステータスラインとファイル提案は管理設定に絞られます: Claude Code は statusLine、fileSuggestion、subagentStatusLine を管理設定からのみ読み込みます。ステータスラインとファイル提案ゲートに従います

このキーが設定されている間、/goal コマンドは実行できません。これはフックに依存しているためです。

disableAllHooks

フック、カスタム ステータスライン、カスタム ファイル提案 コマンドをオフにします。これらを設定から削除せずに一時的にオフにするために使用します。

  • スコープ: Any file。管理設定のみが管理フックを無効にできます。
  • 型: ブール値
    • true: Claude Code はフック、カスタムステータスライン、カスタムファイル提案コマンドをオフにします
    • false: フック、ステータスライン、ファイル提案コマンドが実行されます
  • デフォルト: 未設定。フックが実行されます
{
  "disableAllHooks": true
}

到達範囲はキーを持つファイルによって異なります:

  • 管理設定内: Claude Code はすべての設定済みフック(管理フックを含む)を無効にし、Agent SDK がプロセス内で登録するフックは実行し続けます
  • Agent SDK の managedSettings オプション内: 管理者が管理設定をデプロイしているマシンでは、管理者が埋め込みホストによるポリシーの追加を許可していない限り、Claude Code はこのキーを無視します。キーが有効になる場合、ユーザー、プロジェクト、ローカル、プラグインのフックが停止し、SDK の settings オプション内のフックも停止します。管理者の管理フック、強制有効にされたプラグインのフック、および SDK フックコールバックは実行し続けます。Claude Code v2.1.309 以降が必要です。
  • 他の設定ファイル内: Claude Code はユーザー、プロジェクト、ローカル、プラグインフックを無効にします。管理フック、Agent SDK フック、管理 enabledPlugins で強制有効にされたプラグインからのフックは実行し続けます

このキーは、コードがフックを登録するプラグインである mod も停止します:

  • 管理設定内: 組織のものを含め、インストール済みのすべてのプラグイン内の mod が停止します
  • 他の設定ファイル内: ユーザーがインストールした mod が停止し、組織の mod は実行し続けます

Claude Code に組み込まれた mod は、どちらの場合も実行し続けます。それぞれに独自のスイッチがあります。

管理設定がこのキーを設定している場合に Agent SDK フックを実行し続けるには、Claude Code v2.1.242 以降が必要です。

フックが無効な間、/goal コマンドは実行できず、/hooks メニューはフックの代わりに通知を表示します。

ステータスラインとファイル提案ゲート

Claude Code は statusLine、fileSuggestion、subagentStatusLine について、この順序で 2 つの決定を行います:

  • 完全にオフ: 管理設定が disableAllHooks を設定している場合、またはフォルダが設定ファイル内のフックと同じ ワークスペーストラストルールの下で信頼されていない場合
  • 管理設定に絞られます: allowManagedHooksOnly が設定されている場合、設定の優先順位が適用された後に管理設定外で disableAllHooks が true である場合、または --safe-mode で Claude Code を起動した場合

絞られた場合、Claude Code はデプロイされた管理値があれば実行します。そうでない場合は警告なしにユーザーの値をスキップします: ステータスラインは無効になり、@ オートコンプリートは組み込みファイル提案にフォールバックします。

disableWorkflows

動的ワークフローと、管理設定を通じた組織など、設定が到達するすべてのユーザーのためのバンドルワークフローコマンドをオフにします。自分自身のためだけにワークフローをオンまたはオフにするには、代わりに enableWorkflows を使用してください。これは /config の Dynamic workflows トグルがユーザー設定に書き込みます。

  • スコープ: Any file
  • 型: ブール値
    • true: Claude Code は動的ワークフローと、設定が到達するすべてのユーザーのためのバンドルワークフローコマンドをオフにします
    • false: 未設定と同じです。ワークフローがオンかどうかは enableWorkflows とプランのデフォルトに従います
  • デフォルト: false
  • セッションごとの上書き: CLAUDE_CODE_DISABLE_WORKFLOWS は 1 つのセッションのワークフローをオフにします。2 つのうちどちらがオフにするかに関わらず、もう一方はオンに戻すことはできません
{
  "disableWorkflows": true
}

enableWorkflows

プランのデフォルトが望むものでない場合、自分自身のために 動的ワークフローをオンまたはオフにします。/config に Dynamic workflows として表示され、このキーをユーザー設定に書き込み、プランのデフォルトに戻すときに再度削除します。管理設定からすべてのユーザーのためにワークフローをオフにするには、代わりに disableWorkflows を使用してください。

  • スコープ: Any file
  • 型: ブール値
    • true: Claude Code は自分自身の動的ワークフローをオンにします
    • false: Claude Code は自分自身の動的ワークフローをオフにします
  • デフォルト: 未設定。ワークフローはオンです。ただし Pro プランではオフです
  • セッションごとの上書き: CLAUDE_CODE_DISABLE_WORKFLOWS は 1 つのセッションのワークフローをオフにし、ここで true はそれが設定されている間はワークフローをオンに戻すことはできません
{
  "enableWorkflows": true
}

disableWorkflows と組織のワークフローポリシーも優先されます: enableWorkflows: true はいずれかのソースがワークフローをオフにしている間はワークフローをオンに戻すことはできません。Claude Code は、ユーザー設定以外のソースが enableWorkflows を設定している場合、または disableWorkflows を true に設定している場合、/config 行を非表示にします。

hooks

Claude Code のライフサイクルの特定の時点(ツール呼び出しの前やセッション開始時など)で、フックとして独自のコマンド、プロンプト、エージェント、HTTP リクエスト、または MCP ツールを実行します。フックリファレンスはすべてのイベント、ペイロード、終了コードをリストします。各イベントは matcher グループのリストにマップされ、各グループは matcher が適用されるときに実行するハンドラーをリストします。

  • スコープ: Any file。フックは互いに置き換えられるのではなくファイル全体でマージされ、管理設定からのフックは他のファイルから削除できません。
  • 型: フックイベントでキー付けされたオブジェクト。各値は "command"、"prompt"、"agent"、"http"、または "mcp_tool" の type を持つ { "matcher", "hooks" } グループの配列
  • デフォルト: 未設定。フックは実行されません

この例はすべての Bash ツール呼び出しの前にスクリプトを実行します:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          { "type": "command", "command": "~/.claude/hooks/check-bash.sh" }
        ]
      }
    ]
  }
}

すべてのイベント、matcher パターン、ハンドラーフィールドについては、フックリファレンスを参照してください。フックをオフにするには、disableAllHooksを参照してください。フックを組織がデプロイするものに制限するには、allowManagedHooksOnlyを参照してください。

httpHookAllowedEnvVars

HTTP フックは環境変数の値をリクエストヘッダーに入れることができます。例えば Authorization: Bearer $HOOK_TOKEN ヘッダーですが、フックが独自の allowedEnvVars でリストしている変数のみです。このキーはすべての HTTP フックのそのリストに外側の制限を設定します: フックは変数を使用できるのは、独自の allowedEnvVars とこのキーの両方がそれを名前付けしている場合のみです。フックの定義がそれを要求している場合でも、フックが読むべきではないシークレットを読むのを防ぐために使用します。

  • スコープ: Any file。配列は設定ファイル全体でマージされます。
  • 型: 環境変数名の配列
  • デフォルト: 未設定。各フック独自の allowedEnvVars リストが適用されます

この例はヘッダー補間を MY_TOKEN と HOOK_SECRET に制限します:

{
  "httpHookAllowedEnvVars": ["MY_TOKEN", "HOOK_SECRET"]
}

許可リストはすべてのソースからのフック(管理設定を含む)に適用されます。

Agent SDK の managedSettings オプションでは、リストにエントリがある場合、Claude Code はこのキーを無視するため、代わりに SDK の settings オプションでリストを渡してください。親設定で空のリストがどのように動作するかを参照してください。

workflowKeywordTriggerEnabled

プロンプトでキーワード ultracode を入力することが 動的ワークフローをトリガーするかどうかを選択します。false に設定して、トリガーなしで単語を入力します。

  • スコープ: Any file。/config に Ultracode keyword trigger として表示されます。
  • 型: ブール値
    • true: プロンプトで ultracode を入力すると動的ワークフローがトリガーされます
    • false: トリガーなしで単語を入力できます
  • デフォルト: true
{
  "workflowKeywordTriggerEnabled": false
}

ultracode 努力設定、/workflows、保存されたワークフローコマンドは影響を受けません。

workflowSizeGuideline

Claude が書き込む動的ワークフローで Claude が目指すエージェント数を設定します。Claude Code は値を Claude に助言として送信します。強制的な上限ではありません: "small" は 5 未満のエージェントを要求し、"medium" は 10 未満、"large" は 50 未満です。ワークフローが費やすものを制限したい場合は "small" を選択します。

  • スコープ: Any file。そこの値は /config の Dynamic workflow size 選択肢より優先されます。Claude Code は ~/.claude.json に保存します。設定ファイルがキーを設定している間、Claude Code はその行を非表示にします。
  • 型: 文字列。以下のいずれか:
    • "unrestricted": ガイドラインなし。Claude はタスクに合わせてワークフローの規模を決めます
    • "small": Claude は 5 未満のエージェントを目指します
    • "medium": Claude は 10 未満のエージェントを目指します
    • "large": Claude は 50 未満のエージェントを目指します
  • デフォルト: "medium"、または Pro プランで Claude Code v2.1.271 以降にサインインしている場合は "small"
{
  "workflowSizeGuideline": "small"
}

プラグインとスキル

プラグインの有効化、マーケットプレイスの登録、組織で許可するプラグインソースの制限、読み込むスキルの制御を行います。プラグインのインストールと作成については、プラグインを参照してください。

disableBundledSkills

Claude Code に同梱されているスキルとワークフローをオフにします。Claude Code はバンドルスキルとワークフローを完全に削除しますが、/init などの組み込みコマンドは引き続き入力できる一方でモデルからは非表示になります。

  • スコープ: 任意のファイル
  • 型: Boolean
    • true: Claude Code はバンドルスキルとワークフローを削除し、/init などの組み込みコマンドをモデルから非表示にします
    • false: バンドルスキルが読み込まれます
  • デフォルト: 未設定。バンドルスキルが読み込まれます
  • セッション単位の上書き: CLAUDE_CODE_DISABLE_BUNDLED_SKILLS を 1 に設定すると、1 つのセッションでバンドルスキルがオフになります。2 つのうちどちらでオフにした場合でも、もう一方でオンに戻すことはできません
{
  "disableBundledSkills": true
}

プラグイン、.claude/skills/、.claude/commands/ からのスキルは影響を受けません。/doctor は組み込みコマンドと同様に引き続き入力できます。非表示にするには、代わりに DISABLE_DOCTOR_COMMAND を設定してください。

disableSkillShellExecution

ユーザー、プロジェクト、プラグイン、または追加ディレクトリのソースからのスキルとカスタムコマンドにおける !`...` ブロックと ```! ブロックのインラインシェル実行をオフにします。Claude Code は各コマンドを実行する代わりに [shell command execution disabled by policy] に置き換えます。

  • スコープ: 任意のファイル。管理設定の true は、他の場所の false で上書きできません。
  • 型: Boolean
    • true: Claude Code は各インラインシェルコマンドを実行する代わりに [shell command execution disabled by policy] に置き換えます
    • false: インラインシェルが実行されます
  • デフォルト: 未設定。インラインシェルが実行されます
{
  "disableSkillShellExecution": true
}

バンドルスキルと管理設定を通じてデプロイされたスキルは影響を受けません。

skillOverrides

SKILL.md を編集せずにスキルを非表示にしたり折りたたんだりします。Claude Code は各スキル名の下の値を、Claude が参照するスキル一覧と / のオートコンプリートに適用します。

  • スコープ: 任意のファイル。/skills メニューは .claude/settings.local.json に書き込みます。
  • 型: スキル名を次のいずれかにマッピングするオブジェクト:
    • "on": Claude はスキルを参照でき、/name を入力できます
    • "name-only": Claude はスキルを説明なしで名前のみ参照します
    • "user-invocable-only": Claude はスキルを参照しませんが、/name は引き続き入力できます
    • "off": Claude はスキルを参照せず、/name はオートコンプリートから非表示になります
  • デフォルト: 未設定。すべてのスキルが "on" になります

この例では、legacy-context を Claude に名前のみで提示し、deploy を Claude と / のオートコンプリートの両方から非表示にします。

{
  "skillOverrides": {
    "legacy-context": "name-only",
    "deploy": "off"
  }
}

上書きはプラグインスキルには適用されません。プラグインスキルは /plugin で管理します。

管理設定と --settings で渡されたファイルでは、/doctor に対する checkup のようなバンドルスキルのエイリアスに設定したキーもそのスキルに適用されます。エイリアスのキーとスキル自体の名前のキーがどのように組み合わされるかを参照してください。

syncClaudeAiSkills

claude.ai アカウントで有効になっているスキルのダウンロードをオフにします。Claude Code は、claude.ai アカウントでサインインしているターミナルセッション(対話型・非対話型を問わず)、および Cowork セッションとクラウドセッションで、それらを ~/.claude/skills/synced/ にダウンロードします。false を設定すると、そのダウンロードが停止し、すでに同期されたスキルの読み込みも停止します。Claude Code が反映するのは false のみです。true は未設定と同じであり、他の理由でオフになっている場所で同期をオンにすることはありません。

  • スコープ: ユーザー、ローカル、または管理、および --settings で渡されたファイル。リポジトリがユーザーに代わってこれをオフにすることはできません。
  • 型: Boolean
    • false: Claude Code は同期スキルのダウンロードを停止し、~/.claude/skills/synced/ にすでにあるスキルの読み込みも停止します。ユーザー設定または管理設定では、それらを ~/.claude/skills/.trash/ に移動することもします
    • true: 未設定と同じです
  • デフォルト: 未設定。claude.ai アカウントでサインインしたセッションでスキルが同期されます

この例では、どのセッションでもマシンがアカウントのスキルをダウンロードしないようにします。

{
  "syncClaudeAiSkills": false
}

syncClaudeAiPlugins

claude.ai アカウントで有効になっているプラグインのダウンロードをオフにします。Claude Code は、claude.ai アカウントでサインインしているターミナルセッションの開始時と Cowork セッションで、それらを ~/.claude/plugins/synced/ にダウンロードし、それぞれを <name>@synced として読み込みます。false を設定すると、そのダウンロードが停止し、すでに同期されたプラグインの読み込みも停止します。Claude Code が反映するのは false のみです。true は未設定と同じであり、他の理由でオフになっている場所で同期をオンにすることはありません。Claude Code v2.1.273 以降が必要です。

  • スコープ: ユーザー、ローカル、または管理、および --settings で渡されたファイル。リポジトリがユーザーに代わってこれをオフにすることはできません。
  • 型: Boolean
    • false: Claude Code は同期プラグインのダウンロードを停止し、~/.claude/plugins/synced/ にすでにあるプラグインの読み込みも停止します。ユーザー設定または管理設定では、それらを ~/.claude/plugins/.trash/ に移動することもします
    • true: 未設定と同じです
  • デフォルト: 未設定。claude.ai アカウントでサインインしたセッションでプラグインが同期されます

すべてではなく 1 つの同期プラグインだけをオフにするには、enabledPlugins で "<name>@synced": false を設定します。

この例では、どのセッションでもマシンがアカウントのプラグインをダウンロードしないようにします。

{
  "syncClaudeAiPlugins": false
}

allowedChannelPlugins

組織内でセッションにメッセージをプッシュできるチャネルプラグインを選択します。これを設定すると、Claude Code はデフォルトの Anthropic 許可リストの代わりに指定したリストを使用します。各エントリは、プラグインとその提供元のマーケットプレイスを指定します。

  • スコープ: 管理
  • 型: marketplace と plugin の文字列をそれぞれ持つオブジェクトの配列。エントリは代わりに "telegram@claude-plugins-official" のような "plugin@marketplace" 文字列にすることもでき、Claude Code はこれを同等のオブジェクトとして扱います。文字列形式には Claude Code v2.1.267 以降が必要です。それより前のバージョンでは、文字列形式を含む場合に allowedChannelPlugins の値全体が拒否されます
  • デフォルト: 未設定。Claude Code はデフォルトの Anthropic 許可リストを使用します

この例では、チャネルをオンにし、公式 Anthropic マーケットプレイスの Telegram プラグインのみを許可します。

{
  "channelsEnabled": true,
  "allowedChannelPlugins": [
    { "marketplace": "claude-plugins-official", "plugin": "telegram" }
  ]
}

空の配列はすべてのチャネルプラグインをブロックします。

このキーは、アカウントでチャネルが channelsEnabled のゲートを通過した時点で有効になります。Team プランと Enterprise プラン、および管理設定のある Console アカウントでは、channelsEnabled: true がそれに該当します。実行できるチャネルプラグインを制限するを参照してください。

blockedMarketplaces

組織のプラグインマーケットプレイスソースをブロックします。Claude Code は、マーケットプレイスの追加時と、プラグインのインストール、更新、リフレッシュ、自動更新の際にブロックリストを確認するため、ポリシーを設定する前に誰かが追加したマーケットプレイスもプラグインの取得に使用できなくなります。ブロックされたソースはダウンロード前に確認されるため、ファイルシステムに触れることはありません。

このキーを claude.ai 管理コンソールで設定した場合、制限の仕組みで説明しているとおり、組織内の誰かが claude.ai で git リポジトリからマーケットプレイスを追加するときにも claude.ai がこれを適用します。

  • スコープ: 管理
  • 型: マーケットプレイスソースオブジェクトの配列。形式は strictKnownMarketplaces と同じです
  • デフォルト: 未設定。ブロックされるマーケットプレイスはありません

この例では、1 つの GitHub リポジトリをマーケットプレイスソースとしてブロックします。

{
  "blockedMarketplaces": [
    { "source": "github", "repo": "untrusted/plugins" }
  ]
}

github エントリでは owner ワイルドカード形式 "owner/*" を使用して、その GitHub オーナー配下のすべてのリポジトリをブロックできます。これには Claude Code v2.1.223 以降が必要です。{ "source": "skills-dir" } を追加すると、マーケットプレイスを制限することなく、Claude Code が ~/.claude/skills/ とプロジェクトの .claude/skills/ の両方から @skills-dir プラグインを読み込むのを停止できます。管理対象のマーケットプレイス制限を参照してください。

channelsEnabled

組織でチャネルを許可します。claude.ai の Team プランと Enterprise プランでは、これを true に設定するまで Claude Code はチャネルをブロックします。API キーで認証する Anthropic Console アカウントでは、チャネルはデフォルトで許可されます。組織が管理設定をデプロイしている場合は、このキーを true に設定するまで、Claude Code はそれらのアカウントでもチャネルをブロックします。

  • スコープ: 管理
  • 型: Boolean
    • true: Claude Code は組織でチャネルを許可します
    • false: 未設定と同じです。チャネルがブロックされるかどうかは、「デフォルト」に記載のとおりプランによって異なります
  • デフォルト: 未設定。Team プランと Enterprise プラン、および管理設定のある Console アカウントではチャネルがブロックされ、Pro プラン、Max プラン、Ultra プラン、および管理設定のない Console アカウントでは許可されます
{
  "channelsEnabled": true
}

チャネルを有効にした後、チャネルとして登録できるプラグインを制限するには、allowedChannelPlugins を設定します。エンタープライズ向けの制御を参照してください。

disableCommandPluginSources

command プラグインソースをブロックします。これは、マーケットプレイスが宣言したコマンドをユーザーのマシンで実行してプラグインをインストールするソースです。true に設定すると、Claude Code はそのコマンドを実行せず、command ソースのプラグインをインストールも更新もせず、すでにインストールされているものの読み込みも停止します。false に設定すると明示的に許可します。command ソースをブロックする場合は常に(true に設定した場合でも、allowManagedHooksOnly のもとで未設定のままにした場合でも)、マーケットプレイスの headersHelper コマンドもブロックします。ただし、管理設定自体が宣言しているマーケットプレイスは除きます。Claude Code v2.1.229 以降が必要で、headersHelper のブロックには v2.1.238 以降が必要です。

  • スコープ: 管理
  • 型: Boolean
    • true: Claude Code はマーケットプレイスが宣言したコマンドを実行せず、command ソースのプラグインをインストールも更新もせず、すでにインストールされているものの読み込みも停止します
    • false: Claude Code は command ソースのプラグインを明示的に許可します
  • デフォルト: 未設定。Claude Code は allowManagedHooksOnly に従います。フックの実行を管理設定に制限している組織では、command ソースも無効になります。Agent SDK の managedSettings オプションで disableAllHooks: true を渡すアプリケーションは、それだけでは command ソースを無効にしません。
{
  "disableCommandPluginSources": true
}

Claude Code v2.1.229 以降が必要です。

pluginSuggestionMarketplaces

プラグインがコンテキストに応じたインストール候補として、スピナーのヒントや /plugin の Discover タブ上部へのピン留めに表示されるマーケットプレイスを指定します。組み込みのファーストパーティの frontend-design ヒントは影響を受けません。候補は、マーケットプレイスエントリ内の各プラグインの relevance 宣言から得られます。

  • スコープ: 管理
  • 型: マーケットプレイス名の配列
  • デフォルト: 未設定。マーケットプレイスが宣言した候補は表示されません
{
  "pluginSuggestionMarketplaces": ["acme-corp-plugins"]
}

名前が有効になるのは、そのマーケットプレイスがマシンに登録されており、かつ登録されたソースが同じ管理設定内で、その名前の extraKnownMarketplaces エントリ、または strictKnownMarketplaces のエントリとしても宣言されている場合のみです。許可リストにある名前で別のソースから登録されたマーケットプレイスは、Claude Code によって無視されます。公式マーケットプレイスはソースの要件から除外されており、その名前を許可リストに入れるだけで十分です。その名前は公式 Anthropic ソースからしか登録できないためです。コンテキストに応じてプラグインを提案するを参照してください。

pluginTrustMessage

インストール前に Claude Code が表示するプラグインの信頼に関する警告に、組織独自のテキストを追加します。たとえば、社内マーケットプレイスのプラグインが審査済みであることを確認するために使用します。

  • スコープ: 管理
  • 型: string
  • デフォルト: 未設定。Claude Code は標準の警告のみを表示します
{
  "pluginTrustMessage": "All plugins from our marketplace are approved by IT"
}

strictKnownMarketplaces

組織内のユーザーが追加し、プラグインをインストールできるプラグインマーケットプレイスソースを制限します。Claude Code は、マーケットプレイスの追加時と、プラグインのインストール、更新、リフレッシュ、自動更新の際に、ネットワーク操作やファイルシステム操作の前に許可リストを適用します。そのため、ポリシーを設定する前に誰かが追加したマーケットプレイスも、そのソースが一致しなくなった時点でプラグインの取得に使用できなくなります。ブロックされたユーザーには、管理ポリシーを示すエラーが表示されます。

このキーを claude.ai 管理コンソールで設定した場合、制限の仕組みで説明しているとおり、組織内の誰かが claude.ai で git リポジトリからマーケットプレイスを追加するときにも claude.ai がこれを適用します。

  • スコープ: 管理
  • 型: マーケットプレイスソースオブジェクトの配列。許可されるソースタイプを参照してください
  • デフォルト: 未設定。ユーザーは任意のマーケットプレイスを追加できます。空の配列は、公式 Anthropic マーケットプレイスを含むすべてのマーケットプレイスソースをブロックする完全なロックダウンになります

この例では、2 つの GitHub リポジトリ(うち 1 つは v2.0 の ref に固定)と、ホストされた 1 つの marketplace.json URL を許可します。

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/approved-plugins" },
    { "source": "github", "repo": "acme-corp/security-tools", "ref": "v2.0" },
    { "source": "url", "url": "https://plugins.example.com/marketplace.json" }
  ]
}

このキーは allowedMarketplaces と記述することもできます。Claude Code がエイリアスをどのように扱うか、どのバージョンがそれを受け付けるかについては、マーケットプレイスキーのエイリアスで説明しています。このキーはポリシーゲートです。ユーザーが追加できるものを制御しますが、何も登録しません。1 つのファイルで制限と事前登録を行うには、extraKnownMarketplaces と組み合わせるを参照してください。ユーザー側から見た内容については、管理対象のマーケットプレイス制限を参照してください。

許可されるソースタイプ

以下の各行は、ソースタイプごとの許可リストエントリの例と、受け付けるフィールドを示しています。ほとんどのタイプは完全一致で照合されます。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": { "Authorization": "Bearer ${TOKEN}" } } 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" } フィールドなし

一部のソースタイプには、表の内容に加えて次のルールがあります。

  • url: URL マーケットプレイスは marketplace.json ファイルのみをダウンロードし、Claude Code はそのサーバーから相対パスでプラグインファイルを取得しません。そのため、そのプラグインは相対パス以外のプラグインソース(同じホスト上に置くことができるアーカイブ URL など)を使用する必要があります。相対パスを使用するプラグインには、代わりに Git ベースのマーケットプレイスを使用してください。URL ベースのマーケットプレイスで相対パスを使用するプラグインが失敗するを参照してください。

  • hostPattern: 各リポジトリを列挙せずに、社内の GitHub Enterprise または GitLab サーバー上のすべてのマーケットプレイスを許可するために使用します。Claude Code は github ソースを github.com と照合し、url ソースからはホスト名を取得し、git ソースからは git URL の形式に応じてホスト名を取得します。

    • https:// や ssh:// などのスキームを持つ URL: URL 内のホスト名。
    • スキームのない、git の user@host:path 形式の SSH アドレス(git@git.example.com:tools/plugins.git など): @ と : の間のホスト。これは git が接続するホストです。
    • スキームのないその他の形式: ホストがないため、strictKnownMarketplaces の hostPattern エントリには一致しません。blockedMarketplaces の hostPattern では、Claude Code はより広い範囲の形式からホストを取得するため、ブロックリストのエントリはそのような形式にも一致する場合があります。v2.1.234 より前は、strictKnownMarketplaces の hostPattern は git が SSH アドレスとして扱わない一部の形式にも一致していました。

    file ソースと directory ソースにはホストがなく、hostPattern エントリに一致することはありません。

  • pathPattern: ネットワークソース用の hostPattern エントリと併せて、ファイルシステムのマーケットプレイスを許可するために使用します。".*" はすべてのローカルパスを許可します。"^/opt/approved/" のようなより狭いパターンは、特定のディレクトリに制限します。

  • skills-dir: 許可リストは、空であっても、Claude Code が ~/.claude/skills/ とプロジェクトの .claude/skills/ の両方から @skills-dir プラグインを読み込むことを停止させます。引き続き読み込むには、{ "source": "skills-dir" } エントリを追加し、strictPluginOnlyCustomization を未設定のままにしてください。このエントリは、このキーと blockedMarketplaces 以外では意味を持ちません。

Owner ワイルドカード

repo の値が "<owner>/*" である github エントリは、その GitHub オーナー配下のすべてのリポジトリに一致します。owner ワイルドカードには Claude Code v2.1.223 以降が必要で、strictKnownMarketplaces と blockedMarketplaces でのみ機能します。extraKnownMarketplaces や /plugin marketplace add など、github ソースが現れるそれ以外の場所では、repo の値は単一のリポジトリを指定する必要があります。v2.1.223 より前は、Claude Code はエントリを文字どおりに比較していたため、許可リストのエントリはどのリポジトリにも一致せず、ブロックリストのエントリは何もブロックしませんでした。単一リポジトリのエントリはすべてのバージョンで適用されます。

このエントリは、acme-corp 組織内の任意のマーケットプレイスリポジトリを許可します。

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/*" }
  ]
}

ワイルドカードにできるのは、リポジトリ名の位置全体のみです。*、*/plugins、acme-corp/tools-* のようなエントリは無効として Claude Code に無視されるため、どのリポジトリにも一致しません。

照合ルールは 2 つの設定で異なります。

ルール strictKnownMarketplaces blockedMarketplaces
一致するソースの表記 owner/repo 形式のみ。同じリポジトリをクローンする git URL は一致しません 同じ github.com リポジトリに解決される git URL を含む、任意の表記
オーナーの大文字と小文字 区別する 区別しない
ref 完全一致エントリのルールに従います。ref を持つエントリはその ref と完全に一致するソースにのみ一致し、持たないエントリは ref を指定していないソースにのみ一致します ref を持たないエントリは、一致するリポジトリのすべての ref をブロックします
path 完全一致エントリのルールより緩やかです。path を持つエントリはその値との完全一致を要求しますが、持たないエントリはリポジトリ内の任意のパスに一致します path を持たないエントリは、一致するリポジトリのすべてのパスをブロックします

完全一致

owner ワイルドカードの github エントリと、正規表現で照合される hostPattern および pathPattern エントリを除くすべてのソースタイプについて、Claude Code はマーケットプレイスソースがエントリと完全に一致する場合にのみユーザーによる追加を許可します。git ベースのソースである github と git では、完全一致の対象にオプションのフィールドも含まれます。

  • repo または url が完全に一致する必要があります
  • ref フィールドが完全に一致するか、両方とも未定義である必要があります
  • path フィールドが完全に一致するか、両方とも未定義である必要があります

たとえば、Claude Code は以下の各ペアを 2 つの異なるソースとして扱います。

  • { "source": "github", "repo": "acme-corp/plugins" } と { "source": "github", "repo": "acme-corp/plugins", "ref": "main" }
  • { "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" } と { "source": "github", "repo": "acme-corp/plugins" }

公式マーケットプレイスのみを許可する

公式 Anthropic マーケットプレイスのみを許可し、それ以外を許可しないようにするには、そのリポジトリを記載します。

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "anthropics/claude-plugins-official" }
  ]
}

このエントリがある場合、Claude Code はすでに登録されている公式マーケットプレイスを引き続き利用可能にし、新しいマシンでは、初めて対話型ターミナルセッションを開始したときにマーケットプレイスを自動的に登録します。自動登録が行われないことが最も多いのは次の場合です。

  • マシンで最初の対話型ターミナルセッションより前に実行される非対話型環境。
  • Claude Code が VS Code 拡張機能経由でのみ実行されたマシン。
  • 空配列によるロックダウンなど、マーケットプレイスをブロックするポリシーのもとで Claude Code がすでに対話型ターミナルセッションを実行したマシン。Claude Code はブロックされた試行を記録し、ポリシーが変更された後も再試行しません。

これらのマシンでは、同じ managed-settings.json の extraKnownMarketplaces にマーケットプレイスを追加して Claude Code に自動登録させるか、claude plugin marketplace add anthropics/claude-plugins-official を実行してください。

extraKnownMarketplaces と組み合わせる

2 つのキーは異なる役割を担います。次の表で両者を比較します。

観点 strictKnownMarketplaces extraKnownMarketplaces
目的 組織のポリシーの適用 チームの利便性
設定ファイル 管理設定のみ 任意の設定ファイル
動作 許可リストにない追加をブロックする 未登録のマーケットプレイスを登録する
適用のタイミング ネットワーク操作とファイルシステム操作の前 ユーザー設定または管理設定からは即時。リポジトリのファイルの場合はワークスペースの信頼ダイアログの後
上書きの可否 不可。優先順位が最も高い 可。より優先順位の高い設定により上書きされる
ソースの形式 ソースオブジェクトを直接指定 ネストされた source オブジェクトを持つ名前付きマーケットプレイス

すべてのユーザーに対してマーケットプレイスの制限と事前登録の両方を行うには、managed-settings.json で両方を設定します。

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/plugins" }
  ],
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "github", "repo": "acme-corp/plugins" }
    }
  }
}

strictKnownMarketplaces のみを設定した場合でも、ユーザーは /plugin marketplace add で許可されたマーケットプレイスを自分で追加できます。Claude Code が自動的に登録するのは公式 Anthropic マーケットプレイスのみであり、それも許可リストが許可している場合に限られます。自動登録が行われないマシンについては、公式マーケットプレイスのみを許可するに記載しています。

strictPluginOnlyCustomization

ユーザーソースとプロジェクトソースからのスキル、エージェント、フック、MCP サーバーをブロックし、それらがプラグインまたは管理設定からのみ提供されるようにします。strictKnownMarketplaces と組み合わせると、カスタマイズのサプライチェーン全体を制御できます。マーケットプレイスの許可リストは、ユーザーがインストールできるプラグインを制御します。

  • スコープ: 管理
  • 型: 4 種類のカスタマイズすべてをロックする場合は true、またはロックする種類を "skills"、"agents"、"hooks"、"mcp" から指定する配列
  • デフォルト: 未設定。何もロックされません

この例では、スキルとフックをロックし、エージェントと MCP サーバーはロックしません。

{
  "strictPluginOnlyCustomization": ["skills", "hooks"]
}

いずれかのサーフェスをロックすると、Claude Code はスキルディレクトリプラグイン(ユーザーが ~/.claude/skills/ または .claude/skills/ の下に置いているプラグインフォルダ)の読み込みも停止します。これらのフォルダはマーケットプレイスからインストールされるのではなくユーザー自身が配置するものであるため、Claude Code はこの設定においてそれらをユーザーによるカスタマイズとして扱います。

以下の 4 つのサブキーの項目では、各サーフェスが他にブロックするものと、引き続き読み込まれるものを記載しています。Claude Code は認識できないサーフェス名を、設定ファイルをエラーにするのではなく無視します。そのため、すべてのクライアントが更新される前に新しいサーフェス名を追加できます。

strictPluginOnlyCustomization.skills

skills サーフェスをロックします。Claude Code は、~/.claude/skills/ と .claude/skills/ からのスキル、~/.claude/commands/ と .claude/commands/ からのカスタムコマンド、--add-dir ディレクトリ配下のスキルとコマンド、および claude.ai アカウントから同期されたスキルの読み込みを停止します。バンドルスキル、管理ポリシーディレクトリ内のスキル、およびスキルディレクトリプラグイン以外のプラグインからのスキルは引き続き読み込みます。

{
  "strictPluginOnlyCustomization": ["skills"]
}

strictPluginOnlyCustomization.agents

agents サーフェスをロックします。Claude Code は、~/.claude/agents/、.claude/agents/、および --add-dir ディレクトリからのエージェントの読み込みを停止します。組み込みエージェント、管理ポリシーディレクトリ内のエージェント、およびスキルディレクトリプラグイン以外のプラグインからのエージェントは引き続き読み込みます。

{
  "strictPluginOnlyCustomization": ["agents"]
}

strictPluginOnlyCustomization.hooks

hooks サーフェスをロックします。

  • 実行を停止するもの:
    • ユーザー、プロジェクト、ローカルの settings.json からのフック
    • skills または agents のロックがブロックするソースからの、スキル、カスタムコマンド、エージェント内のフロントマターフック
  • 引き続き実行するもの: 管理設定内のフック、およびスキルディレクトリプラグイン以外のプラグインからのフック

フロントマターフックの実行が停止されたスキル、カスタムコマンド、エージェントも、それ自体のサーフェスがロックされていない限り引き続き読み込まれます。

フロントマターで hooks を宣言している個人またはプロジェクトのスキルは、allowed-tools による事前承認も失うため、ユーザーにはそのフィールドに記載されたツールについて権限プロンプトが表示されます。そのようなスキルが context: fork によってサブエージェントで実行される場合は、事前承認が維持されます。hooks を宣言していないスキルも事前承認を維持します。

{
  "strictPluginOnlyCustomization": ["hooks"]
}

strictPluginOnlyCustomization.mcp

mcp サーフェスをロックします。Claude Code は、~/.claude.json と .mcp.json からの MCP サーバーの読み込みを停止します。managed-mcp.json のサーバー、managedMcpServers のサーバー、およびスキルディレクトリプラグイン以外のプラグインからの MCP サーバーは引き続き読み込みます。

{
  "strictPluginOnlyCustomization": ["mcp"]
}

enabledPlugins

個々のプラグインを plugin-name@marketplace-name をキーとしてオンまたはオフにします。どのスコープにもエントリがないプラグインは、その defaultEnabled の値にフォールバックします。/plugin または claude plugin enable でプラグインを有効化または無効化すると、Claude Code がこのキーを自動的に書き込みます。

  • スコープ: 任意のファイル
  • 型: plugin-name@marketplace-name を Boolean にマッピングするオブジェクト
  • デフォルト: 未設定。各プラグインはその defaultEnabled の値に従います

この例では、team-tools マーケットプレイスの 2 つのプラグインを有効にし、personal の 1 つを無効にします。

{
  "enabledPlugins": {
    "code-formatter@team-tools": true,
    "deployment-tools@team-tools": true,
    "experimental-features@personal": false
  }
}

各スコープはそれぞれ異なる目的を持ちます。

  • ユーザー設定: 個人のプラグインの設定
  • プロジェクト設定: リポジトリの全員と共有するプラグイン
  • ローカル設定: マシンごとの上書き。Claude Code がここに設定を保存するときに gitignore されます
  • 管理設定: 組織全体のポリシー。ここで false に設定されたプラグインは、すべてのスコープでインストールがブロックされ、マーケットプレイスから非表示になります

プロジェクト設定はユーザー設定より優先されるため、~/.claude/settings.json でプラグインを false に設定しても、プロジェクトの .claude/settings.json で有効にされているプラグインは無効になりません。自分のマシンでプロジェクトが有効にしたプラグインを使わないようにするには、代わりに .claude/settings.local.json で false に設定してください。管理設定によって強制的に有効にされたプラグインは、管理設定がローカル設定を上書きするため、この方法では無効にできません。

プロジェクトの .claude/settings.json で GitHub リポジトリや npm パッケージなどの外部ソースのプラグインを有効にしても、他のユーザーにはインストールされません。プラグインを読み込むすべての経路で、各ユーザーが自分でインストールするまで、Claude Code はそのプラグインを未インストールとして報告します。

extraKnownMarketplaces

追加のプラグインマーケットプレイスを名前で登録し、リポジトリを開いたユーザーや管理設定が届くすべてのユーザーが、自分で追加しなくてもマーケットプレイスを利用できるようにします。Claude Code は、まだ認識していない各マーケットプレイスを登録します。そこから enabledPlugins が指定したプラグインがインストールされるかどうかは、プラグインのソースとそれを有効にしているファイルによって異なります。ルールについてはそのエントリを参照してください。

  • スコープ: 任意のファイル。Claude Code は、リポジトリの .claude/settings.json または .claude/settings.local.json のエントリを、そのフォルダのワークスペースの信頼ダイアログを承認した後にのみ反映します。信頼していないフォルダ(そこでの -p 実行を含む)では、メッセージを表示せずにそれらを無視します。
  • 型: マーケットプレイス名を、source オブジェクトとオプションの autoUpdate Boolean を持つオブジェクトにマッピングするオブジェクト
  • デフォルト: 未設定

この例では、GitHub マーケットプレイスと、セルフホストの git URL からのマーケットプレイスを登録します。

{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": {
        "source": "github",
        "repo": "acme-corp/claude-plugins"
      }
    },
    "security-plugins": {
      "source": {
        "source": "git",
        "url": "https://git.example.com/security/plugins.git"
      }
    }
  }
}

フォルダを信頼する前に実行されるものでは、信頼ゲートとリポジトリが提供できるその他のコンテンツを比較しています。このキーは additionalMarketplaces と記述することもできます。マーケットプレイスキーのエイリアスを参照してください。

source と併せて "autoUpdate": true を設定すると、Claude Code は起動後にバックグラウンドでそのマーケットプレイスをリフレッシュし、インストール済みのプラグインを更新します。省略した場合、claude-plugins-official とその他の大半の公式 Anthropic マーケットプレイスはデフォルトで true になり、サードパーティのマーケットプレイスはデフォルトで false になります。自動更新を設定するを参照してください。

複数の設定ファイルが同じ名前でマーケットプレイスのエントリを定義している場合、Claude Code は優先順位が最も高いファイルのエントリ全体を使用します。そのエントリは優先順位の低いエントリを置き換え、そのフィールドを一切継承しないため、再定義によって、あるファイルの source.headers の認証情報を別のファイルが制御する URL と組み合わせることはできません。v2.1.228 より前は、Claude Code は同名のエントリをフィールドごとにマージしていたため、優先順位の高いファイルのエントリが、別のファイルの headers を含め、自身で設定していないフィールドを継承することがありました。

マーケットプレイスのソースタイプ

source オブジェクトは次のいずれかの形式をとります。

  • github: GitHub リポジトリ。repo を指定します
  • git: 任意の git URL。url を指定します
  • url: marketplace.json ファイルへの直接 URL。url と、認証付きアクセス用のオプションの headers および headersHelper を指定します。headersHelper は、headers に記載するには有効期間が短すぎる値を持つヘッダーを出力するコマンドを指定するもので、Claude Code v2.1.238 以降が必要です
  • file: marketplace.json ファイルへのローカルパス。path を指定します
  • directory: ローカルファイルシステムのパス。path を指定します。開発用、または組織が各マシンにデプロイするマーケットプレイスに使用します。
  • settings: ホストされたリポジトリなしで設定ファイル内に直接宣言されたインラインマーケットプレイス。name と plugins を指定します

git ソースタイプは、セルフホストの GitLab や Bitbucket を含む任意の git ホスティングサービスで機能します。Claude Code は、そのマシン上で git clone が使用するのと同じ認証、つまり設定済みの認証情報ヘルパーまたは SSH キーでリポジトリをクローンします。GITHUB_TOKEN などのプロバイダートークンは、それを読み取る認証情報ヘルパーを通じて有効になります。セットアップの詳細については、プライベートリポジトリを参照してください。

github ソースと git ソースでは、Claude Code はマーケットプレイスリポジトリを追加または更新のためにクローンする際、Git LFS のコンテンツを一切ダウンロードしません。LFS で追跡されているファイルはポインターファイルとしてチェックアウトされ、追加または更新の出力にその数が表示されます。

source オブジェクト内の skipLfs フィールドは受け付けられますが、効果はありません。v2.1.274 より前は、"skipLfs": true を設定しない限り、Claude Code は LFS コンテンツをダウンロードしていました。

url ソースでは、headers 内の認証情報に有効期限があり、新しい認証情報をコマンドで生成する必要がある場合に、source オブジェクト内で headersHelper を設定します。Claude Code v2.1.238 以降が必要です。コマンドが出力すべき内容と Claude Code がそれを実行する場所については、headersHelper コマンドを作成するを、Claude Code がそれを実行しないケースについては、Claude Code が headersHelper コマンドをスキップする場合を参照してください。https:// のマーケットプレイス URL に headersHelper を設定すると、Claude Code は次の 2 つのタイミングでコマンドを実行し、1 回の実行の出力を最大 60 秒間再利用します。

  • そのマーケットプレイスの marketplace.json を取得する前(後のリフレッシュを含む)。Claude Code は出力されたヘッダーをその取得リクエストとともに送信します。
  • マーケットプレイス URL のオリジン(同じスキーム、ホスト、ポート)上の各プラグインアーカイブをダウンロードする前。Claude Code は出力をそのダウンロードとともに送信し、それ以外のダウンロードにはヘッダーは付与されません。

--add-dir で追加したディレクトリの .claude/settings.json または .claude/settings.local.json に設定された headersHelper は、url ソースでもインラインプラグインエントリでも Claude Code によって無視され、そのファイルに設定された固定の headers のみが送信されます。その他の設定ファイルについては、ユーザーが headersHelper コマンドを承認する方法で説明しています。

settings ソースに記載するプラグインは GitHub や npm などの外部ソースを参照する必要があり、name はマーケットプレイスのキーと一致する必要があります。各プラグインは引き続き enabledPlugins で個別に有効にします。この例では、1 つのプラグインをインラインで宣言します。

{
  "extraKnownMarketplaces": {
    "team-tools": {
      "source": {
        "source": "settings",
        "name": "team-tools",
        "plugins": [
          {
            "name": "code-formatter",
            "source": {
              "source": "github",
              "repo": "acme-corp/code-formatter"
            }
          }
        ]
      }
    }
  }
}

source: 'settings' 配下のプラグインエントリで、自身の source が archive であるものは、アーカイブのダウンロード用に headers を設定できます。headers に指定する値の有効期間が短い場合(レジストリがリクエストに応じて発行するトークンなど)は、代わりに headersHelper コマンドを設定してください。エントリでは両方を設定することもできます。どちらのフィールドにも Claude Code v2.1.238 以降が必要です。

Claude Code は、エントリの headers とコマンドが出力した内容を、そのプラグインのアーカイブのダウンロードとともに送信し、それ以外のダウンロードには送信しません。Claude Code がコマンドを実行するのは、ユーザーがそのプラグイン 1 つだけを単独でインストールまたは更新する場合のみです。さらに、エントリがどのファイルにあるかによって次の 3 つのルールが適用されます。

  • strict: マーケットプレイスの marketplace.json 内のエントリとは異なり、設定内のエントリには "strict": false は不要です。設定ファイルにはインライン化するマニフェストフィールドがないためです。Strict モードを参照してください。
  • フォルダの信頼: プロジェクトの .claude/settings.json または .claude/settings.local.json 内のエントリについては、ユーザーがそのフォルダを信頼した後にのみ、Claude Code はコマンドを実行します。
  • ヘッダーフィルター: リポジトリがプロジェクトの .claude/settings.json や .claude/settings.local.json を提供できるため、Claude Code はそれらのファイル内のエントリからリクエストのルーティングやクライアントの識別に関するヘッダー名を削除します。Claude Code はカタログエントリと --add-dir ディレクトリの設定内のエントリにも同じフィルターを適用し、ユーザー設定、--settings ファイル、管理設定内のエントリにはフィルターを適用しません。

マーケットプレイスキーのエイリアス

Claude Code v2.1.232 以降では、extraKnownMarketplaces を additionalMarketplaces と、strictKnownMarketplaces を allowedMarketplaces と記述できます。Claude Code は各エイリアスを次のように扱います。

  • それより前のバージョンはエイリアスを無視します。そのため、Claude Code のバージョンが混在するフリート向けの管理設定ファイルなど、古いバージョンも読み込むファイルでは正規の表記を使用してください。
  • 正規のキーを受け付ける任意の設定ファイルで、Claude Code はエイリアスを正規のキーとまったく同じように読み込みます。
  • Claude Code はファイルを更新する際に、additionalMarketplaces を extraKnownMarketplaces に書き換えることがあります。
  • 1 つのファイルで両方の表記を設定した場合、Claude Code は正規のキーの値を使用し、エイリアスを無視します。

pluginConfigs

プラグインの userConfig 設定ダイアログで入力した機密性のない回答を、プラグイン ID をキーとして保存します。ダイアログに入力すると Claude Code がこのキーをユーザー設定に書き込むため、手動で編集する必要はありません。機密性のあるオプションは Claude Code が代わりに macOS キーチェーンに保存し、キーチェーンが書き込みを拒否した場合は ~/.claude/.credentials.json にフォールバックします。サポートされているキーチェーンがないプラットフォームでは、~/.claude/.credentials.json に保存します。

  • スコープ: ユーザーまたは管理
  • 型: プラグイン ID を、options フィールド(各オプション名を文字列、数値、Boolean、または文字列の配列にマッピング)と、同じ形式でサーバーごとのユーザー設定値を保持するオプションの mcpServers フィールドを持つオブジェクトにマッピングするオブジェクト
  • デフォルト: 未設定

この例では、acme-tools の deployer プラグインの api_endpoint オプションを保存します。

{
  "pluginConfigs": {
    "deployer@acme-tools": {
      "options": {
        "api_endpoint": "https://api.example.com"
      }
    }
  }
}

組み込みプラグインは、@builtin サフィックスを付けた同じキーの下にオプションを保存します。たとえば、Claude Code が AGENTS.md ファイルを読み込むかどうかを制御する Project instructions 設定は pluginConfigs["cc-plugin-agents-md@builtin"].options.instructionFiles です。v2.1.285 より前は、このプラグインの ID は agents-md@builtin でした。それ以降のバージョンは、どちらの ID のエントリも読み込みます。

Claude Code はプロジェクトとローカルのエントリを無視します。これらの値はプラグインのフック、MCP、LSP の設定に代入されるため、クローンしたリポジトリがそれらを提供できてはならないからです。

prependPlugins

ユーザーがインストールしたすべての mod より前に、記載順で mod が実行される管理対象プラグインを列挙します。このキーを管理設定で設定する場合は、組み込みガードを維持するためにリストに sec-default@builtin を含めてください。管理設定では、Claude Code は組織のものとみなされないプラグインの id をスキップします。その条件と、2 つの順序指定キーがどのように連携するかについては、組織の mod をインストールして順序を設定するを参照してください。

  • スコープ: ユーザーまたは管理。Claude Code は管理設定からこのキーを読み込みます。ユーザー設定からこのキーを読み込むのは、管理設定のないマシンで、認証情報が Team または Enterprise の /login ではないセッションの場合のみです。プロジェクト設定、ローカル設定、および --settings ファイル内のこのキーは無視します。
  • 型: plugin-name@marketplace-name 文字列の配列
  • デフォルト: 未設定
{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }
    }
  },
  "enabledPlugins": { "acme-guard@acme-tools": true },
  "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"]
}

appendPlugins

ユーザーがインストールしたすべての mod の後に、記載順で mod が実行される管理対象プラグインを列挙します。prependPlugins と appendPlugins の両方に記載された id は先頭に追加されます。管理設定では、Claude Code は組織のものとみなされないプラグインの id をスキップします。

  • スコープ: ユーザーまたは管理。Claude Code は管理設定からこのキーを読み込みます。ユーザー設定からこのキーを読み込むのは、管理設定のないマシンで、認証情報が Team または Enterprise の /login ではないセッションの場合のみです。プロジェクト設定、ローカル設定、および --settings ファイル内のこのキーは無視します。
  • 型: plugin-name@marketplace-name 文字列の配列
  • デフォルト: 未設定
{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }
    }
  },
  "enabledPlugins": { "acme-audit@acme-tools": true },
  "appendPlugins": ["acme-audit@acme-tools"]
}

MCP

Claude Code が接続する MCP サーバーと、組織が許可する MCP サーバーを制御します。MCP で外部ツールに接続すると管理対象 MCP 設定を参照してください。

allowAllClaudeAiMcps

Claude Code が自身で取得するclaude.ai コネクタを、デプロイされた managed-mcp.json と一緒に読み込みます。このキーがない場合、managed-mcp.json は MCP サーバーを排他的に制御し、これらのコネクタを抑制します。

  • スコープ: Managed。ユーザーは排他的制御によって抑制されたコネクタを再度有効にすることはできません。
  • タイプ: ブール値
    • true: Claude Code は、デプロイされた managed-mcp.json と一緒に claude.ai コネクタを読み込みます
    • false: デプロイされた managed-mcp.json は MCP サーバーを排他的に制御し、Claude Code が自身で取得するclaude.ai コネクタを抑制します
  • デフォルト: false。デプロイされた managed-mcp.json は Claude Code が自身で取得する claude.ai コネクタを抑制します
{
  "allowAllClaudeAiMcps": true
}

allowedMcpServersとdeniedMcpServersは、このキーが読み込むコネクタにも適用されます。managed-mcp.json を持つホスト(自己ホスト型ランナーなど)のクラウドセッションに配信されるコネクタは、抑制されたままです。管理対象セットと一緒に claude.ai コネクタを許可するを参照してください。

allowClaudeInChromeWithManagedMcp

デプロイされた managed-mcp.json と一緒に、組み込みのClaude in Chromeサーバーを実行できるようにします。このキーがない場合、デプロイされた managed-mcp.json はターミナルセッションで Claude in Chrome をブロックします。Claude Code v2.1.282 以降が必要です。

  • スコープ: Managed。デバイス自身の管理設定からのみ。MDM でデプロイされた plist または HKLM レジストリキー、またはシステム managed-settings.json ファイル。Claude Code はサーバー管理設定、ユーザー書き込み可能な HKCU レジストリ、およびユーザーまたはプロジェクト設定では無視します。
  • タイプ: ブール値
    • true: 組み込みの Claude in Chrome サーバーは、デプロイされた managed-mcp.json と一緒に実行できます
    • false: デプロイされた managed-mcp.json はターミナルセッションで Claude in Chrome をブロックします
  • デフォルト: false。デプロイされた managed-mcp.json はターミナルセッションで Claude in Chrome をブロックします
{
  "allowClaudeInChromeWithManagedMcp": true
}

claude-in-chrome のdeniedMcpServersエントリは、このキーがオンの場合でもサーバーをブロックします。管理対象セットと一緒に Claude in Chrome を許可するを参照してください。

allowedMcpServers

ユーザーが追加できる MCP サーバーをホワイトリストに登録します。Claude Code は、プラグインサーバー、--mcp-config で渡されたサーバー、claude.ai からのサーバーを含め、どこで定義されていても、エントリに一致しないサーバーをブロックします。

Claude in Chrome、実行中のVS CodeまたはJetBrains IDE に Claude Code が接続する ide サーバー、CLI 自体が設定するサーバーなどの組み込みサーバーは、ホワイトリストから除外され、デニーリストは引き続きこれらに適用されます。Claude Code v2.1.268 以降では、Claude Tagセッションの Slack ツールもホワイトリストから除外され、デニーリストは引き続きこれらに適用されます。インプロセス type: "sdk" サーバーは両方のリストから除外されます。セッションを開始したアプリがこれらを登録します。

組織が配信するサーバーも許可リストから除外され、拒否リストは引き続きこれらに適用されます。この除外は、すべてのmanagedMcpServersエントリと、値がenv 以外で ${VAR} 展開を使用しないmanaged-mcp.jsonエントリをカバーします。完全なチェック順序については、サーバーの評価方法を参照してください。v2.1.259 より前では、managed-mcp.json からのサーバーも一致する必要がありました。

  • スコープ: Any file。allowManagedMcpServersOnlyが設定されていない限り、すべてのファイルからのエントリが 1 つのホワイトリストにマージされます。管理設定にデプロイして、これを強制します。
  • 型: オブジェクトの配列で、各オブジェクトはキーを 1 つだけ持ちます。英字、数字、ハイフン、アンダースコアのみで構成される文字列の serverName、コマンドとその引数を完全一致で照合する配列の serverCommand、または * ワイルドカードを使用する URL パターンの serverUrl のいずれかを使用します
  • デフォルト: 未設定。すべてのサーバーが許可されます。空の配列は、ユーザーが追加するすべてのサーバーをブロックします

この例は、リストされた npx コマンドが開始する stdio サーバーのみを許可します。

{
  "allowedMcpServers": [
    { "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem"] }
  ]
}

deniedMcpServersエントリが優先されるため、両方のリストにあるサーバーはブロックされます。リストに serverCommand エントリが含まれると、stdio サーバーは serverCommand エントリと一致する必要があり、serverUrl エントリが含まれると、リモートサーバーは serverUrl エントリと一致する必要があります。serverName の一致は、その種類のサーバーをもはや許可しません。ホワイトリストとデニーリストを使用したポリシーベースの制御を参照してください。

allowManagedMcpServersOnly

管理対象の許可リストのみを適用対象にします。Claude Code は、管理設定からのみ allowedMcpServers を読み込み、ユーザー、プロジェクト、ローカル設定の許可リストを無視します。deniedMcpServersは引き続きすべての設定スコープからマージされるため、ユーザーは自分自身のためにサーバーをブロックできます。管理者は、ユーザー自身の設定が管理対象の許可リストが許可するものを拡大できないようにするために、これを設定します。

  • スコープ: Managed
  • タイプ: ブール値
    • true: Claude Code は管理設定からのみ allowedMcpServers を読み込み、ユーザー、プロジェクト、ローカル設定のホワイトリストを無視します
    • false: すべての設定スコープのホワイトリストがマージされます
  • デフォルト: false。すべての設定スコープのホワイトリストがマージされます

この例は、ホワイトリストを管理設定にロックし、github という名前のサーバーのみを許可します。

{
  "allowManagedMcpServersOnly": true,
  "allowedMcpServers": [
    { "serverName": "github" }
  ]
}

ユーザーは引き続き独自の MCP サーバーを追加できます。管理対象ホワイトリストと一致するサーバーのみが読み込まれます。ホワイトリストを管理設定のみに制限するを参照してください。

deniedMcpServers

特定の MCP サーバーをブロックします。Claude Code は、プラグインサーバー、--mcp-config で渡されたサーバー、managed-mcp.json からのサーバー、managedMcpServersからのサーバー、および自身で取得するclaude.ai コネクタを含め、どこで定義されていても、一致するサーバーの読み込みを拒否します。インプロセス type: "sdk" サーバーは除外されます。セッションを開始したアプリがこれらを登録します。

  • スコープ: Any file。すべてのファイルからのエントリが 1 つのデニーリストにマージされ、allowManagedMcpServersOnlyはこれを変更しません。管理設定にデプロイして、これを強制します。
  • タイプ: オブジェクトの配列。各オブジェクトは正確に 1 つのキーを持ちます。serverName は文字列です。"claude.ai Slack" などの claude.ai コネクタの表示名が機能します。serverCommand は、コマンドとその引数を正確に一致させた配列です。または serverUrl は、* ワイルドカードを含む URL パターンです
  • デフォルト: 未設定。サーバーはブロックされません。空の配列も何もブロックしません
{
  "deniedMcpServers": [
    { "serverName": "filesystem" }
  ]
}

デニーリストはallowedMcpServersより優先されるため、両方のリストにあるサーバーはブロックされます。ホワイトリストとデニーリストを使用したポリシーベースの制御を参照してください。

disableClaudeAiConnectors

Claude Code が自身で取得するclaude.ai MCP コネクタをオフにして、取得も接続もしません。任意の設定ファイルで true が適用されます。チェックインされたプロジェクト .claude/settings.json はリポジトリをこれらのコネクタから除外できますが、プロジェクトレベルの false はユーザーレベルまたは管理レベルの true をオーバーライドできません。

  • スコープ: Any file
  • タイプ: ブール値
    • true: Claude Code はこれらのコネクタを取得も接続もしません
    • false: 未設定と同じです。別の設定ファイルまたは ENABLE_CLAUDEAI_MCP_SERVERS がこれらをオフにしない限り、Claude Code はコネクタを取得します
  • デフォルト: false。Claude Code はコネクタを取得します
  • セッションごとのオーバーライド: ENABLE_CLAUDEAI_MCP_SERVERSを false に設定すると、1 つのセッションのコネクタがオフになります。2 つのうちどちらがオフにしても、もう一方はオンに戻すことはできません
{
  "disableClaudeAiConnectors": true
}

--mcp-config で明示的に渡すサーバーは影響を受けません。すべてのコネクタをブロックする代わりに個別のコネクタをブロックするには、deniedMcpServersを使用します。claude.ai コネクタを無効にするを参照してください。

disabledMcpjsonServers

プロジェクトの .mcp.json ファイルで定義された特定のサーバーを拒否して、Claude Code がこれらに接続したり、承認を求めたりしないようにします。任意の設定ファイルでの拒否が適用されます。リポジトリにチェックインされたプロジェクト .claude/settings.json を含みます。

  • スコープ: Any file
  • タイプ: 文字列の配列。.mcp.json に表示されるサーバー名
  • デフォルト: 未設定
{
  "disabledMcpjsonServers": ["filesystem"]
}

Claude Code は、承認ダイアログでサーバーを拒否すると、このキーを .claude/settings.local.json に書き込みます。claude mcp get <name> は、拒否されたサーバーを ✘ Rejected (see disabledMcpjsonServers in settings) として表示します。拒否はenabledMcpjsonServersとenableAllProjectMcpServersより優先されます。

enableAllProjectMcpServers

プロジェクト .mcp.json ファイルで定義されたすべての MCP サーバーをプロンプトなしで承認します。Claude Code は、承認ダイアログですべてのサーバーを承認することを選択すると、このキーを .claude/settings.local.json に書き込みます。

  • スコープ: Any file。信頼ダイアログを受け入れていないフォルダでは、Claude Code はユーザー設定、管理設定、--settings からこれを尊重し、共有プロジェクトファイルではセッション内と claude mcp list および claude mcp get で無視します。プロジェクトサーバーの承認とワークスペースの信頼は、追跡されていない .claude/settings.local.json がいつカウントされるかを説明しています。
  • タイプ: ブール値
    • true: Claude Code はプロジェクト .mcp.json ファイルで定義されたすべての MCP サーバーをプロンプトなしで承認します
    • false: Claude Code は各サーバーの承認を求めます。信頼されたフォルダでは、優先度の高いファイルの false は優先度の低いファイルの true をオーバーライドします。信頼していないフォルダでは、尊重されるファイルの true で十分です
  • デフォルト: 未設定。Claude Code は各サーバーの承認を求めます
{
  "enableAllProjectMcpServers": true
}

disabledMcpjsonServersエントリはサーバーを拒否します。

enabledMcpjsonServers

プロジェクト .mcp.json ファイルで定義された特定のサーバーを承認して、Claude Code が質問なしにこれらに接続します。Claude Code は、承認ダイアログでサーバーを承認すると、このキーを .claude/settings.local.json に書き込みます。

  • スコープ: Any file。信頼ダイアログを受け入れていないフォルダでは、Claude Code はユーザー設定、管理設定、--settings からこれを尊重し、共有プロジェクトファイルではセッション内と claude mcp list および claude mcp get で無視します。プロジェクトサーバーの承認とワークスペースの信頼は、追跡されていない .claude/settings.local.json がいつカウントされるかを説明しています。
  • タイプ: 文字列の配列。.mcp.json に表示されるサーバー名
  • デフォルト: 未設定

この例は、プロジェクトの .mcp.json から memory および github サーバーを承認します。

{
  "enabledMcpjsonServers": ["memory", "github"]
}

disabledMcpjsonServersエントリはサーバーを拒否します。

managedMcpServers

管理設定からすべてのユーザーにリモート MCP サーバーを提供します。ユーザーは自分たちが追加したサーバーを保持し、提供されたサーバーを編集または削除することはできません。Claude Code v2.1.259 以降が必要です。

  • スコープ: Managed。Claude Code はユーザー、プロジェクト、ローカル設定でキーを警告とともにドロップし、Claude Desktop アプリのコードタブでサードパーティデプロイメント上で、またはアプリの Cowork セッションで読み込みません。Claude Desktop はこれらのセッションの MCP サーバーを供給してロックします。
  • タイプ: サーバー名でキー付けされたオブジェクト。各エントリは http または sse サーバーの .mcp.json 形状を持ちます。必須の https:// url と、オプションで headers、oauth、その他の HTTP および SSE オプション。Claude Code は検証に失敗したエントリをドロップし、エントリに含まれる内容は条件をリストします
  • デフォルト: 未設定。管理設定はサーバーを提供しません

この例は、search という名前の 1 つの HTTP サーバーを提供します。

{
  "managedMcpServers": {
    "search": {
      "type": "http",
      "url": "https://search.example.com/mcp"
    }
  }
}

優先度、提供されたサーバーが managed-mcp.json および許可リストと拒否リストとどのように組み合わされるか、およびユーザーが何を見るかについては、管理設定を通じてサーバーを提供するを参照してください。

エージェント、セッション、worktree

デフォルトエージェントを設定し、チームメイトとクロスセッションメッセージングを制御し、worktree を設定します。サブエージェントと worktree を参照してください。

agent

メインスレッドを名前付きサブエージェントとして実行し、Claude Code がそのサブエージェントのシステムプロンプト、ツール制限、およびモデルをセッションに適用するようにします。同じキーは claude agents からディスパッチするセッションのデフォルトエージェントも設定します。

  • スコープ: 任意のファイル
  • タイプ: 文字列、組み込みまたはカスタムエージェントの名前
  • デフォルト: 未設定。メインスレッドは Claude Code のデフォルトエージェントとして実行されます
  • セッションごとの上書き: --agent はこのキーより優先され、1 つのセッションに適用されます
{
  "agent": "code-reviewer"
}

プラグイン独自の settings.json もこのキーを提供できます。プラグインでデフォルト設定を配布するを参照してください。

crossSessionInbound

このセッションが他の Claude Code セッションから到着するメッセージに対して何を行うかを選択します。値が適用されない場合、Claude Code は 2 つのセッションの権限モードクラスからメッセージごとに決定します。Claude Code v2.1.224 以降が必要です。

  • スコープ: 任意のファイル。プロジェクトまたはローカル値は、管理設定、--settings フラグ、またはユーザー設定が提供する値より厳密な場合にのみ適用されます。
  • タイプ: 文字列、以下のいずれか:
    • "accept": Claude Code はメッセージを Claude に配信します
    • "hold": Claude Code はメッセージの通知を表示しますが、配信しません
    • "refuse": Claude Code はメッセージを破棄します
  • デフォルト: 未設定。Claude Code はメッセージごとに決定します
{
  "crossSessionInbound": "hold"
}

Claude Code は管理設定を最初に読み込み、次に --settings フラグ、その後ユーザー設定を読み込み、最初に見つかった値を適用します。refuse は hold より厳密で、hold は accept より厳密です。信頼できるソースのいずれもが値を設定しない場合、プロジェクトまたはローカルの hold または refuse は依然として適用され、メッセージごとのデフォルトを置き換えます。クロスセッションメッセージングを使用するセッションでは、このキーは /config に他のセッションからのメッセージとして表示され、ユーザー設定に書き込まれます。この行には Claude Code v2.1.232 以降が必要で、--settings フラグまたは管理設定がキーを設定している間、Claude Code はそれを非表示にします。

Claude Code は、認識しない値を設定すると警告します。その値がユーザー、プロジェクト、ローカル、または --settings ファイルに存在する間、Claude Code は受信メッセージを保留します。優先されるソースが accept を設定している場合でも、です。別のソースが設定する refuse は依然として適用されます。値を修正または削除して保留をクリアします。

認識しない値が管理設定にある場合、Claude Code は代わりに管理者が修正するまで refuse として扱います。v2.1.248 より前では、Claude Code は警告なしに認識しない値を無視していました。

disableAgentView

バックグラウンドエージェントとエージェントビューをオフにします:claude agents、--bg、/background、およびオンデマンドスーパーバイザー。管理設定で設定して、組織に対して強制します。

  • スコープ: 任意のファイル
  • タイプ: ブール値
    • true: Claude Code は claude agents、--bg、/background、およびオンデマンドスーパーバイザーをオフにします
    • false: エージェントビューが利用可能です
  • デフォルト: 未設定。エージェントビューが利用可能です
  • セッションごとの上書き: CLAUDE_CODE_DISABLE_AGENT_VIEW は 1 つのセッションのエージェントビューをオフにします。2 つのいずれかがそれをオフにすると、もう一方はそれをオンに戻すことはできません
{
  "disableAgentView": true
}

isolatePeerMachines

Claude の SendMessage がこのマシンを超えたセッションの 1 つに到達する前に、明示的な承認を要求します。クロスマシンメッセージの承認を要求するを参照してください。承認プロンプトは bypassPermissions モードでも表示されます。

  • スコープ: 任意のファイル。任意のスコープからの true が適用されるため、チェックインされたプロジェクトファイルは要件をオンにできますがオフにはできません。
  • タイプ: ブール値
    • true: Claude Code は Claude の SendMessage がこのマシンを超えたセッションの 1 つに到達する前に承認を求めます
    • false: クロスマシンメッセージはプロンプトを表示しません
  • デフォルト: 未設定。クロスマシンメッセージはプロンプトを表示しません
{
  "isolatePeerMachines": true
}

クロスマシン SendMessage 承認には Claude Code v2.1.224 以降が必要です。

processWrapper

macOS と Linux では、Claude Code が開始するバックグラウンドプロセスの前に企業ランチャーコマンドを配置します。Claude Code はランチャーを独自のコマンドラインを追加して実行するため、ランチャーは Claude Code に exec する必要があります。企業ランチャーの背後で Claude Code を実行するを参照してランチャーコントラクトを確認してください。Claude Code v2.1.210 以降が必要です。

  • スコープ: ユーザーまたは管理
  • タイプ: 文字列、argv プレフィックスとしてのランチャーコマンド(絶対パスとオプション引数など)
  • デフォルト: 未設定。バックグラウンドプロセスはラップされずに開始されます
  • セッションごとの上書き: CLAUDE_CODE_PROCESS_WRAPPER はこのキーより優先され、1 つのセッションに適用されます
{
  "processWrapper": "/opt/corp/launcher --profile claude"
}

Claude Code は Windows でランチャーを無視し、すべてのプロセスをラップされずに開始します。Claude Code v2.1.210 以降が必要です。

teammateMode

Claude Code がエージェントチームのチームメイトを表示する場所を選択します:メインターミナルペイン内、またはターミナルがサポートしている場合は分割ペイン内。表示モードを選択するを参照してください。

  • スコープ: 任意のファイル。Claude Code は古いバージョンによって ~/.claude.json に残された値も読み込みます。
  • タイプ: 文字列、以下のいずれか:
    • "in-process": チームメイトはメインターミナルペイン内で実行されます
    • "auto": tmux 内で実行している場合、または PATH に it2 がある iTerm2 内で実行している場合、または tmux がインストールされている場合は分割ペイン。それ以外の場合はインプロセス
    • "tmux": ターミナルから検出された tmux または iTerm2 を使用して分割ペイン
    • "iterm2": it2 CLI を通じた iTerm2 ネイティブ分割ペイン
  • デフォルト: "in-process"
  • セッションごとの上書き: --teammate-mode はこのキーより優先され、1 つのセッションに適用されます
{
  "teammateMode": "auto"
}

worktree

Claude Code が --worktree、EnterWorktree ツール、および分離されたサブエージェントとバックグラウンドセッションの git worktree を作成および管理する方法を設定します。

  • スコープ: 任意のファイル
  • タイプ: baseRef、symlinkDirectories、sparsePaths、および bgIsolation を含むオブジェクト
  • デフォルト: 未設定

この例は、現在の HEAD から新しい worktree をブランチし、各 worktree に node_modules をシンボリックリンクします:

{
  "worktree": {
    "baseRef": "head",
    "symlinkDirectories": ["node_modules"]
  }
}

.env のような gitignore されたファイルを新しい worktree にコピーするには、設定の代わりに .worktreeinclude ファイルをプロジェクトルートに追加します。

worktree.baseRef

新しい worktree がブランチする ref を選択します。"fresh" は origin/<default-branch> からブランチして、リモートと一致するクリーンツリーを取得します。"head" は現在のローカル HEAD からブランチするため、プッシュされていないコミットとフィーチャーブランチの状態が worktree に存在します。

  • スコープ: 任意のファイル
  • タイプ: 文字列、以下のいずれか:
    • "fresh": 新しい worktree は origin/<default-branch> からブランチします
    • "head": 新しい worktree は現在のローカル HEAD からブランチします(プッシュされていないコミットを含む)
  • デフォルト: "fresh"
{
  "worktree": {
    "baseRef": "head"
  }
}

リンクされた worktree 内では、"head" はメインチェックアウトの HEAD ではなく、その worktree の HEAD に解決されます。

メインリポジトリからディレクトリを各 worktree にシンボリックリンクして、ディスク上の大きなディレクトリを複製しないようにします。

  • スコープ: 任意のファイル
  • タイプ: 文字列の配列、リポジトリルートに相対的なディレクトリパス
  • デフォルト: 未設定。Claude Code はディレクトリをシンボリックリンクしません

この例は、メインリポジトリから node_modules と .cache をすべての新しい worktree にシンボリックリンクします:

{
  "worktree": {
    "symlinkDirectories": ["node_modules", ".cache"]
  }
}

worktree.sparsePaths

git sparse-checkout を通じて各 worktree にリストされたディレクトリのみをチェックアウトします。Claude Code はそれらのディレクトリとルートレベルのファイルのみをディスクに書き込みます。これは大規模なモノレポでより高速です。必要なディレクトリのみをチェックアウトするを参照してください。

  • スコープ: 任意のファイル
  • タイプ: 文字列の配列、リポジトリルートに相対的なディレクトリパス
  • デフォルト: 未設定。各 worktree はツリー全体をチェックアウトします

リストに .claude を含めると、各 worktree にもリポジトリの .claude/settings.json と .claude/rules/ が含まれるようになります。この例は、各 worktree で .claude、packages/my-app、shared/utils のみをチェックアウトします(ルートレベルのファイルを含む):

{
  "worktree": {
    "sparsePaths": [".claude", "packages/my-app", "shared/utils"]
  }
}

スパース worktree が存在する間、git はリポジトリの共有 .git/config で extensions.worktreeConfig を有効にします。

worktree.bgIsolation

バックグラウンドセッションがファイル編集を分離する方法を選択します。← または /background でセッションをバックグラウンドに移動した場合、このキーの値にかかわらず、そのセッションはファイルをその場で編集します。"worktree" では、Claude Code はセッションが EnterWorktree を呼び出すまでメインチェックアウトで Edit と Write をブロックします。"none" では、バックグラウンドジョブはワーキングコピーを直接編集します。git worktree が実用的でないリポジトリの場合は "none" を設定します。

  • スコープ: 任意のファイル
  • タイプ: 文字列、以下のいずれか:
    • "worktree": Claude Code はセッションが EnterWorktree を呼び出すまでメインチェックアウトで Edit と Write をブロックします
    • "none": バックグラウンドジョブはワーキングコピーを直接編集します
  • デフォルト: "worktree"
{
  "worktree": {
    "bgIsolation": "none"
  }
}

git リポジトリの外では、失敗する WorktreeCreate フックがブロックを解放し、セッションが作業ディレクトリをその場で編集できるようにします。

worktree.location

Desktop の SSH セッションが worktree を作成するリモートマシン上のフォルダーを、<project-root>/.claude/worktrees/ の代わりに選択します。このキーを読み込むのはデスクトップアプリのみです。--worktree、EnterWorktree ツール、分離されたサブエージェント、およびバックグラウンドセッションはこのキーを無視します。Claude Desktop v1.44121.0 以降が必要です。

  • スコープ: ユーザー、リモートマシン上の ~/.claude/settings.json 内
  • タイプ: 文字列、絶対パスまたは ~/ で始まるパス
  • デフォルト: 未設定。worktree はプロジェクト内に作成されます

この例はフォルダーを ~/worktrees に設定します:

{
  "worktree": {
    "location": "~/worktrees"
  }
}

Desktop で SSH 接続に設定された Worktree folder が優先されます。組織がセッションで使用できるフォルダーを制限している場合、Desktop は worktree をプロジェクト内に保持します。

リモート、デスクトップ、および通知

Remote Control、クラウド環境、デスクトップアプリ、および Claude Code が必要な場合に送信する通知を設定します。Remote Control を参照してください。

agentPushNotifEnabled

Claude が送信する価値があると判断した場合(たとえば、長いタスクが完了した場合など)に、電話にプッシュ通知を送信することを Claude に許可します。ローカルセッションでは、Claude は Remote Control が接続されている間に通知を送信できます。/config では Push when Claude decides として表示されます。そこで変更すると、Claude Code はその値をアカウントにも保存します。

  • Scope: Any file。Claude Code は古いバージョンによって ~/.claude.json に残された値も読み取ります。
  • Type: Boolean
    • true: Claude は価値があると判断した場合に電話にプッシュ通知を送信できます
    • false: Claude はそれらの通知を送信しません
  • Default: false
{
  "agentPushNotifEnabled": true
}

claude remote-control サーバーの下でセッションを実行する場合、それらのセッションはこのキーではなく、アカウントに保存された値に従います。その値を変更するには、ターミナルの Claude Code セッションで /config を実行し、Push when Claude decides をオンまたはオフにします。トグルがすでに目的の値を示している場合は、一度切り替えてから元に戻し、Claude Code がその値をアカウントに保存するようにします。

Mobile push notifications を参照してください。

awaySummaryEnabled

数分間離れた後にターミナルに戻ったときに、1 行のセッション要約を表示します。false に設定するか、/config で Session recap をオフにして、要約を停止します。

  • Scope: Any file
  • Type: Boolean
    • true: 数分間離れた後に戻ったときに、1 行のセッション要約が表示されます
    • false: Claude Code は要約を表示しません
  • Default: 未設定なので、要約はオンです
  • Per-session overrides: CLAUDE_CODE_ENABLE_AWAY_SUMMARY はこのキーより優先され、どちらの方向でも 1 セッションに適用されます
{
  "awaySummaryEnabled": false
}

Claude Code は非対話モードでは要約を表示しません。

disableArtifact

[!WARNING]

非推奨であり、enableArtifact に置き換えられました。Claude Code は disableArtifact: true を enableArtifact: false と同等として引き続き尊重し、disableArtifact: false は無視します。

代わりに enableArtifact を使用して、セッション出力を claude.ai 上のプライベート Web ページとして公開する Artifact ツールをオフにします。/config で Artifacts 行をオフにすると、Claude Code はユーザー設定に enableArtifact を書き込み、このキーをクリアします。

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code はファイルが適用されるすべてのセッションに対して Artifact ツールをオフにし、他のファイルはそれをオンに戻しません
    • false: 無視されます。ツールをオンのままにするには、キーを削除します
  • Default: 未設定なので、ツールはアカウントの availability に従います
  • Per-session overrides: CLAUDE_CODE_DISABLE_ARTIFACT を 1 に設定すると、1 つのセッションのツールがオフになります
{
  "disableArtifact": true
}

Disable artifacts はツールをオフにするすべての方法を一覧表示します。

Claude Code が claude-cli:// プロトコルハンドラーをオペレーティングシステムに登録することを停止します。Deep links により、外部ツールは事前入力されたプロンプトで Claude Code セッションを開くことができます。プロトコルハンドラー登録が制限されているか、別途管理されている環境でこれを設定します。

  • Scope: Any file
  • Type: 文字列 "disable"
  • Default: 未設定なので、Claude Code はハンドラーを登録します
{
  "disableDeepLinkRegistration": "disable"
}

disableDesktopLocalSessions

開発者が SSH 経由でリモートマシンで作業する必要があるデプロイ向けに、デスクトップアプリ でデバイス上で実行される Code セッションをオフにします。キーを true に設定すると、ユーザーには Code タブで次のように表示されます:

  • 環境セレクター: ユーザーのコンピューターのエントリはグレーアウトされて選択できなくなり、ツールチップ Disabled by your organization が表示されます。Windows では WSL エントリも同じようにグレーアウトされますが、WSL セッションが管理対象デバイスで実行されるかどうか自体は 別途管理されます。
  • 新しいセッション: 設定されている場合は、最初の SSH 接続 がデフォルトになります
  • デバイス上のセッション: アプリは、同じマシンへの SSH 接続を含め、デバイス上でのセッションの開始または再開を拒否します
  • 他のホストへの SSH セッションとクラウドセッション: 影響を受けません

デスクトップアプリはこのキーを読み取ります。ターミナル CLI は無視します。Claude Desktop v1.37937.0 以降が必要です。

  • Scope: Managed。デフォルトでは、デスクトップアプリは 1 つの管理ソース からキーを読み取ります。
  • Type: Boolean。JSON Boolean true のみが有効です
    • true: デスクトップアプリはオンデバイスコードセッションを提供しません。既存のローカルセッションはリストに残りますが、続行できません
    • false: ローカルセッションは利用可能なままです
  • Default: 未設定なので、ローカルセッションは利用可能です
{
  "disableDesktopLocalSessions": true
}

デスクトップアプリは他の値を無視し、文字列 "true" や 1 などの Boolean ではない値も警告をログに記録します。sshConfigs とペアにして、ユーザーが機能する接続にアクセスし、sshHostAllowlist とペアにして、到達できるホストを制限します。Local sessions on managed devices を参照してください。

Claude Desktop は、デスクトップ設定から派生したポリシー(たとえば、エグレス許可リスト、ファイルシステムサンドボックス、サードパーティデプロイメント内の MCP 制限など)を使用して Code セッションを提供します。Claude Code は、管理ソース が存在する場合(サーバー管理設定、MDM または OS レベルのポリシー、またはマネージド設定ファイル)、常にそれらの親設定を無視します。サードパーティデプロイメントのように、以前にないデバイスにこのキーをデプロイすると、デスクトップ派生ポリシーが適用されなくなります。Let an embedding host add policy は、親設定がまだマージできる場合をカバーしています。これは、このキーだけでなく、その方法でデプロイするすべてのキーに適用されます。

disableRemoteControl

Remote Control をオフにします。Claude Code は claude remote-control、--remote-control フラグ、自動開始、およびセッション内トグルを拒否し、組織のポリシーがそれを無効にしたことを報告します。マネージド設定 に配置して、デバイスごとの MDM 強制を行います。

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code は claude remote-control、--remote-control フラグ、自動開始、およびセッション内トグルを拒否します
    • false: Remote Control は利用可能なままです
  • Default: false
{
  "disableRemoteControl": true
}

enableArtifact

セッション出力を claude.ai 上のプライベート Web ページとして公開する Artifact ツールをオフにします。/config で Artifacts 行をオフにすると、Claude Code はこのキーをユーザー設定に書き込むため、通常は手動で編集しません。

  • Scope: Any file。すべてのファイルはツールをオフにでき、どのファイルもそれをオンに戻すことはできません。
  • Type: Boolean
    • false: Claude Code はファイルが適用されるすべてのセッションに対して Artifact ツールをオフにします
    • true: キーを未設定のままにするのと同じです。別のファイルからの false、CLAUDE_CODE_DISABLE_ARTIFACT、または組織の 管理設定 をオーバーライドしないためです
  • Default: 未設定なので、ツールはアカウントの availability に従います
{
  "enableArtifact": false
}

ユーザー設定以外のソースがツールをオフのままにしている間、Claude Code は /config で Artifacts 行を非表示にします。そこでオンにしても何も変わらないためです。Disable artifacts はツールをオフにするすべての方法を一覧表示します。

inputNeededNotifEnabled

権限プロンプトまたは質問が入力を待っているときに、電話にプッシュ通知を取得します。ローカルセッションでは、Claude Code はこれらを Remote Control が接続されている間のみ送信します。/config では Push when actions required として表示されます。

  • Scope: Any file。Claude Code は古いバージョンによって ~/.claude.json に残された値も読み取ります。
  • Type: Boolean
  • Default: false
{
  "inputNeededNotifEnabled": true
}

Mobile push notifications を参照してください。

preferredNotifChannel

タスクが完了したときまたは権限プロンプトが待機しているときに Claude Code が通知する方法を選択します。mod の通知 も同じ設定を使用します。/config では Local notifications として表示されます。

  • Scope: Any file。Claude Code は古いバージョンによって ~/.claude.json に残された値も読み取ります。
  • Type: 文字列、以下のいずれか:
    • "auto": Claude Code は iTerm2、Ghostty、Kitty を検出した場合にデスクトップ通知を送信し、Terminal.app では可聴ベルがオフの場合にのみベルを鳴らし、他の場所では何もしません
    • "terminal_bell": Claude Code は任意のターミナルでベル文字を鳴らします
    • "iterm2": Claude Code は iTerm2 デスクトップ通知を送信します
    • "iterm2_with_bell": Claude Code は iTerm2 デスクトップ通知を送信し、ベルを鳴らします
    • "kitty": Claude Code は Kitty デスクトップ通知を送信します
    • "ghostty": Claude Code は Ghostty デスクトップ通知を送信します
    • "notifications_disabled": Claude Code は通知を送信しません
  • Default: "auto"
{
  "preferredNotifChannel": "terminal_bell"
}

"auto" では、Claude Code は iTerm2、Ghostty、Kitty を検出した場合にデスクトップ通知を送信します。Terminal.app では、Terminal の可聴ベルをオフにした場合のみベル文字を鳴らし、他のターミナルでは何もしません。任意のターミナルでベル文字を鳴らすには "terminal_bell" を設定します。Get a terminal bell or notification を参照してください。

remote.defaultEnvironmentId

claude --cloud などの CLI から作成するクラウドセッション用のデフォルト クラウド環境 を選択します。Claude Code は /remote-env で環境を選択するときに、このキーをユーザー設定に書き込みます。

  • Scope: Any file。自己ホスト環境 ID の場合、ユーザーまたはマネージド設定、または --settings フラグのみ。
  • Type: 文字列、env_... または ccpool_... などの環境 ID
  • Default: 未設定なので、Claude Code はリストに Anthropic ホスト環境がある場合はそれを使用し、そうでない場合は Remote Control ブリッジ環境 ではないリスト内の最初の環境を使用するか、すべてがブリッジ環境の場合は最初の環境を使用します
  • Per-session overrides: --environment はこのキーより優先され、作成する 1 つのクラウドセッションに適用されます
{
  "remote": {
    "defaultEnvironmentId": "env_0123abcd"
  }
}

env_ で始まる Anthropic ホスト環境 ID は標準設定の優先度に従うため、リポジトリのプロジェクト設定の値がユーザーレベルの選択をオーバーライドします。ccpool_ で始まる 自己ホスト環境 ID は、ユーザー設定、マネージド設定、および --settings フラグからのみ尊重されます。Claude Code はリポジトリのプロジェクトまたはローカル設定のものを無視し、/remote-env は無視した値を表示するため、チェックインされたファイルは選択しなかった自己ホスト環境にセッションをステアリングできません。

remoteControlAtStartup

各対話セッションの開始時に Remote Control を自動的に接続します。/remote-control を待つ代わりに。自動接続をオンにするには true に設定し、オフにするには false に設定します。/config では Enable Remote Control for all sessions として表示されます。

  • Scope: Any file。Claude Code は古いバージョンによって ~/.claude.json に残された値も読み取ります。
  • Type: Boolean
    • true: Claude Code は各対話セッションの開始時に Remote Control を自動的に接続します
    • false: Claude Code は /remote-control を待ちます
  • Default: 未設定なので、自動接続デフォルト が適用されます
  • Per-session overrides: --remote-control はこのキーが false の場合でも 1 つのセッションに対して Remote Control をオンにし、フラグは 1 つのセッションに対してそれをオフにしません
{
  "remoteControlAtStartup": true
}

Claude Code はプロジェクトまたはローカル設定からの true を無視するため、リポジトリはそのチェックアウトの自動接続をオフにできますが、オンにすることはできません。完全なスコープごとの動作については、Enable Remote Control for all sessions および より厳密な値が適用されるセキュリティキー を参照してください。

sshConfigs

Desktop の環境セレクターに SSH 接続を追加します。管理者は sshConfigs を使用して、共有接続をチームに配布します。ユーザーは管理対象の接続を選択し、それに対して 独自の Worktree folder を設定 できます。アプリでそれ以外のフィールドを編集したり、接続を削除したりすることはできません。

  • Scope: User or managed。デスクトップアプリはこのキーを読み取ります。デフォルトでは、管理対象の接続を 1 つの管理ソース から読み取ります。
  • Type: オブジェクトの配列。各オブジェクトは必須の id、name、sshHost と、オプションの sshPort および sshIdentityFile を持ちます
  • Default: 未設定

この例は、user@dev.example.com に接続する Dev VM という名前の 1 つの接続を追加します:

{
  "sshConfigs": [
    {
      "id": "dev-vm",
      "name": "Dev VM",
      "sshHost": "user@dev.example.com"
    }
  ]
}

sshHostAllowlist

Desktop SSH セッション が接続できるホストを制限します。デスクトップアプリのみがこのキーを読み取ります。CLI は読み取りません。パターンは大文字と小文字を区別しません。* は任意のホストに一致し、*.example.com は example.com とすべてのサブドメインに一致し、その他は ~/.ssh/config 解決後のホスト名に対する完全一致です。空の配列は SSH セッションをオフにします。

Claude Desktop v3.1623.0 以降では、セッションの ジャンプホスト もパターンに一致する必要があります。

  • Scope: Managed。デフォルトでは、Desktop は 1 つの管理ソース からキーを読み取ります。
  • Type: ホスト名パターンの配列
  • Default: 未設定なので、任意のホストが許可されます

この例は、devboxes.example.com とそのサブドメイン、および正確なホスト bastion.example.com を許可します:

{
  "sshHostAllowlist": ["*.devboxes.example.com", "bastion.example.com"]
}

true やオブジェクトなど、Desktop がホストのリストとして読み取れない値は、修正するまで空の配列として扱われます。ただし null は未設定として扱われます。Claude Desktop v2.26454.0 以降が必要です。

最上位のソースで managedSourcesBehavior を "merge" に設定すると、Desktop はすべての 管理ソース のリストを結合し、いずれかに一致するホストを許可します。あるソースで空の配列を設定しても、別のソースがリストしているホストに対しては SSH セッションはオンのままです。

sshHostCommands

コマンドからホストを取得する SSH 接続を Desktop の環境セレクターに追加します。接続を作成するとき、またはその接続用に別のマシンを作成するとき、Desktop はエントリのコマンドをコンピューター上で実行し、コマンドが出力したホストに接続します。

Claude アカウントにサインインした状態で、macOS または Linux では Claude Desktop v3.6556.0 以降、Windows では v4.16336.0 以降が必要です。Windows では、Desktop が OpenSSH クライアント経由で接続する 必要もあります。

この例は、Dev box という名前の 1 つの接続を追加します。acme-dev create は独自のツールを表します:

{
  "sshHostCommands": [
    {
      "id": "devbox",
      "name": "Dev box",
      "command": "acme-dev create"
    }
  ]
}

Windows では acme-dev のような名前だけの指定は機能しないため、コマンドをプログラムのフルパスで始めてください。

Claude Code v2.1.307 より前は、Edit ツールは有効な設定ファイルにこのキーを追加する変更を拒否し、エラー Unrecognized field: sshHostCommands を表示していました。これらのバージョンでは、代わりにテキストエディターでキーを追加してください。Claude Code はこのキーを含むファイルを読み込みます。Desktop で対象となるバージョンは、ターミナルのバージョンではなく Code タブの Claude Code バージョン です。

認証とプロバイダー

ヘルパースクリプトを通じて認証情報を提供し、組織の場合はログイン方法または組織を強制します。認証を参照してください。

allowedProviders

マシンが Claude に到達できるサービス(Anthropic API、Amazon Bedrock、LLM ゲートウェイなど)をリストアップします。リストに記載されていないプロバイダー上のセッションは、スタートアップ時、ログイン時、および次に API に接続するときに拒否されるため、セッション中にリストに記載されていないプロバイダーに切り替えることも拒否されます。拒否メッセージには、プロバイダーを選択したものと続行するためのステップが記載されています。Claude Code v2.1.285 以降が必要です。

  • スコープ: Managed。マシン自身の管理者ソース(MDM ポリシーおよび管理設定ファイル)が設定したリストは、サーバー管理設定もリストを配信する場合でも適用され続けます。その場合、セッションは両方のリスト上のプロバイダーのみを使用できるため、サーバー管理リストはマシンが許可するものを狭めることはできますが、広げることはできません。マシンソースの allowedProviders のどれが数えられるかは、Claude Code が管理ソースを組み合わせる方法に従います。サーバー管理設定のみを通じて配信されたリストは、サーバー管理設定を取得するセッションのみに到達します。
  • タイプ: 文字列の配列。各要素は以下のいずれか:
  • デフォルト: 未設定。任意のプロバイダーを使用できます
{
  "allowedProviders": ["anthropic", "bedrock"]
}

各クラウドプロバイダーのエントリは、そのプロバイダー独自のサービス(地域、FIPS、プライベートエンドポイントを含む)を意味します。

Claude Code がプロバイダー名として認識しないエントリは削除され、報告され、リストの残りは強制されます。空のリスト、またはすべてのエントリが認識されないリストの場合、Claude Code はすべてのプロバイダーを拒否し、マシン上で起動しません。

管理 env でピンが必要なエンドポイント

ピンは、管理 env ブロックで設定されたエンドポイント変数の値です。セッションがプロバイダーのトラフィックをそのプロバイダー独自のサービス以外の場所に送信する場合、Claude Code はセッションの値がピンと同じ場合にのみそれを許可します。これらのエンドポイントには 1 つが必要です:

  • "customEndpoint" セッション: ホストを指定する変数(ANTHROPIC_BASE_URL など)
  • Amazon Bedrock: AWS SDK の AWS_ENDPOINT_URL、AWS_ENDPOINT_URL_BEDROCK、および AWS_ENDPOINT_URL_BEDROCK_RUNTIME 変数が Bedrock 独自のサービス外を指す場合。セッションは "customEndpoint" ではなく "bedrock" の下に留まります
  • ゲートウェイサインイン URL: セッションは "gateway" の下に留まり、forceLoginGatewayUrl もピンとしてカウントされます

どの env ブロックがピンとしてカウントされるかは、リストが設定されている場所によって異なります:

  • マシン上の管理者ソースがリストを設定: マシン独自の管理者ソースの env ブロックのみがカウントされます
  • サーバー管理設定のみがリストを設定: これらのサーバー管理設定の env 値もカウントされます

リストは、クラウドプロバイダーの認証情報とテナンシー変数、または HTTPS_PROXY と証明書設定などのネットワークパスを判定しません。管理 env ブロックでフリート用にそれらを設定します。

apiKeyHelper

Claude Code がモデルリクエストで送信する認証情報を生成するために独自のコマンドを実行します。Claude Code はコマンドをシステムシェル(macOS と Linux では /bin/sh、Windows では cmd)を通じて実行し、その出力を X-Api-Key ヘッダーと Authorization: Bearer ヘッダーの両方として送信します。ボールトから取得した短期トークンなど、動的または回転する認証情報に使用します。

  • スコープ: Any file
  • タイプ: 文字列、シェルコマンドライン
  • デフォルト: 未設定。Claude Code はヘルパーを実行しません
{
  "apiKeyHelper": "/bin/generate_temp_api_key.sh"
}

Claude Code はこれらの場合に値をキャッシュし、コマンドを再実行します。

  • キャッシュの有効期限後。デフォルトは 5 分、または CLAUDE_CODE_API_KEY_HELPER_TTL_MS で設定した間隔
  • Anthropic API へのリクエスト(直接または LLM ゲートウェイ経由)が 401 または 403 で失敗した場合
  • Google Cloud の Agent Platform 用に CLAUDE_CODE_SKIP_VERTEX_AUTH、AWS 上の Claude Platform 用に CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH、または Amazon Bedrock Mantle 用に CLAUDE_CODE_SKIP_MANTLE_AUTH を設定している状態で、LLM ゲートウェイ経由のリクエストが 401 で失敗した場合(403 の場合は除く)。Claude Code v2.1.318 以降が必要です。
  • Anthropic API へのリクエスト(直接または LLM ゲートウェイ経由)を送信する前に、キャッシュされた出力がヘルパーが生成した後に期限切れになった JWT である場合。Claude Code v2.1.246 以降が必要です。

最後の 3 つのケースは、ヘルパーの出力が Claude Code が送信する認証情報であり、ANTHROPIC_AUTH_TOKEN が設定されていない場合にのみ適用されます。

インタラクティブセッションでは、コマンドがプロジェクトまたはローカル設定から来ている場合、Claude Code はワークスペーストラストプロンプトを受け入れるまでコマンドを実行しません。認証情報管理を参照してください。

awsAuthRefresh

aws sso login などの独自のコマンドを実行して、Claude Code が Amazon Bedrock に対して持つ認証情報が機能しなくなったときに .aws ディレクトリの認証情報をリフレッシュします。Claude Code は最初に現在の認証情報を STS に対してチェックし、そのチェックが失敗した場合にのみコマンドを実行してから、リフレッシュされた .aws ディレクトリを読み取ります。

同じコマンドと認証情報を使用する複数の Claude Code プロセス(別々のターミナルや IDE ウィンドウなど)で同時にチェックが失敗した場合、1 つのプロセスがコマンドを実行し、残りのプロセスは独自に実行を開始する代わりにその実行を待機します。リクエストを保留したまま 60 秒間待機したプロセスは、自らコマンドを実行します。この動作をオフにするには、CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK を 1 に設定します。

  • スコープ: Any file
  • タイプ: 文字列、シェルコマンドライン
  • デフォルト: 未設定。Claude Code は AWS 認証情報をリフレッシュしません
{
  "awsAuthRefresh": "aws sso login --profile myprofile"
}

リフレッシュフローが .aws に書き込む場合はこのキーを使用します。代わりに認証情報を出力する場合は awsCredentialExport を使用します。高度な認証情報設定を参照してください。

awsCredentialExport

AWS 認証情報を JSON として出力する独自のコマンドを実行して、Claude Code が .aws ディレクトリに存在しない認証情報で Amazon Bedrock を呼び出すことができるようにします。Claude Code は aws sts 出力形式とフラットな aws configure export-credentials 形式を受け入れ、認証情報を独自の Bedrock クライアントにスコープするため、Claude Code が実行するシェルコマンドは引き続き環境の認証情報を参照します。

  • スコープ: Any file
  • タイプ: 文字列、シェルコマンドライン
  • デフォルト: 未設定。Claude Code は環境の AWS 認証情報チェーンを使用します
{
  "awsCredentialExport": "/bin/generate_aws_grant.sh"
}

awsAuthRefresh とは異なり、Claude Code はこのコマンドが設定されている場合、環境の認証情報を最初にチェックせずに常に実行します。高度な認証情報設定を参照してください。

forceLoginMethod

ユーザーがログインできるアカウントの種類を制限します。"claudeai" を設定して claude.ai アカウントのみを許可するか、"console" を設定して Claude Console アカウントのみを許可するか、"gateway" を設定してファーストパーティログインの代わりに クラウドゲートウェイにユーザーを送信します。管理者は管理設定で設定し、forceLoginOrgUUID と組み合わせて開発者の claude.ai ログインを 1 つの組織内に保つことができます。

任意の設定ファイルで "claudeai" に設定した場合、Claude Code はそのファイルが適用されるセッションで キーレス Console サインインの提供も停止します。"console" のみの場合、ユーザーはログインに失敗した後も引き続きキーレスサインインに到達できます。Claude Code による提供を停止するには、管理対象マシンでキーレスサインインの提供を停止するを参照してください。このセクションには、forceLoginOrgUUID が他に何を変更するかも記載されています。

  • スコープ: Any file。Claude Code は "gateway" を forceLoginGatewayUrl と同じソースからのみ受け入れ、それ以外の場所では未設定として扱います。
  • タイプ: 文字列、以下のいずれか:
    • "claudeai": claude.ai アカウントのみがログインできます
    • "console": Claude Console アカウントのみがログインできます
    • "gateway": Claude Code はユーザーをファーストパーティログインの代わりにクラウドゲートウェイに送信します
  • デフォルト: 未設定。ユーザーはログイン方法を選択します
{
  "forceLoginMethod": "claudeai"
}

すべてのファーストパーティログインパスが制限を適用します。VS Code 拡張機能、Agent SDK、claude setup-token、および /install-github-app を含みます。ただし、ターミナルのインタラクティブログイン画面(/login または初回実行オンボーディングで到達)は、メソッドを事前選択しますが強制しません。v2.1.212 より前は、ターミナルログインのみが適用されていました。ログインを組織に制限するを参照して、各ログインパス、環境認証情報、およびサードパーティプロバイダーがどのように処理されるかを確認してください。

マシン上の管理ソースが "gateway" を設定する場合、Claude Code は残されたログイン、API キー、または apiKeyHelper 認証情報を使用しません。各メッセージについては 管理者ポリシーがクラウドゲートウェイサインインを必要としますを参照してください。CLAUDE_CODE_USE_BEDROCK または同様の環境変数を通じてクラウドプロバイダーを選択する場合、セッションはゲートウェイサインインを必要としません。v2.1.261 より前は、Claude Code はこれらのマシンで残されたログインを使用していました。

forceLoginGatewayUrl

/login クラウドゲートウェイ画面が接続するゲートウェイ URL を設定して、ユーザーがアドレスを入力せずに クラウドゲートウェイに到達できるようにします。画面には URL フィールドがありません。このキーが設定されている場合、ゲートウェイ URL を表示し、ユーザーが Enter キーを押すと接続します。設定されていない場合、IT 管理者に連絡するよう指示します。

管理設定では、このキーまたは forceLoginMethod: "gateway" のいずれかにより、CLAUDE_CODE_USE_* でクラウドプロバイダーを選択するセッションを除き、マシンはゲートウェイのみになります。その場合、/login はログイン方法ピッカーなしでクラウドゲートウェイ画面で開きます。残されたファーストパーティログインまたは API キーに何が起こるかについては、管理者ポリシーがクラウドゲートウェイサインインを必要としますを参照してください。画面がエラーを表示する代わりに接続するように、両方のキーを設定します。

  • スコープ: User or managed。マシン上の管理ソースから読み取ります。managed-settings.json、macOS plist または Windows HKLM レジストリ、またはポリシーヘルパー。これらのいずれもないマシンでは、Claude Code v2.1.295 以降は ユーザー設定からも読み取ります。Claude Code は HKCU およびサーバー管理設定では無視します。
  • タイプ: 文字列、スキームを含む完全な URL
  • デフォルト: 未設定。クラウドゲートウェイ画面は IT 管理者に連絡するよう指示するエラーを表示します
{
  "forceLoginGatewayUrl": "https://claude-gateway.example.com"
}

値が有効な URL でない場合、サインイン画面はそれを報告し、管理設定ファイルの残りは引き続き適用されます。ゲートウェイ URL を設定するを参照してください。

forceLoginOrgUUID

管理ソースから、claude.ai アカウントログインが 1 つの Anthropic 組織(単一の UUID として指定)または複数の組織(配列として指定)に属することを要求します。任意の設定ファイルから、Claude Code は単一の UUID を使用して claude.ai または Claude Console ログイン中にその組織を事前選択し、配列の場合は何も事前選択しません。任意の設定ファイルでキーを設定する場合、Claude Code はそのファイルが適用されるセッションで キーレス Console サインインの提供も停止し、代わりに API キーを作成します。

  • スコープ: Any file。管理ソースではない設定ファイルでは、Claude Code はログインがどの組織に属するかをチェックせず、単一の UUID はログイン中にその組織を事前選択します。
  • タイプ: 文字列、1 つの UUID、または文字列の配列、複数の UUID
  • デフォルト: 未設定。任意の組織がログインできます

この例は、1 つを事前選択せずに 2 つの組織のいずれかからのログインを受け入れます。

{
  "forceLoginOrgUUID": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]
}

管理ソースが空の配列、または文字列でも文字列の配列でもない値を設定した場合、Anthropic アカウントでサインインするユーザーは Claude Code を起動することもログインを完了することもできません。ユーザーには、forceLoginOrgUUID を名指しし、管理者に連絡するよう指示するメッセージが表示されます。誤った型の値を出力する policyHelper の場合は、代わりにその実行が失敗します。

ログインを組織に制限するを参照して、Claude Code が Claude Console ログイン、他のログインパス、および環境認証情報をどのように扱うかを確認してください。

gatewayInternalNetworks

組織が内部ネットワークに番号を付ける公開 IPv4 ブロックを宣言して、/login が クラウドゲートウェイをそこで受け入れるようにします。Claude Code v2.1.268 以降が必要です。

このキーがない場合、/login はプライベートアドレス上のゲートウェイのみに接続し、それ以外には接続しません。このキーがある場合、/login はリストされたブロック内のゲートウェイも受け入れます。直接接続のみです。その接続上のマシン自身のアドレスも同じブロック内にある必要があります。

  • スコープ: Managed。マシン上のソースからのみ読み取ります。managed-settings.json、macOS plist または Windows HKLM レジストリ、またはポリシーヘルパー。Claude Code は HKCU およびサーバー管理設定では無視します。
  • タイプ: 文字列の配列、最大 4 つの IPv4 CIDR ブロック、各 /8 から /32、互いに重複しない、およびプライベートスペースと重複しない
  • デフォルト: 未設定。/login はプライベートアドレス上のゲートウェイのみを受け入れます
{
  "gatewayInternalNetworks": ["203.0.113.0/24"]
}

例のドキュメンテーション範囲を独自のブロックに置き換えます。Claude Code はドキュメンテーション範囲、VPN と NAT64 クライアントがローカルで使用する範囲、およびマルチキャストなどのネットワークが番号を付けられていない予約スペースを拒否します。

エントリが無効であるか、値が文字列のリストでない場合、/login は問題を名前で指定し、値を修正するまでマシン上のすべての新しいゲートウェイサインインを拒否します。既存のサインインは機能し続けます。完全なルールと開発者が見るものについては、所有する公開アドレススペース上のゲートウェイを許可するを参照してください。

gcpAuthRefresh

Claude Code が Google Cloud Application Default Credentials の有効期限が切れているか読み込めないことを検出したときにリフレッシュするために独自のコマンドを実行して、Google Cloud の Agent Platform リクエストが手動で再認証することなく機能し続けるようにします。

同じコマンドと認証情報を使用する複数の Claude Code プロセス(別々のターミナルや IDE ウィンドウなど)が同時に認証情報の期限切れを検出した場合、1 つのプロセスがコマンドを実行し、残りのプロセスは独自に実行を開始する代わりにその実行を待機します。リクエストを保留したまま 60 秒間待機したプロセスは、自らコマンドを実行します。この動作をオフにするには、CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK を 1 に設定します。

  • スコープ: Any file
  • タイプ: 文字列、シェルコマンドライン
  • デフォルト: 未設定。Claude Code の認証情報エラーは gcloud auth application-default login を自分で実行するよう指示します
{
  "gcpAuthRefresh": "gcloud auth application-default login"
}

高度な認証情報設定を参照してください。

otelHeadersHelper

Claude Code が OpenTelemetry エクスポートで送信するヘッダーを生成するために独自のコマンドを実行します。トークンが回転するバックエンド用です。Claude Code はスタートアップ時と定期的にその後実行し、stdout で文字列ヘッダー値の JSON オブジェクトを期待します。

  • スコープ: Any file
  • タイプ: 文字列、実行可能パスまたはシェルコマンドライン
  • デフォルト: 未設定。Claude Code はヘルパー生成ヘッダーを追加しません
{
  "otelHeadersHelper": "/bin/generate_otel_headers.sh"
}

CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS でリフレッシュ間隔を設定します。スクリプトの要件とヘルパーが失敗した場合の動作については、動的ヘッダーを参照してください。

アップデートとバージョン管理

アップデートチャネルを選択し、組織の場合はユーザーが実行できるバージョンをピン留めします。Claude Code を更新を参照してください。

autoUpdatesChannel

リリースチャネルをバックグラウンド自動更新と claude update が従うかを選択します。通常約 1 週間前のバージョンで、大きな回帰を含むリリースをスキップする "stable" を設定するか、最新リリースの "latest" を設定します。

  • スコープ: Any file。組織全体で 1 つのチャネルを強制するために、管理設定で設定します。
  • タイプ: 文字列、以下のいずれか:
    • "latest":更新は最新リリースに従う
    • "stable":更新は通常約 1 週間前のバージョンに従い、大きな回帰を含むリリースをスキップする
  • デフォルト: 未設定の場合、Claude Code は "latest" に従う
{
  "autoUpdatesChannel": "stable"
}

Claude Code は /config の Auto-update channel で選択すると、ユーザー設定に "stable" を書き込み、そこで最新に戻すとキーを削除します。claude install stable と claude install latest も、指定したチャネルを保存します。/config で "latest" から "stable" に切り替えると、ダウングレードを許可するか現在のバージョンにとどまるかを尋ねます。とどまることを選択すると、minimumVersion が設定されます。Homebrew インストールはこのキーを無視します:claude-code cask は stable を追跡し、claude-code@latest は latest を追跡し、claude update は brew upgrade に従います。自動更新を完全に無効にするには、env で DISABLE_AUTOUPDATER を設定します。

minimumVersion

バックグラウンド自動更新と claude update がこれより下のバージョンをインストールするのを防ぎます。これにより、"stable" チャネルに移動しても、より新しい "latest" ビルドからダウングレードされません。Claude Code は /config でチャネルを切り替えながら現在のバージョンにとどまることを選択すると、このキーを書き込み、"latest" に戻すと削除します。

  • スコープ: Any file。ユーザーおよびプロジェクト設定が低下させることができない、組織全体の最小値をピン留めするために、管理設定で設定します。
  • タイプ: 文字列、"2.1.100" などのバージョン番号。有効なバージョンではない値は無視されます
  • デフォルト: 未設定の場合、更新はチャネルが提供するすべてのバージョンをインストールできる

この例は stable チャネルに従い、2.1.100 より下のバージョンをインストールするのを拒否します:

{
  "autoUpdatesChannel": "stable",
  "minimumVersion": "2.1.100"
}

このキーは更新のみを制約します。Claude Code がバージョン以下で起動するのを拒否させるには、代わりに requiredMinimumVersion を使用します。最小バージョンをピン留めするを参照してください。

requiredMaximumVersion

組織が起動を許可する最新の Claude Code バージョンを設定します。実行中のバージョンがより新しい場合、Claude Code は起動時に終了し、ユーザーに組織の承認された方法を通じて承認されたバージョンをインストールするよう指示します。claude install <version> も機能する場合があります。Claude Code v2.1.163 以降が必要です。

  • スコープ: Managed。Claude Code は他の場所でキーを無視するときに警告を表示しません。
  • タイプ: 文字列、"2.1.150" などのバージョン番号。有効なバージョンではない値は無視されます
  • デフォルト: 未設定の場合、上限は適用されません
{
  "requiredMaximumVersion": "2.1.150"
}

バックグラウンド自動更新と claude update は上限より上のバージョンをスキップするため、範囲内のインストールは範囲内にとどまります。claude update、claude install、および claude doctor は、ユーザーが復旧できるように上限より上で機能し続けます。requiredMinimumVersion とペアにして、範囲を強制します。

requiredMinimumVersion

組織が起動を許可する最も古い Claude Code バージョンを設定します。実行中のバージョンがより古い場合、Claude Code は起動時に終了し、ユーザーに組織の承認された方法を通じて更新するよう指示します。チェックは起動時のみ実行されるため、既に実行中のセッションは続行されます。Claude Code v2.1.163 以降が必要です。

  • スコープ: Managed。Claude Code は他の場所でキーを無視するときに警告を表示しません。
  • タイプ: 文字列、"2.1.150" などのバージョン番号。有効なバージョンではない値は無視されます
  • デフォルト: 未設定の場合、下限は適用されません
{
  "requiredMinimumVersion": "2.1.150"
}

claude update、claude install、および claude doctor は、ユーザーが復旧できるように下限より下で機能し続けます。ダウングレードのみを防ぐ minimumVersion とは異なり、このキーは起動をブロックします。requiredMaximumVersion とペアにして、範囲を強制します。

ツール

Claude Code デスクトップアプリで特定のツールをオフにします。ターミナル CLI はこれらのキーを無視します。ツール自体については、Claude が利用可能なツールを参照してください。

browserExternalPageTools

デスクトップアプリのブラウザペインで、Claude がそのツールを使用して外部ページを読み取ったり、外部ページに対して操作したりするのを停止します。組織内のユーザーは引き続き外部サイトを自分で開くことができ、ローカル開発サーバープレビューは Claude のツールで引き続き機能します。デスクトップアプリはこのキーを読み取ります。ターミナル CLI は無視します。

  • スコープ: Managed
  • タイプ: 文字列、"disabled"。デスクトップアプリは"disable"も受け入れます。どちらの場合でも同じです
  • デフォルト: 未設定。Claude のツールは外部ページで機能します
{
  "browserExternalPageTools": "disabled"
}

その他の値を指定すると Claude のツールはオンのままになり、受け入れられた 2 つの値のいずれでもない空でない文字列は警告をログに記録します。ユーザーと Claude の両方に対して外部サイトをブロックするには、代わりにdisableBrowserExternalNavigationを設定してください。組織の外部ブラウジングを制限するを参照してください。

disableBrowserExternalNavigation

デスクトップアプリのブラウザペインで、ユーザーと Claude の両方に対して外部ブラウジングをオフにします。Localhost 開発サーバープレビューは引き続き機能します。デスクトップアプリはこのキーを読み取ります。ターミナル CLI は無視します。

  • スコープ: Managed
  • タイプ: ブール値。JSON ブール値trueのみが有効です
    • true: デスクトップアプリは、ブラウザペインでユーザーと Claude の両方に対して外部ブラウジングをオフにします。localhost プレビューは引き続き機能します
    • false: 外部ブラウジングはオンのままです
  • デフォルト: 未設定。外部ブラウジングはオンです
{
  "disableBrowserExternalNavigation": true
}

デスクトップアプリはその他の値を無視し、文字列"true"や1などのブール値ではない値も警告をログに記録します。外部ブラウジングはオンのままにしておきたいが、Claude のツールを外部ページでオフにしたい場合は、代わりにbrowserExternalPageToolsを設定してください。組織の外部ブラウジングを制限するを参照してください。

disableMobileSimulatorTools

デスクトップアプリのiOS シミュレータペインに対する Claude のツールをブロックします。ユーザーはペインの手動使用を継続できます。Claude のアクセスのみが削除され、アプリ内から誰もそれを再度オンにすることはできません。デスクトップアプリはこのキーを読み取ります。ターミナル CLI は無視します。

  • スコープ: Managed
  • タイプ: ブール値。JSON ブール値trueのみが有効です
    • true: デスクトップアプリは iOS シミュレータペインに対する Claude のツールをブロックします
    • false: Claude のシミュレータツールは、デスクトップアプリ内の各ユーザーの設定トグルに従います
  • デフォルト: 未設定。Claude のシミュレータツールは、デスクトップアプリ内の各ユーザーの設定トグルに従います
{
  "disableMobileSimulatorTools": true
}

デスクトップアプリはその他の値を無視し、文字列"true"や1などのブール値ではない値も警告をログに記録します。

プライバシーとテレメトリ

Claude Code がセッションデータをどのくらいの期間保持し、何を送信するかを制御します。使用メトリクスとエラーレポートをオフにするスイッチは、設定キーではなく環境変数です。env キーまたはシェルで DISABLE_TELEMETRY、DISABLE_ERROR_REPORTING、または CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC を設定します。テレメトリサービス では、各環境変数が何を停止するかについて説明しています。2 つの例外は設定ファイルからオフになります。以下の feedbackDrafts は Claude が作成したフィードバック用、および以下の feedbackSurveyRate はセッションサーベイ用です。

cleanupPeriodDays

Claude Code が セッショントランスクリプトおよび他のアプリケーションデータ を削除する前に保持する日数を設定します。Claude Code はセッション開始後にバックグラウンド削除を実行します。保持期間を安全に判定できる限り実行されます。削除スイープはメッセージを表示せずにトランスクリプトを削除するため、保持期間より長く使用していないセッションは /resume ピッカーに表示されなくなります。

  • スコープ: Any file
  • タイプ: 日数、整数、最小値 1
  • デフォルト: 30
{
  "cleanupPeriodDays": 20
}

0 を設定するとバリデーションが失敗するため、長期保持の場合は 3650 などの大きな値を選択してください。Claude Code がトランスクリプトを書き込まないようにするには、プレーンテキストストレージ を参照してください。

desktopSessionCleanupPeriodDays

Claude Desktop または Cowork で開始または最後に続行したセッションのトランスクリプトに対して、日数での年齢制限を設定します。このキーがない場合、Claude Code は それらのトランスクリプトを任意の年齢で保持します。Claude Code は各トランスクリプトが、この制限と cleanupPeriodDays の両方より古い場合に削除します。したがって、cleanupPeriodDays がデフォルトの 30 の場合、7 の値でも 30 日間保持されます。自動クリーンアップ には、代わりに cleanupPeriodDays が適用され、Claude Code がこのキーを無視するケースが記載されています。Claude Code v2.1.248 以降が必要です。

  • スコープ: User or managed。Claude Code は --settings で渡すファイルからキーを読み込み、プロジェクトおよびローカル設定では無視します。
  • タイプ: 日数、整数、最小値 0
  • デフォルト: 0。年齢制限を設定しません
{
  "desktopSessionCleanupPeriodDays": 90
}

feedbackDrafts

Claude が作成したフィードバック を制御します。Claude がレビュー用のフィードバックドラフトをキューに入れることができるかどうか、および Claude Code が Claude がドラフトをキューに入れたときにカードを表示するかどうかを制御します。

  • スコープ: User or managed
  • タイプ: 文字列。"notify"、"quiet"、または "off" のいずれか
    • "notify":Claude Code は Claude がドラフトをキューに入れたときにプロンプトの上にカードを表示します。デフォルトではセッションあたり 最大 3 枚のカード
    • "quiet":Claude はカードなしでドラフトを作成します。プロンプトフッターでキューに入れられたドラフトの数を確認し、/feedback でレビューします
    • "off":Claude Code は SendFeedback ツールを削除するため、Claude はドラフトをキューに入れることができません
  • デフォルト: "notify"
  • セッションごとのオーバーライド: CLAUDE_CODE_SEND_FEEDBACK を 0 に設定すると、1 つのセッションでこの機能がオフになります
{
  "feedbackDrafts": "quiet"
}

/config に Claude-drafted feedback として表示されます。これはこのキーをユーザー設定に書き込みます。/config 行は Claude がフィードバックドラフトを作成できるセッション でのみ表示されます。"off" を設定してもこれは非表示にならないため、同じ行から機能を再度オンにできます。管理設定の値はユーザー設定より優先されるため、管理者がこのキーを設定すると、行は管理値を表示し、変更しても効果がありません。Claude Code はプロジェクトおよびローカル設定でこのキーを無視します。

feedbackSurveyRate

セッション品質サーベイ がセッションがそれに適格である場合に表示される確率を設定します。0 を設定してサーベイが表示されないようにします。

  • スコープ: Any file
  • タイプ: 0 から 1 の間の数値
  • デフォルト: 未設定。Claude Code は Anthropic がリモートで設定する率を使用するか、Amazon Bedrock、Google Cloud の Agent Platform、および Microsoft Foundry でのビルトイン率 0.005 を使用します。これらはリモート設定を受け取りません
  • セッションごとのオーバーライド: CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY を 1 に設定すると、このキーが設定する率に関係なく、1 つのセッションでサーベイがオフになります
{
  "feedbackSurveyRate": 0.05
}

同じ率が VS Code 拡張機能のサーベイに適用されます。

skipWebFetchPreflight

WebFetch ドメイン安全性チェック をスキップします。このチェックは、フェッチする前に各リクエストされたホスト名を api.anthropic.com に送信します。Amazon Bedrock、Google Cloud の Agent Platform、または Microsoft Foundry デプロイメント(制限的な出力を持つ)など、Anthropic へのトラフィックをブロックする環境で true を設定します。

  • スコープ: Any file
  • タイプ: ブール値
    • true:Claude Code は WebFetch ドメイン安全性チェックをスキップします
    • false:チェックはセッション内の各ホスト名への最初のフェッチの前に実行され、以前のチェックがブロックされたか失敗したホスト名に対して再度実行されます
  • デフォルト: 未設定。チェックはセッション内の各ホスト名への最初のフェッチの前に実行されます
{
  "skipWebFetchPreflight": true
}

チェックがスキップされた場合、WebFetch はブロックリストを参照せずに任意の URL を試行するため、Claude が到達できるドメインを制限する必要がある場合は WebFetch 権限ルール と組み合わせてください。

エンタープライズ設定と管理設定

組織が管理設定の算出、更新、組み合わせに使用するキーです。管理設定をセットアップするを参照してください。

disableSideloadFlags

起動時に --plugin-dir、--plugin-url、--agents、--mcp-config の CLI フラグを拒否します。これらのフラグを使うと、ユーザーは 1 回の実行に限り strictKnownMarketplaces を回避できてしまいます。Claude Code は拒否したフラグを示すエラーを出して終了します。クラウドセッションでは、Claude Code は代わりにセッションを開始し、サーバーから配信された --mcp-config エントリのうち、インプロセスの type: "sdk" エントリと Claude Tag セッションの Slack ツールを除くすべてを破棄します。Claude Code v2.1.193 以降が必要です。

  • スコープ: Managed
  • 型: Boolean
    • true: Claude Code は起動時に --plugin-dir、--plugin-url、--agents、--mcp-config を拒否し、それらを示すエラーを出して終了します。クラウドセッションでは、代わりにセッションを開始し、サーバーから配信された --mcp-config エントリのうち、インプロセスの type: "sdk" エントリと Claude Tag セッションの Slack ツールを除くすべてを破棄します
    • false: Claude Code はこれらのフラグを受け入れます
  • デフォルト: false
{
  "disableSideloadFlags": true
}

サーバーがすべてインプロセスの type: "sdk" エントリである --mcp-config は引き続き受け入れられるため、Agent SDK と VS Code 拡張機能は引き続き動作します。ユーザーは引き続き claude mcp add や .mcp.json ファイルでサーバーを追加できます。サーバーごとに制御するには、allowedMcpServers もあわせて設定してください。Claude Code v2.1.193 以降が必要です。

disableSideloadFlags は、次のソースからのプラグインフォルダーも拒否します。

  • CLAUDE_CODE_PLUGIN_DIRS 環境変数: この変数がプラグインフォルダーを指定している場合、Claude Code は起動時に、この変数名を示して設定解除を求めるエラーを出して終了します。Claude Code v2.1.280 以降が必要です
  • Agent SDK の addPlugins オプション: アプリケーションが addPlugins で reloadPlugins() にプラグインフォルダーを渡すと、その呼び出しはエラーで失敗します。セッションは既存のプラグインのまま実行を続けます。Claude Code v2.1.301 以降が必要です

クラウドセッションでは、Claude Code はサーバーから配信されるセッション途中の MCP 更新も無視します。これは、クラウドセッションの設定や、それらのセッションに届く SDK の setMcpServers() 呼び出しが使う経路です。ここでも、インプロセスの type: "sdk" エントリと Claude Tag セッションの Slack ツールは対象外です。v2.1.268 より前では、この破棄と起動時の破棄の両方で Claude Tag セッションの Slack ツールも削除されていました。v2.1.239 より前では、サーバーから配信された --mcp-config によってクラウドセッションの開始がブロックされていました。

デスクトップアプリは、claude.ai から同期されたプラグインや、組織がアプリを通じてデプロイしたプラグインなど、一部のプラグインを自身で管理します。MDM、OS レベルのポリシー、または管理設定ファイルを通じてこのキーをデバイスにデプロイすると、デスクトップアプリはそのデバイス上の次のセッションにそれらのプラグインを渡しません。

  • ユーザーのマシン上の Code セッション: これらのセッションは、ユーザーの claude.ai アカウントで有効になっているスキルも読み込まれない状態で開始されます。管理設定内のマーケットプレイスから Claude Code がインストールするプラグインは引き続き読み込まれます。Claude Desktop on 3P では、デバイスの org-plugins ディレクトリにデプロイしたプラグインの MCP サーバーも引き続き利用できます。デスクトップアプリがそれらに直接接続するためです。Claude Desktop v1.37937.0 より前では、これらのセッションは代わりに起動時に失敗していました。
  • ユーザーのマシン上の Cowork セッション: それらのプラグイン内のスキルと、ユーザーの claude.ai アカウントで有効になっているスキルは引き続き利用できます。Claude Desktop on 3P では、デバイスの org-plugins ディレクトリにデプロイしたプラグインの MCP サーバーも引き続き利用できます。デスクトップアプリがそれらに直接接続するためです。Claude Desktop v1.44121.0 より前では、これらのセッションは代わりに起動時に失敗していました。

forceRemoteSettingsRefresh

Claude Code がサーバー管理設定を新たに取得するまで CLI の起動をブロックします。取得に失敗した場合、Claude Code はキャッシュされた設定や設定なしで続行せずに終了します。セッションが管理ポリシーなしで実行される時間がわずかでも許容できない環境で設定してください。

このキーが未設定の場合、Claude Code は取得のために起動をブロックしませんが、開発者が起動時にサインインする場合は取得を最大 5 秒待ちます。Anthropic は設定を必須にできます。その場合、設定なしでの起動はブロックされます。Cloud gateway セッションは待機し、ゲートウェイに到達できない場合は終了します。

  • スコープ: Managed。Claude Code は、管理者が制御する任意の管理ソースからの true を、最も優先度の高いソースでなくても尊重します。
  • 型: Boolean
    • true: Claude Code はサーバー管理設定を新たに取得するまで起動をブロックし、取得に失敗した場合は終了します
    • false: Anthropic が設定を必須にしていない限り、Claude Code は取得のために起動をブロックしませんが、サインインを伴う起動では取得を最大 5 秒待ちます
  • デフォルト: false
{
  "forceRemoteSettingsRefresh": true
}

最初のサーバーペイロードが届く前にフェイルクローズの起動を強制するには、MDM プロファイルまたは管理設定ファイルで設定してください。Claude Code はサーバー管理設定を取得するセッションでのみこのチェックを適用するため、それらを取得しないセッションは待機せずに開始されます。claude auth サブコマンドは対象外なので、認証情報の期限切れが取得失敗の原因である場合でも、ユーザーは再認証できます。フェイルクローズの起動を強制するを参照してください。

managedSourcesBehavior

組織が配信する管理ソースのうち最も優先度の高いものだけを Claude Code が適用するか、配信されるすべての管理ソースを組み合わせるかを選択します。デフォルトでは、Claude Code はポリシーキーを含む最も優先度の高いソースを採用し、残りは無視します。ポリシーキーとは、このキーと wslInheritsWindowsSettings 以外の任意の設定キーです。このデフォルトでは、サーバー管理設定または MDM ポリシーがポリシーキーを配信すると、managed-settings.json ファイルはClaude Code がすべての管理ソースから読み取るキーのみを提供します。"merge" を指定すると、配信されるすべての管理ソースがそれぞれのキーを 1 つの組み合わされたポリシーに提供します。Claude Code v2.1.242 以降が必要です。

"merge" は、最も優先度の高いソースより下位にランク付けされるすべてのソースが管理者の制御下にある場合にのみ設定してください。その場合、Claude Code は permissions.allow ルールなど、下位のソースのエントリをポリシーに追加するためです。

  • スコープ: Managed。Claude Code は、このキーまたはポリシーキーのいずれかを含む最も優先度の高いソースからこのキーを読み取り、それより下位のすべてのソースにあるこのキーを無視します。そのため、下位のソースが自らを上位のソースとの組み合わせに参加させることはできません。Windows HKCU レジストリと埋め込みホストからの親設定は、どちらもマージに参加しません。
  • 型: 文字列。次のいずれか:
    • "first-wins": ポリシーキーを含む最も優先度の高いソースがポリシーを提供し、下位のソースはClaude Code がすべての管理ソースから読み取るキーのみを提供します
    • "merge": 配信されるすべての管理ソースがそれぞれのキーを提供し、以下のルールで組み合わされます
  • デフォルト: "first-wins"

このキーは、デプロイする中で最も優先度の高いソースで配信してください。サーバー管理設定を一度も受け取らないマシンでは、MDM プロファイルにもこのキーが必要です。Claude Code は、このキーまたはポリシーキーを含む最も優先度の高いソースからこのキーを読み取るためです。managed-settings.json ファイルは最も低くランク付けされる管理ソースなので、そこで "merge" を設定しても、組み合わせる下位のソースがありません。サーバー管理設定では、このキーは次のようになります。

{
  "managedSourcesBehavior": "merge"
}

"merge" では、Claude Code は各キーをその種類に応じて組み合わせます。次の表は種類ごとのルールを示しています。制限許可リスト、値全体の採用、最上位ソースのみの行は対象となるすべてのキーを挙げており、その他の行は例を示しています。

キーの種類 Claude Code による組み合わせ方 キー
リスト すべてのソースのエントリを組み合わせます permissions.allow、sandbox.network.allowedDomains、その他のリストキー
ロック いずれかのソースが設定する最も厳しい値を適用します。厳しい値を設定するソースがない場合は、最上位のソースからのみ緩い値を適用します allowManagedPermissionRulesOnly、permissions.disableBypassPermissionsMode、その他の Boolean または列挙型のロック
制限許可リスト リストを設定している最上位のソースからリスト全体を採用し、下位のソースのエントリは追加しません。最上位のソースが設定していない場合は、次の下位のソースから全体を採用します availableModels、allowedMcpServers、allowedProviders、strictKnownMarketplaces、allowedChannelPlugins、fallbackModel チェーン
値全体の採用 値を設定している最上位のソースから値全体を採用し、下位のソースのエントリやフィールドは組み合わせません。最上位のソースが設定していない場合は、次の下位のソースから全体を採用します sandbox.credentials.awsPairs、sandbox.ripgrep
提供される MCP サーバー すべてのソースのサーバー名を組み合わせます。2 つのソースが同じ名前を設定している場合は、上位のソースのエントリ全体を適用します managedMcpServers
最も優先度の高いソースからのみ読み取り ポリシーキーを含む最も優先度の高いソースからのみキーを読み取るため、最上位のソースが何も設定していない場合でも下位のソースの値は無視されます apiKeyHelper、awsAuthRefresh、awsCredentialExport、gcpAuthRefresh、otelHeadersHelper、proxyAuthHelper、parentSettingsBehavior、modelPicker、policyHelper、permissions.defaultMode
env "first-wins" と "merge" のどちらでも、管理ソース間で変数ごとにマージします env
その他すべてのキー 値を設定している最上位のソースから値を採用します cleanupPeriodDays、model

sandbox.credentials.awsPairs と sandbox.ripgrep を全体として採用するには、Claude Code v2.1.257 以降が必要です。

いくつかのキーには、表に示されていない条件が加わります。

  • policyHelper: Claude Code は、ポリシーキーを含む最上位のソースが MDM ポリシーまたは管理設定ファイルである場合にのみこれを尊重するため、サーバー管理設定のもとでは適用されません。
  • modelOverrides: availableModels と対になります。Claude Code は modelOverrides を設定している最上位のソースから採用しますが、上位のソースが modelOverrides なしで availableModels を設定している場合は例外です。その場合、すべてのソースの modelOverrides を無視します。
  • forceLoginGatewayUrl、gatewayInternalNetworks、forceLoginMethod の "gateway" の値: Claude Code はこれらをサーバー管理設定から読み取ることはないため、そこにある値は適用されず、MDM ポリシーや管理設定ファイルで設定された値を隠すこともありません。マシン上の管理ソースのうち、ポリシーキーを含む最上位のものだけがこれらを提供します。これはサーバー管理設定も存在するかどうかに関係ありません。
  • forceLoginOrgUUID と forceLoginMethod の "claudeai" と "console" の値: どの値が適用されるかは、表ではなくログインキーを提供する管理ソースで確認してください。
  • allowedProviders: 表のルールを適用した後も、そのエントリのスコープの注記にあるとおり、マシン自身のリストが結果を引き続き制限します。

マシン上でどのソースが組み合わされたかを確認するには、/status を実行して Setting sources 行を確認してください。

parentSettingsBehavior

管理者がデプロイした管理ティアも存在する場合に、Agent SDK や IDE 拡張機能などの埋め込みホストプロセスが提供する管理設定を Claude Code が適用するかどうかを選択します。"first-wins" では、Claude Code はホストが提供する設定を破棄します。"merge" では、制限方向のみのフィルターを通して、管理ティアの下位にそれらを適用します。ホストが起動するセッションに独自の制限を渡す必要がある場合、たとえば Claude Desktop がゲートウェイの送信許可リストを配信する場合に "merge" を設定してください。

  • スコープ: Managed。Claude Code は、管理者が制御する最も優先度の高い管理ソースからこれを読み取ります。
  • 型: 文字列。次のいずれか:
    • "first-wins": 管理者がデプロイした管理ティアが存在する場合、Claude Code はホストが提供する設定を破棄します
    • "merge": Claude Code は、制限方向のみのフィルターを通して、ホストが提供する設定を管理ティアの下位に適用します
  • デフォルト: "first-wins"
{
  "parentSettingsBehavior": "merge"
}

管理者がデプロイした管理ティアが存在しない場合、このキーは効果がありません。その場合、ホストの設定が唯一の管理ティアとして適用され、引き続き制限方向の値にフィルタリングされます。フィルターの制限と管理ソース間の相互作用については、埋め込みホストからの親設定と親設定を制限するを参照してください。

policyHelper

起動時に管理設定を算出する、ユーザーがデプロイした実行ファイルを実行します。これにより、静的なファイルではなく、デバイスの状態、ID、またはリモートサービスからポリシーを導出できます。Claude Code は最初のプロンプトを受け付ける前にヘルパーを実行し、ヘルパーが出力する設定をそのセッションの管理設定として扱います。

  • スコープ: Managed。macOS plist、Windows HKLM レジストリ、または管理設定ファイルから読み取られます。Claude Code は、ポリシーキーを含む最も優先度の高い管理ソースからこのキーを読み取り、そのソースがこれら 3 つのいずれかである場合にのみヘルパーを実行します。サーバー管理設定、HKCU レジストリ、ホストが提供する親設定にあるこのキーは無視されます。
  • 型: path、timeoutMs、refreshIntervalMs を持つオブジェクト
  • デフォルト: 未設定。ヘルパーは実行されません

起動時にサーバー管理設定がポリシーを配信する場合、それがヘルパーのソースより優先され、ヘルパーは実行されません。

その後の設定取得でサーバー管理設定が削除されたと報告された場合、Claude Code は次回の起動を待たずにその時点でヘルパーを実行します。その出力がセッションの残りを制御し、実行が失敗した場合は起動時の実行の失敗と同じメッセージでセッションが終了します。

この例では、5 秒のタイムアウトでヘルパーを実行し、5 分ごとに再実行します。

{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy",
    "timeoutMs": 5000,
    "refreshIntervalMs": 300000
  }
}

ヘルパーの出力を記述する

Claude Code は引数なしでヘルパーを実行し、その環境に CLAUDE_CODE_VERSION を設定して、stdout から JSON エンベロープを読み取ります。上限は 1 MiB です。

設定は managedSettings キーの下に置いてください。managedSettings キーのない裸の設定オブジェクトは、managedSettings が未定義の状態でパースされて何も適用されず、Claude Code はエラーを報告しません。

{
  "managedSettings": {
    "permissions": { "deny": ["Read(//etc/secrets/**)"] }
  }
}

ヘルパーが managedSettings を出力すると、そのオブジェクトがその実行における唯一の管理設定ソースになります。Claude Code は MDM、ファイル、HKCU のソースを無視し、ソース横断キーをヘルパーの出力のみから読み取り、親設定をマージすることはありません。

起動時の forceRemoteSettingsRefresh チェックはヘルパーより前に実行され、任意の管理ソースを読み取ります。managedSettings を省略したエンベロープで 0 で終了するヘルパーは管理設定を提供せず、他のソースが通常どおり適用されます。

ヘルパーの失敗

次の場合、ヘルパーの実行は失敗します。

  • path が policyHelper.path のルールに違反している。
  • path に通常ファイルが存在しない。Claude Code はヘルパーを起動する前に、同じ timeoutMs の予算内でファイルを確認するため、応答しないネットワークマウントによって実行が失敗する場合があります。
  • ヘルパーが 0 以外で終了した、timeoutMs が経過してもまだ実行中である、または実行可能でないなどの理由でまったく起動しない。
  • ヘルパーが stdout または stderr に 1 MiB を超えて書き込んだ。
  • stdout が単一の JSON オブジェクトではない、またはその managedSettings に Claude Code が修復できないスキーマ違反がある。

起動時の実行が失敗すると、Claude Code は理由を出力して起動を拒否します。0 以外で終了した場合、理由にはヘルパーの stderr が含まれ、stderr が空の場合は stdout が含まれます。タイムアウトした場合、理由には timeoutMs の上限が示され、ヘルパーの出力は含まれません。この拒否は、対話型セッション、claude -p、Agent SDK セッション、バックグラウンドセッション、およびほとんどのサブコマンドに適用されます。

この拒否は意図的なものです。そのため、障害への耐性が必要なヘルパーは、自身のキャッシュから応答して 0 で終了するようにしてください。

バックグラウンドでの更新が失敗した場合、Claude Code は最後に成功したポリシーを有効なまま維持し、更新が成功するまで /status に失敗した更新とその理由を表示します。各更新は、起動時の実行と同じ timeoutMs と失敗のルールのもとで実行されます。

--debug を指定すると、Claude Code はすべての実行におけるヘルパーの stderr をデバッグログに書き込みます。

Claude Code は、無効な policyHelper の値を破棄されたエントリとして報告し、ヘルパーを実行せずに残りの管理設定でセッションを開始します。無効な値には、裸のパス文字列や、最小値を下回る timeoutMs などがあります。

ヘルパーをオフにするには、このキーを設定しているソースからキーを削除してください。

policyHelper.path

Claude Code が実行するヘルパー実行ファイルを指定します。パスが以下のルールに違反した場合の動作については、ヘルパーの失敗を参照してください。

  • スコープ: Managed。policyHelper が読み取られる場所、つまり macOS plist、Windows HKLM レジストリ、または管理設定ファイルから読み取られます。
  • 型: 文字列。. や .. のセグメントを含まない、正規化された形式の絶対パス。Windows では、.exe で終わるドライブレターパスまたは UNC パス
  • デフォルト: なし。policyHelper を設定する場合は必須
{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy"
  }
}

policyHelper.timeoutMs

Claude Code が実行を失敗として扱うまでにヘルパーを待つ時間を設定します。タイムアウトした実行は 0 以外での終了と同じように失敗するため、起動時には Claude Code は起動を拒否します。

  • スコープ: Managed。policyHelper が読み取られる場所、つまり macOS plist、Windows HKLM レジストリ、または管理設定ファイルから読み取られます。
  • 型: 整数。ミリ秒、最小値は 1000
  • デフォルト: 10000
{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy",
    "timeoutMs": 5000
  }
}

policyHelper.refreshIntervalMs

Claude Code にバックグラウンドで一定間隔ごとにヘルパーを再実行させ、ポリシーの変更が実行中のセッションに反映されるようにします。更新が成功すると、その出力が再起動なしで以前の管理設定を置き換えます。更新が失敗すると、Claude Code は既存のポリシーを維持します。

  • スコープ: Managed。policyHelper が読み取られる場所、つまり macOS plist、Windows HKLM レジストリ、または管理設定ファイルから読み取られます。
  • 型: 整数。ミリ秒。0 で更新を無効化し、それ以外は 60000 以上
  • デフォルト: 未設定。Claude Code は起動時に 1 回だけヘルパーを実行します

この例では、5 分ごとにヘルパーを再実行します。

{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy",
    "refreshIntervalMs": 300000
  }
}

wslInheritsWindowsSettings

WSL 上の Claude Code に Windows のポリシーチェーンから管理設定を読み取らせます。このチェーンでは、HKLM と Windows の管理設定ファイルが /etc/claude-code より優先され、その下位に HKCU が置かれます。チェーンがオンの間、Claude Code は、HKLM レジストリの値または C:\Program Files\ClaudeCode\ フォルダーに Windows の管理ドキュメントが存在しない場合にのみ /etc/claude-code を読み取ります。Windows ですでにデプロイしているポリシーを同じマシン上の WSL セッションにも拡張し、ホストのセッションと同じルールに従わせる場合に設定してください。Claude Code は、HKLM レジストリキー、または C:\Program Files\ClaudeCode\ 配下の管理設定ファイルやドロップインで設定されている場合にのみこれを尊重します。どちらも書き込みに Windows の管理者権限が必要です。

  • スコープ: Managed。管理者が制御する Windows ソース内。
  • 型: Boolean
    • true: WSL 上の Claude Code は Windows のポリシーチェーンから管理設定を読み取り、Windows の管理ドキュメントが存在しない場合にのみ /etc/claude-code を読み取ります
    • false: WSL は /etc/claude-code のみを読み取ります
  • デフォルト: false。WSL は /etc/claude-code のみを読み取ります
{
  "wslInheritsWindowsSettings": true
}

管理ソースがチェーンをオンにすると、WSL 上で HKCU のポリシーがチェーンに加わるのは、HKCU もこのキーを true に設定している場合に限られます。HKCU のこの設定だけでチェーンがオンになることはありません。このキーのみを含む Windows ソースは、true と false のどちらに設定されていてもポリシーソースとして扱われないため、下位のソースが引き続きポリシーを提供します。このキーはネイティブの Windows には影響しません。

Claude Code は、true と false を引用符の有無にかかわらず読み取り、null をキーの削除として読み取ります。管理者が制御する Windows ソースがそれ以外の値を持つ場合、チェーンがオンになった存在する管理ドキュメントとして扱われます。この場合、/etc/claude-code と HKCU のどちらも適用されず、起動時の警告でこのキーが示されます。存在するものの読み取れない HKLM の値や Windows フォルダーのファイルも、チェーンがオンかどうかにかかわらず /etc/claude-code が適用されないようにします。Claude Code v2.1.282 以降が必要です。

グローバル設定

これらのキーを ~/.claude.json に保存してください。設定ファイルには保存しないでください。Claude Code はそれ以外の場所ではこれらを無視します。Claude Code と /config はほとんどのキーを自動的に書き込みます。また、手動で編集することもできます。

autoConnectIde

外部ターミナルから Claude Code を起動するときに、実行中の IDE に自動的に接続します。VS Code または JetBrains ターミナルの外で Claude Code を実行する場合、/config に Auto-connect to IDE (external terminal) として表示されます。

  • スコープ: グローバル設定
  • タイプ: ブール値
    • true: Claude Code は外部ターミナルから起動するときに、実行中の IDE に自動的に接続します
    • false: Claude Code は外部ターミナルから自動的に接続しません。ただし、VS Code または JetBrains ターミナル内、または --ide を使用する場合は接続します
  • デフォルト: false
  • セッションごとのオーバーライド: CLAUDE_CODE_AUTO_CONNECT_IDE はこのキーより優先され、1 つのセッションでどちらの方向でも機能します
{
  "autoConnectIde": true
}

Claude Code は settings.json でこのキーを無視します。

autoInstallIdeExtension

外部ターミナルから /ide コマンドを実行したときに、実行中の VS Code、Cursor、または Devin Desktop に Claude Code IDE 拡張機能をインストールできるようにします。Claude Code は claude の起動時に拡張機能をインストールまたは更新しません。v2.1.318 より前では、これらのエディタのいずれかのターミナルで claude を起動すると、このキーが false でない限り、Claude Code は拡張機能をインストールまたは更新します。

VS Code または JetBrains ターミナル内で Claude Code を実行する場合、/config に Auto-install IDE extension として表示されます。

  • スコープ: グローバル設定
  • タイプ: ブール値
    • true: /ide は拡張機能をインストールします
    • false: /ide は拡張機能をインストールしません
  • デフォルト: true
  • セッションごとのオーバーライド: CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL を 1 に設定すると、このキーが true の場合でも 1 つのセッションのインストールをスキップします
{
  "autoInstallIdeExtension": false
}

Claude Code は settings.json でこのキーを無視します。

claudeInChromeDefaultEnabled

Chrome 統合をオンにして、毎回 --chrome を渡さずにすべてのインタラクティブ CLI セッションを開始します。claude remote-control を実行する場合、プロジェクトスレッドの 1 つに対して開始するセッションもこのキーに従います。ただし、bypassPermissions モードの場合は除きます。Claude Code v2.1.287 以降では、このキーは VS Code 拡張機能のセッションにも適用されます。詳しくは Chrome をデフォルトで有効にするを参照してください。

/chrome を実行して Enabled by default を選択すると、このキーが設定されます。「Claude in Chrome extension detected」ダイアログに応答した場合も同様です。/config に Claude in Chrome enabled by default として表示されます。

  • スコープ: グローバル設定
  • タイプ: ブール値
    • true: Claude Code は --chrome を渡すときと同様に、インタラクティブ CLI セッションが開始するときに Chrome 統合をオンにします。VS Code 拡張機能では、セッションは開始時にブラウザに接続します
    • false: インタラクティブ CLI セッションは Chrome 統合をオフで開始し、Claude Code はセットアップを提案するのを停止します。1 つのインタラクティブセッションでオンにするには --chrome を渡してください。VS Code 拡張機能では、キーが未設定の場合と同様に、@browser と入力したときにセッションが接続します
  • デフォルト: 未設定。Chrome 統合はオフで、Claude Code はセットアップを提案できます
  • セッションごとのオーバーライド: --chrome と --no-chrome はこのキーより優先され、1 つのインタラクティブセッションで機能します
{
  "claudeInChromeDefaultEnabled": true
}

Claude Code は settings.json でこのキーを無視します。

copyFullResponse

/copy がピッカーを表示せずに、毎回完全な応答をコピーするようにします。そのピッカーで Always copy full response を選択すると、このキーが true に設定されます。/config に Skip the /copy picker として表示されます。

  • スコープ: グローバル設定
  • タイプ: ブール値
    • true: /copy はピッカーを表示せずに完全な応答をコピーします
    • false: 応答にコードブロックまたは引用ブロックが含まれている場合、/copy はピッカーを表示し、1 つのブロックまたは完全な応答を選択できます
  • デフォルト: false
{
  "copyFullResponse": true
}

Claude Code は settings.json でこのキーを無視します。

copyOnSelect

フルスクリーンレンダリングまたはエージェントビューでマウスで選択を終了したときに、テキストをクリップボードに自動的にコピーします。フルスクリーンレンダリングがオンの場合、/config に Copy on select として表示されます。

{
  "copyOnSelect": false
}

Claude Code は settings.json でこのキーを無視します。

defaultToAgentsView

引数なしで claude を実行するときに、新しい会話の代わりにエージェントビューを開きます。エージェントビューがオフになっていない限り、/config に Open agents view by default として表示されます。

  • スコープ: グローバル設定
  • タイプ: ブール値
    • true: 引数なしの claude はエージェントビューを開きます。ただし、エージェントビューがオフになっている場合は除きます
    • false: 引数なしの claude は新しい会話を開始します
  • デフォルト: false
{
  "defaultToAgentsView": true
}

Claude Code は settings.json でこのキーを無視します。

diffTool

VS CodeまたはJetBrains IDE が接続されているときに、Claude Code が提案する Edit または Write 変更の差分を表示する場所を選択します。"auto" は IDE の差分ビューアで開き、"terminal" はターミナルに保持します。Claude Code が VS Code または JetBrains IDE に接続されている場合のみ、/config に Diff tool として表示されます。

  • スコープ: グローバル設定
  • タイプ: 文字列、以下のいずれか:
    • "auto": Claude Code は VS Code または JetBrains IDE が接続されているときに IDE の差分ビューアで差分を開きます
    • "terminal": Claude Code は差分をターミナルに保持します
  • デフォルト: "auto"
{
  "diffTool": "terminal"
}

Claude Code は settings.json でこのキーを無視します。

externalEditorContext

Ctrl+G を押すと、Claude Code は入力中のプロンプトを外部エディタで開きます。このキーをオンにすると、エディタバッファは Claude の前の応答で # コメント行として開始されるため、書き込み中に読むことができ、Claude Code は保存時にこれらの行を削除します。/config に Show last response in external editor として表示されます。

  • スコープ: グローバル設定
  • タイプ: ブール値
    • true: エディタバッファは Claude の前の応答で # コメント行として開始され、Claude Code は保存時にこれらを削除します
    • false: エディタバッファはプロンプトのみで開きます
  • デフォルト: false
{
  "externalEditorContext": true
}

オンにすると、Claude Code が開くバッファは次のようになり、マーカー行の下のテキストのみがプロンプトとして送信されます:

# ─── Claude's last response (for reference; removed on save) ───
# I added the retry loop to fetchUser in src/api.ts and a test
# for the timeout case. Want me to wire the same retry into
# fetchOrders?
# ─── Write your reply below this line ──────────────────────────

Yes, and cap it at three attempts.

Claude Code は応答の最後の 50 行を保持し、カットを # … (earlier output truncated) でマークします。

Claude Code は settings.json でこのキーを無視します。

leftArrowOpensAgents

空のプロンプトで ← を押して、セッションをバックグラウンドにしてエージェントビューを開きます。このキーを false に設定してショートカットをオフにします。エージェントビューが利用可能な場合、/config に ← opens agents として表示されます。

  • スコープ: グローバル設定
  • タイプ: ブール値
    • true: ターミナルで開始したセッションの空のプロンプトで ← を押すと、セッションがバックグラウンドになり、エージェントビューが開きます
    • false: Claude Code はショートカットをオフにします。エージェントビューから接続したセッションでは、空のプロンプトで ← を押すと切断されます
  • デフォルト: true
{
  "leftArrowOpensAgents": false
}

Claude Code は settings.json でこのキーを無視します。

permissionExplainerEnabled

[!WARNING]

v2.1.257 で削除されました。Bash および PowerShell 権限プロンプトの Ctrl+E コマンド説明と一緒に削除されました。現在のバージョンでこれを設定しても効果はありません。

v2.1.256 まで、Bash または PowerShell 権限プロンプトで Ctrl+E を押してコマンドのモデル生成説明を表示でき、このキーを false に設定してそのショートカットをオフにできました。

現在のブランチのオープンなプルリクエストまたはマージリクエストのバッジをプロンプトフッターに表示し、そのステータスを示す色付きの下線を表示します。/config に Show PR status footer として表示されます。

{
  "prStatusFooterEnabled": false
}

Claude Code は settings.json でこのキーを無視します。

teammateDefaultModel

[!WARNING]

v2.1.234 で削除されました。その /config 行 Default teammate model と一緒に削除されました。現在のバージョンでこれを設定しても効果はありません。

v2.1.233 まで、このキーをエージェントチームのチームメイトのモデルに設定しました。プロンプトがモデルを指定しなかったチームメイト用:"sonnet" などのエイリアス、または null でリードのモデルに従う。Claude Code が現在そのようなチームメイト用に選択するモデルについては、チームメイトとモデルを指定を参照してください。

  • スコープ: グローバル設定。v2.1.233 以前。
  • タイプ: 文字列、モデルエイリアスまたは完全なモデル ID、または null
  • デフォルト: 未設定

関連項目