Claude Code 設定リファレンス
settings.json のすべてのキー、環境変数の完全なリスト、そして managed とユーザーが競合したときにどの設定が勝つかを決める 5 段階の優先順位チェーン。
設定をやめて、構築を始めよう。
AIオーケストレーション付きSaaSビルダーテンプレート。
問題: Claude Code の多くの悩みは一つの根本原因に行き着きます。設定が自分の作業スタイルと合っていないことです。一日中 bash コマンドを承認し続けたり、チームのデフォルトが読み込まれなかったり、昨日編集したキーが何も変わらなかったりします。
解決策は設定システムを理解することです。キーだけでなく、2 つのスコープが競合したときに勝者を決める優先順位ルールまで。
クイックウィン: settings.json に $schema の行を追加すれば、JSON スキーマを理解するすべてのエディタで自動補完とインラインチェックが有効になります。VS Code、Cursor、スキーマサポートのある他のエディタすべてがその恩恵を受けます。
5 段階の優先順位チェーン
設定は固定された優先順位に従います。これを理解することが「なぜ変更が反映されないのか」と「ああ、ファイルが間違っていた」の差です。
スコープの優先順位 (高い順から低い順)
| 優先度 | スコープ | 場所 | 影響範囲 | 共有? |
|---|---|---|---|---|
| 1 | Managed | システムディレクトリ | マシン上のすべてのユーザー | あり (IT 部門が展開) |
| 2 | コマンドライン | CLI フラグ | 現在のセッションのみ | なし |
| 3 | Local | .claude/settings.local.json | 自分、このプロジェクト | なし (gitignore に登録) |
| 4 | Project | .claude/settings.json | すべての共同作業者 | あり (git に登録) |
| 5 | User | ~/.claude/settings.json | 自分、すべてのプロジェクト | なし |
上位のスコープは常に下位のスコープに勝ちます。例外なし。Bash(curl *) をブロックする IT の Managed ルールは、個人またはプロジェクトのファイルでは変更できません。
適切なスコープの選び方
Managed は逃げ道のないルールを必要とする組織向けです。
- セキュリティポリシー (認証情報へのアクセスをブロック、破壊的コマンドを禁止)
- すべてのエンジニアとリポジトリに適用する必要があるコンプライアンス
- IT が展開する標準のフックや MCP 設定
コマンドライン フラグは単一セッション内の一時的な上書きに使います。
- 別のモデルを試す:
claude --model claude-sonnet-4-5-20250929 - 特定のジョブのための追加権限の付与
--debugフラグを付けて実行
Local は特定のリポジトリでの個人的なサンドボックスです。
- 自分のマシンに合わないプロジェクトルールを静かに上書き
- チームに提案する前にフックを試す
- このマシン固有のパス (SSH キーの場所、ローカルプロキシが動作するポートなど)
Project はチームが足並みを揃える場所です。
- 全員が従う権限ルール
- 自動フォーマットとリント用の共有フック
- 全チームメンバーが必要とする MCP サーバー設定
- プロジェクトを説明する CLAUDE.md の指示
User は自分のデフォルト設定です。
- 言語、テーマ、好みの出力スタイル
- すべてのリポジトリで有効にしたいプラグイン
- グローバル権限ルール (
~/.sshへの一括拒否など)
OS 別の Managed 設定パス
Managed ファイルには管理者権限が必要で、ユーザーのホームディレクトリの外に置かれます。
| オペレーティングシステム | パス |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/ |
| Linux / WSL | /etc/claude-code/ |
| Windows | C:\Program Files\ClaudeCode\ |
これらのフォルダには 2 つのファイルが存在します。managed-settings.json が設定を保持し、managed-mcp.json が MCP サーバーを保持します。
Claude Code のすべての設定は各スコープの既知のファイルパスに存在します。
| 機能 | User | Project (共有) | Local (個人) |
|---|---|---|---|
| 設定 | ~/.claude/settings.json | .claude/settings.json | .claude/settings.local.json |
| サブエージェント | ~/.claude/agents/ | .claude/agents/ | 該当なし |
| MCP サーバー | ~/.claude.json | .mcp.json | ~/.claude.json (プロジェクト単位) |
| プラグイン | ~/.claude/settings.json | .claude/settings.json | .claude/settings.local.json |
| CLAUDE.md | ~/.claude/CLAUDE.md | CLAUDE.md または .claude/CLAUDE.md | CLAUDE.local.md |
設定リファレンス
一般設定
| キー | 説明 | デフォルト | 例 |
|---|---|---|---|
model | デフォルトモデルを上書き | (システムデフォルト) | "claude-sonnet-4-5-20250929" |
language | Claude の応答言語の設定 | 英語 | "japanese" |
outputStyle | システムプロンプトのスタイルを調整 | (なし) | "Explanatory" |
cleanupPeriodDays | 非アクティブなセッションが削除されるまでの日数 | 30 | 20 |
autoUpdatesChannel | リリースチャンネル: "stable" または "latest" | "latest" | "stable" |
showTurnDuration | レスポンスのタイミングを表示 ("Cooked for 1m 6s") | true | false |
spinnerVerbs | スピナーテキストをカスタマイズ | (デフォルト) | {"mode": "append", "verbs": ["Pondering"]} |
spinnerTipsEnabled | Claude が作業中にヒントを表示 | true | false |
terminalProgressBarEnabled | ターミナルのプログレスバー (iTerm2、Windows Terminal) | true | false |
alwaysThinkingEnabled | デフォルトで拡張思考を有効化 | false | true |
plansDirectory | プランファイルの保存先 | ~/.claude/plans | "./plans" |
respectGitignore | @ ファイルピッカーが .gitignore を尊重する | true | false |
companyAnnouncements | 起動時に表示されるメッセージ (ランダムサイクル) | (なし) | ["Review guidelines at docs.acme.com"] |
権限設定
以下のキーはすべて "permissions" オブジェクトの中にネストされます。
| キー | 説明 | 例 |
|---|---|---|
allow | ツール使用を自動許可するルール | ["Bash(npm run lint)", "Read(~/.zshrc)"] |
ask | 確認が必要なルール | ["Bash(git push *)"] |
deny | ツール使用を完全にブロックするルール | ["WebFetch", "Bash(curl *)", "Read(./.env)"] |
additionalDirectories | Claude がアクセスできる追加ディレクトリ | ["../docs/", "../shared/"] |
defaultMode | 起動時のデフォルト権限モード | "acceptEdits" |
disableBypassPermissionsMode | --dangerously-skip-permissions をブロック | "disable" |
評価順序: Deny が最初に評価されます。次が Ask、その後が Allow です。最初に一致したルールが適用されます。
ルール構文の例:
| ルール | 一致するもの |
|---|---|
Bash | すべての bash コマンド |
Bash(npm run *) | npm run で始まるコマンド |
Read(./.env) | .env ファイルの読み取り |
Read(./secrets/**) | secrets/ 以下のすべての読み取り |
WebFetch(domain:example.com) | example.com へのフェッチリクエスト |
サンドボックス設定
以下のキーは "sandbox" オブジェクトの中にネストされ、bash コマンドの隔離方法を制御します。
| キー | 説明 | デフォルト | 例 |
|---|---|---|---|
enabled | bash サンドボックスを有効化 | false | true |
autoAllowBashIfSandboxed | サンドボックス時にコマンドを自動承認 | true | true |
excludedCommands | サンドボックス外で実行するコマンド | (なし) | ["git", "docker"] |
allowUnsandboxedCommands | dangerouslyDisableSandbox によるエスケープを許可 | true | false |
enableWeakerNestedSandbox | Docker 用の弱いサンドボックス (Linux/WSL2) | false | true |
network.allowedDomains | アウトバウンドドメインのホワイトリスト | (なし) | ["github.com", "*.npmjs.org"] |
network.allowUnixSockets | サンドボックス内でアクセス可能な Unix ソケットパス | (なし) | ["~/.ssh/agent-socket"] |
network.allowAllUnixSockets | すべての Unix ソケット接続を許可 | false | true |
network.allowLocalBinding | localhost へのバインドを許可 (macOS のみ) | false | true |
network.httpProxyPort | カスタム HTTP プロキシポート | (自動) | 8080 |
network.socksProxyPort | カスタム SOCKS5 プロキシポート | (自動) | 8081 |
Attribution 設定
以下のキーは "attribution" オブジェクトの中にネストされ、git が Claude の作業をどう帰属させるかを決定します。
| キー | 説明 | デフォルト |
|---|---|---|
commit | git コミットメッセージに追加されるテキスト | "Generated with Claude Code..." + Co-Authored-By トレーラー |
pr | プルリクエストの説明に追加されるテキスト | "Generated with Claude Code..." |
どちらかのキーを "" で空にすると、git から対応する行が消えます。レガシーの includeCoAuthoredBy キーはまだ機能しますが、現在は非推奨です。
プラグイン設定
| キー | 説明 | 例 |
|---|---|---|
enabledPlugins | プラグインのオン/オフ切り替え | {"formatter@acme-tools": true} |
extraKnownMarketplaces | 追加のプラグインソース | 以下の例を参照 |
strictKnownMarketplaces | (Managed のみ) マーケットプレイスソースを制限 | [{"source": "github", "repo": "acme/plugins"}] |
4 つのソースタイプが存在します。github はリポジトリを指定します。git は任意の URL を受け付けます。directory は開発中にローカルパスを使用します。hostPattern はホスト名に対して正規表現マッチングを行います。
MCP サーバー設定
| キー | 説明 | 例 |
|---|---|---|
enableAllProjectMcpServers | すべてのプロジェクト MCP サーバーを自動承認 | true |
enabledMcpjsonServers | 承認する特定の MCP サーバー | ["memory", "github"] |
disabledMcpjsonServers | 拒否する特定の MCP サーバー | ["filesystem"] |
allowedMcpServers | (Managed のみ) MCP サーバーの許可リスト | [{"serverName": "github"}] |
deniedMcpServers | (Managed のみ) MCP サーバーの拒否リスト | [{"serverName": "filesystem"}] |
認証とプロバイダー設定
| キー | 説明 | 例 |
|---|---|---|
apiKeyHelper | 認証値を生成するスクリプト | "/bin/generate_temp_api_key.sh" |
forceLoginMethod | claudeai または console に制限 | "claudeai" |
forceLoginOrgUUID | ログイン中に組織を自動選択 | "xxxxxxxx-xxxx-..." |
awsAuthRefresh | AWS 認証情報を更新するスクリプト | "aws sso login --profile myprofile" |
awsCredentialExport | AWS 認証情報 JSON を出力するスクリプト | "/bin/generate_aws_grant.sh" |
otelHeadersHelper | OpenTelemetry ヘッダーを生成するスクリプト | "/bin/generate_otel_headers.sh" |
フックと高度な設定
| キー | 説明 | 例 |
|---|---|---|
hooks | ライフサイクルイベントのフック設定 | フックガイドを参照 |
disableAllHooks | すべてのフックを無効化 | true |
allowManagedHooksOnly | (Managed のみ) ユーザー/プロジェクトのフックをブロック | true |
allowManagedPermissionRulesOnly | (Managed のみ) ユーザー/プロジェクトの権限ルールをブロック | true |
fileSuggestion | カスタム @ ファイルオートコンプリートスクリプト | {"type": "command", "command": "~/.claude/file-suggestion.sh"} |
statusLine | カスタムステータスラインの表示 | {"type": "command", "command": "~/.claude/statusline.sh"} |
env | すべてのセッション用の環境変数 | {"FOO": "bar"} |
環境変数
Claude Code は約 70 個の環境変数を読み込みます。大半はエッジケース用です。日常的に使うのは約 20 個程度です。
モデルとプロバイダー
| 変数 | 目的 |
|---|---|
ANTHROPIC_API_KEY | 直接 API アクセス用の API キー |
ANTHROPIC_MODEL | デフォルトモデルを上書き |
ANTHROPIC_DEFAULT_SONNET_MODEL | Sonnet エイリアスのモデル名 |
CLAUDE_CODE_SUBAGENT_MODEL | サブエージェント用モデル (メインモデルとは別) |
CLAUDE_CODE_USE_BEDROCK | AWS Bedrock 経由でルーティング |
CLAUDE_CODE_USE_VERTEX | Google Vertex 経由でルーティング |
エイリアス変数 (ANTHROPIC_DEFAULT_SONNET_MODEL、ANTHROPIC_DEFAULT_OPUS_MODEL、ANTHROPIC_DEFAULT_HAIKU_MODEL) は、組織がファインチューニングされたモデルを標準のエイリアス名に向けている場合に便利です。
パフォーマンスチューニング
| 変数 | 目的 |
|---|---|
CLAUDE_CODE_MAX_OUTPUT_TOKENS | 最大出力トークン数 (デフォルト: 32K、最大: 64K) |
MAX_THINKING_TOKENS | 拡張思考バジェット (デフォルト: 31,999、0 で無効化) |
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE | 自動コンパクションをトリガーするコンテキスト容量の % (1-100) |
BASH_DEFAULT_TIMEOUT_MS | デフォルトの bash コマンドタイムアウト |
BASH_MAX_TIMEOUT_MS | Claude が設定できる最大 bash タイムアウト |
BASH_MAX_OUTPUT_LENGTH | 切り詰め前の bash 出力の最大文字数 |
プライバシーとテレメトリ
| 変数 | 目的 |
|---|---|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC | 更新、テレメトリ、エラーレポートをまとめて無効化 |
DISABLE_TELEMETRY | Statsig テレメトリをオプトアウト |
DISABLE_ERROR_REPORTING | Sentry エラーレポートをオプトアウト |
CLAUDE_CODE_HIDE_ACCOUNT_INFO | UI からメールとorg名を非表示 |
DISABLE_AUTOUPDATER | 自動バージョン更新を無効化 |
セッション制御
| 変数 | 目的 |
|---|---|
CLAUDE_CODE_TASK_LIST_ID | 複数のセッション間でタスクリストを共有 |
CLAUDE_CODE_ENABLE_TASKS | false に設定すると旧 TODO リストに戻る |
CLAUDE_CODE_SHELL | シェルの自動検出を上書き |
CLAUDE_CONFIG_DIR | カスタムの設定/データディレクトリの場所 |
MCP_TIMEOUT | MCP サーバー起動のタイムアウト (ミリ秒) |
MCP_TOOL_TIMEOUT | MCP ツール実行のタイムアウト (ミリ秒) |
2 つの方法があります。シェルプロファイルからエクスポートするか、settings.json の "env" オブジェクトに記述してシェルの rc ファイルを編集せずにセッションをまたいで維持するかです。
設定の競合を解決する
スコープの優先順位を知れば、典型的な設定の悩みのほとんどが解消されます。
ケース 1: スコープ間で権限ルールが一致しない
User 設定が Bash(curl *) を許可しています。Project 設定がそれを拒否しています。どちらが勝つか? Project は優先度 4、User は優先度 5 なので、ブロックが有効です。自分のマシンで curl が本当に必要な場合は、代わりに .claude/settings.local.json に許可ルールを追加してください。Local は優先度 3 で Project の優先度 4 を上回り、Local の許可がブロックされたルールを上書きします。
ケース 2: Managed ファイルがプロジェクトルールを無効にする
チームの settings.json が Bash(rm -rf *) を許可しています。IT が同じコマンドをブロックする Managed ファイルを配布しました。Managed が勝ちます。常に。User、Local、Project のいかなるファイルも Managed ルールを越えることはできません。この設計は意図的なもので、コンプライアンスがその理由です。
ケース 3: ローカルで試してみる
チームに提案する前に新しいフックを試したい場合、.claude/settings.local.json に記述してください。共有の .claude/settings.json より優先され、自分のマシンにのみ留まります。
ケース 4: 2 つのスコープのマージ
スコープは互いを完全に上書きするわけではありません。重なり合います。Bash(git status) を許可する User 設定と Bash(npm run lint) を許可する Project 設定は、両方のルールが同時にアクティブになります。マージは権限配列を結合します。同じキーが 2 つのスコープで異なる値を持つ場合、その単一のキーについては上位のスコープの値が採用されます。
ケース 5: シェルからエクスポートされた環境変数と settings.json に記述された環境変数
シェルから ANTHROPIC_MODEL をエクスポートし、settings.json の env オブジェクトにも記述した場合、Claude Code が使用するのはシェルのエクスポート値です。
設定がシステム全体とどう連携するか
CLAUDE.md ファイル は起動時に Claude が読み込む指示と必要な背景情報を保持します。明確なメンタルモデル: settings.json は Claude が何をしてよいかを示し、CLAUDE.md は Claude が何を知るべきかを示します。
MCP サーバー は Claude に新しいツールを追加します。設定はそれぞれのファイルに記述します (プロジェクトレベルでは .mcp.json、ユーザーレベルでは ~/.claude.json)。settings.json はそれらのサーバーを承認するか拒否するかを決定する場所です。
フック は settings.json の hooks キーの下に記述されます。それぞれがライフサイクルイベントの発火時にシェルコマンドまたは LLM プロンプトを実行します。
プラグイン も settings.json を通じて機能し、enabledPlugins とマーケットプレイスリストで管理されます。
サブエージェント はプレーンな Markdown ファイルです。User のものは ~/.claude/agents/ に、Project のものは .claude/agents/ に置きます。
バックアップとリカバリー
設定ファイルが変更されるたびに、Claude Code はタイムスタンプ付きのバックアップを書き込みます。ファイルごとに最新の 5 件が保持されます。不正な更新があっても git の reflog を掘り返す必要はありません。以前の動作していたバージョンが壊れたものの隣に存在しています。
はじめ方
Claude Code の設定が初めての方は、この短いリストを順番に実行してください。
- プロジェクトレベルでの権限ルール。
.envやその他の秘密ファイルへの読み取りをブロックします。毎日使うビルドまたはテストコマンドを許可します - 保存時に自動フォーマットする PostToolUse フック。この一つのエントリは他の何よりも承認疲れを解消します
- Co-Authored-By の行を調整または非表示にする必要がある場合は Attribution 設定
- 触れるすべてのリポジトリで有効にしたい設定のためのユーザーデフォルト
- プロジェクトのコンテキストとコーディング規約を含む CLAUDE.md ファイル
設定をやめて、構築を始めよう。
AIオーケストレーション付きSaaSビルダーテンプレート。