Claude Code 設定解説:settings.json フィールドガイド
settings.json の重要キーを網羅:4 つの設定ファイルと優先順位、モデルと effort、permissions の allow/deny ルール、env ブロック、そして実際の settings.local.json クリーンアップ手順 — 公式ドキュメントで検証済み。
要点まとめ
- 4 つのファイル、1 つの階層:managed-settings.json がコマンドラインに勝り、コマンドラインは .claude/settings.local.json に勝り、それは .claude/settings.json に勝り、さらに ~/.claude/settings.json より優先されます。allow リストは上書きではなくファイル間でマージされます。
- settings.json は厳密な JSON:コメントも末尾カンマも不可。"$schema": "https://json.schemastore.org/claude-code-settings.json" の行を追加すれば、エディタが全キーを自動補完してくれます。
- deny ルールは常に勝ちます。どの階層の deny ルールでもすべての allow ルールを上書きします — Read(./.env) と Bash(git push:*) から始めれば、2 行でシークレットとリモートを保護できます。
- settings.local.json はそのマシン専用のサンドボックス:共有プロジェクト設定より優先され、自動で git から除外されるため、個人的なパスや実験がリポジトリに漏れません。
Claude Code Configuration EP1: The Global Files Decoded (settings.json, CLAUDE.md, skills)
チャンネル: Terminode AI2:31
Learning In Public: Cleaning Up Claude Code Settings
チャンネル: Ben Nadel5:26
Settings — official documentation
公式ドキュメント: code.claude.com/docs
Settings reference — the full key table
公式ドキュメント: code.claude.com/docs
Environment variables — official reference
公式ドキュメント: code.claude.com/docs
このページの事実は公式の設定ドキュメントに対して検証しています。上の 2 本の動画がビジュアルソースで、監査ワークフローの着想源です。
スクリーンショットは各制作者に帰属し、該当タイムスタンプへ深リンクしています。顔出しフレームは使用していません。
Claude Code の settings.json をステップごとに設定する
パート 1 — 設定ファイルの全体像を掴む
- 1
4 つの設定ファイルを把握する
Claude Code は 4 つのスコープから設定を読みます:~/.claude/settings.json(あなた自身、全プロジェクト共通)、.claude/settings.json(チームと共有、コミット対象)、.claude/settings.local.json(あなた、このプロジェクト限定)、そして managed-settings.json(組織)。~/.claude 内のすべて — CLAUDE.md、projects、skills、agents、plugins — が同じ設定環境の一部です。

グローバル層の全体像:セッション開始時に Claude Code が ~/.claude から読み込むすべてのファイル。2:28 から視聴 - 2
~/.claude/settings.json を開く、または作成する
Mac と Linux では ~/.claude/settings.json、Windows では %USERPROFILE%\.claude\settings.json にあります。存在しなければ作成してください — 次のセッションで Claude Code が読み込みます。設定フォルダごと別の場所に置きたい場合は CLAUDE_CONFIG_DIR を設定します。

settings.json は、マシン上のすべてのプロジェクトにわたってテーマ、モデル選択、プラグイン、環境変数、権限を制御します。0:20 から視聴 - 3
モデルと effort レベルを固定する
"model" に特定のモデルか "opusplan"(Opus が計画、Sonnet が実行)を設定すると、それがすべての新セッションのデフォルトになります — /model で対話的に選ぶのと同じ選択です。"effortLevel" と組み合わせてデフォルトの思考量に上限を設け、モデル別の上書きには modelSettings を使います。
- 4
信頼するコマンドを allow に追加する
permissions ブロック内の "allow" には、承認プロンプトをスキップできるツールルールを列挙します:"Bash(npm run lint)"、"Bash(npm run test *)"、"Read(~/.zshrc)"。ルールはツールごとにスコープされたパターンです — * ワイルドカードの前にはスペースが必要("Bash(git push:*)")で、ないとより長いコマンド名まで飲み込みます。

実際の settings.local.json の allow リスト:ここにある 1 件 1 件が、もう二度と表示されない承認プロンプトの跡です。0:50 から視聴
パート 2 — 権限・env・上書き
- 5
deny ルールでシークレットを守る
deny ルールは最初に評価され、どの階層の設定も上書きできません。まず "Read(./.env)" と "Read(./.env.*)" で API キーがコンテキストに入らないようにし、"Bash(git push:*)" でリモートへの公開を人間の判断に留めます。グレーゾーンは ask ルールに任せましょう。
- 6
マシン固有の上書きは settings.local.json へ
Claude Code があなたのために権限を書き込む先は .claude/settings.local.json — しかもこのファイルは自動で git から除外されます。個人的なパス、実験的なフラグ、チームメイトに強制したくないものはこのファイルに。共有すべき意図的なルールは .claude/settings.json へ。
- 7
シークレットとトグルは env ブロックへ
"env" オブジェクトは全セッションに環境変数を適用します:"ANTHROPIC_API_KEY"、"DISABLE_TELEMETRY": "1"、"DISABLE_NON_ESSENTIAL_MODEL_CALLS": "1"、CLAUDE_CODE_MAX_OUTPUT_TOKENS など。ドキュメント由来の経験則:settings.json 内の ALL_CAPS キーはほぼすべて env に属します。
- 8
~/.claude.json を設定と混同しない
~/.claude.json は設定ではなく状態です:OAuth トークン、MCP サーバー登録、プロジェクトごとの信頼判断、グローバルトグルがここにあります。意図は settings.json に書き、.claude.json は Claude Code に管理させましょう — そして両方バックアップを。cleanupPeriodDays が会話履歴の保持期間も決めているからです。

~/.claude の中身:フィーチャーフラグ、プラグイン、シェルスナップショット、そして設定ファイルと間違えがちな .claude.json 状態ファイル。2:00 から視聴
パート 3 — 時間が経ってもきれいに保つ
- 9
~/.claude にある他のものも知る
CLAUDE.md はグローバルな指示ファイルで、毎セッションの冒頭で読まれます。projects/ はリポジトリごとの会話履歴と自動メモリを保存し、skills/ はオンデマンドの SKILL.md ワークフロー、agents/ はサブエージェントの定義、plugins/ はインストール済みプラグイン、statsig/ はフィーチャーフラグをキャッシュします。settings.json がそれらすべてを統括します。

CLAUDE.md は設定と間違えられがちな隣のファイル:設定キーではなく、好みと規約を運ぶものです。0:45 から視聴 - 10
allow リストの監査を Claude に頼む
allow リストは承認のたびに 1 行ずつ育ち、いつの間にか誰も中身を覚えていません。Claude Code を開いて、.claude/settings.local.json の冗長・不要・リスクのあるエントリを見直すよう頼んでください — Claude は組み込みツールが何か、どのルールが重複しているかを知っています。

監査プロンプト:allow リストを見直し、冗長なもの、組み込みツールと重複するもの、明らかに危険なものを指摘させる。1:40 から視聴 - 11
審査結果をレビュアーとして読む
このページがスクリーンショットを撮った実際の監査では、Claude は 41 エントリを分類しました:ls、grep、find、echo、cd は組み込みツールと重複。ワイルドカードのエントリは明示的なコマンドをすでにカバー。ローカルの絶対パスは Claude が作業ディレクトリを知っているので不要。curl だけが本当に権限が広すぎると指摘されました。

審査結果:41 エントリを不要・冗長・リスクに分類 — 各行の置き換え案つき。3:05 から視聴 - 12
クリーンアップを適用し、毎月見直す
提案された編集を承認すれば、ファイルは 41 エントリから 15 へ縮みます。習慣にしましょう:読めない allow リストは見えない攻撃面です。大きなプロジェクトの後には監査を再実行し、包括的な承認よりも Bash(git diff:*) のようなスコープ付きルールを優先します。

適用後のクリーンアップ:curl、明示的なホームパス、使い捨てのシェルスクリプトが allow リストから削除されました。4:50 から視聴
settings.json vs CLAUDE.md vs ~/.claude.json vs /config
どれも「Claude Code の設定」に見える窓口は 4 つあります — 互換ではありません。何がどのファイルの管轄か:
- 1settings.json(全スコープ)— 宣言的な設定:model、effort、permissions、env、hooks、statusLine、plugins。厳密な JSON でスキーマ検証され、コミット安全(.local は除く)。
- 2CLAUDE.md — 自然言語の指示と規約。挙動を方向づけるものであって設定ではなく、キーバリューの契約はなく、毎セッション読まれます。
- 3~/.claude.json — マシンの状態:OAuth/セッションデータ、MCP 登録、プロジェクトごとの信頼、オンボーディングフラグ。Claude Code が書き込むもので、手動編集は避けるべきです。
- 4/config — 対話パネル。同じキー群の UI です:ほとんどのトグルは ~/.claude/settings.json に書き込まれ、いくつか(Show tips など)は settings.local.json へ、グローバルオプションは ~/.claude.json に落ちます。
- 5managed-settings.json — 組織の層。すべてを上書きします(より厳しい方が勝つセキュリティ例外は少数)— だから職場マシンではローカルでのモデル選択が黙って負けることがあります。
経験則:挙動は CLAUDE.md、設定は settings.json。そして値が無視されるように見えたら、~/.claude.json か管理ファイルがすでに決めていないか確認しましょう。
設定が効かない?応急処置
settings.json の問題はほぼ 5 つの原因に帰着します。順番に潰していきましょう:
- 1JSON 構文エラー。settings.json は厳密な JSON — 末尾カンマ 1 つや // コメント 1 行でファイル全体が拒否されます。バリデーターに貼り付けるか、$schema 行を追加してタイプ中にエディタへ指摘させましょう。
- 2上位に厳しいルールがある。管理設定とセキュリティ関連キー(disableClaudeAiConnectors や useAutoModeDuringPlan など)はあなたのファイルより常に強い。職場マシンが上書きしていないか確認を。
- 3ファイル違い、スコープ違い。.claude/settings.json のルールはそのプロジェクト内でしか効きません。defaultMode の auto と bypassPermissions は設計上、プロジェクトレベルのファイルからは無視されます。
- 4env 値の場所違い。ALL_CAPS キーはトップレベルではなく env ブロックへ。ANTHROPIC_API_KEY や DISABLE_TELEMETRY が無視されるように見えるなら、1 階層上に置いてあるのでしょう。
- 5黙って拒否されたエントリ。claude doctor を実行すれば検証に失敗した設定エントリが一覧でき、セッション内の /status で実際に読み込まれたファイルが分かります。
それでも直らない?最後の編集を削除し、/status でファイルが読み込まれていることを確認してから、1 キーずつ再適用 — にらめっこより二分探索です。
