Deepseek ArtifactsDeepseek Artifacts
設定ガイド

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. 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 global config map card listing settings.json, CLAUDE.md, projects, skills, agents, plugins and the .claude.json state file inside the ~/.claude directory
    グローバル層の全体像:セッション開始時に Claude Code が ~/.claude から読み込むすべてのファイル。2:28 から視聴
  2. 2

    ~/.claude/settings.json を開く、または作成する

    Mac と Linux では ~/.claude/settings.json、Windows では %USERPROFILE%\.claude\settings.json にあります。存在しなければ作成してください — 次のセッションで Claude Code が読み込みます。設定フォルダごと別の場所に置きたい場合は CLAUDE_CONFIG_DIR を設定します。

    Claude Code settings.json card showing the ~/.claude/settings.json path on Mac and Linux and the Windows USERPROFILE location for themes, model choice and permissions
    settings.json は、マシン上のすべてのプロジェクトにわたってテーマ、モデル選択、プラグイン、環境変数、権限を制御します。0:20 から視聴
  3. 3

    モデルと effort レベルを固定する

    "model" に特定のモデルか "opusplan"(Opus が計画、Sonnet が実行)を設定すると、それがすべての新セッションのデフォルトになります — /model で対話的に選ぶのと同じ選択です。"effortLevel" と組み合わせてデフォルトの思考量に上限を設け、モデル別の上書きには modelSettings を使います。

  4. 4

    信頼するコマンドを allow に追加する

    permissions ブロック内の "allow" には、承認プロンプトをスキップできるツールルールを列挙します:"Bash(npm run lint)"、"Bash(npm run test *)"、"Read(~/.zshrc)"。ルールはツールごとにスコープされたパターンです — * ワイルドカードの前にはスペースが必要("Bash(git push:*)")で、ないとより長いコマンド名まで飲み込みます。

    Claude Code settings.local.json permissions allow list open in VS Code showing Bash git commands and WebFetch domain allow entries
    実際の settings.local.json の allow リスト:ここにある 1 件 1 件が、もう二度と表示されない承認プロンプトの跡です。0:50 から視聴

パート 2 — 権限・env・上書き

  1. 5

    deny ルールでシークレットを守る

    deny ルールは最初に評価され、どの階層の設定も上書きできません。まず "Read(./.env)" と "Read(./.env.*)" で API キーがコンテキストに入らないようにし、"Bash(git push:*)" でリモートへの公開を人間の判断に留めます。グレーゾーンは ask ルールに任せましょう。

  2. 6

    マシン固有の上書きは settings.local.json へ

    Claude Code があなたのために権限を書き込む先は .claude/settings.local.json — しかもこのファイルは自動で git から除外されます。個人的なパス、実験的なフラグ、チームメイトに強制したくないものはこのファイルに。共有すべき意図的なルールは .claude/settings.json へ。

  3. 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 に属します。

  4. 8

    ~/.claude.json を設定と混同しない

    ~/.claude.json は設定ではなく状態です:OAuth トークン、MCP サーバー登録、プロジェクトごとの信頼判断、グローバルトグルがここにあります。意図は settings.json に書き、.claude.json は Claude Code に管理させましょう — そして両方バックアップを。cleanupPeriodDays が会話履歴の保持期間も決めているからです。

    Terminal listing of the ~/.claude folder in Claude Code showing statsig feature flags, the plugins directory, shell snapshots and the .claude.json global state file
    ~/.claude の中身:フィーチャーフラグ、プラグイン、シェルスナップショット、そして設定ファイルと間違えがちな .claude.json 状態ファイル。2:00 から視聴

パート 3 — 時間が経ってもきれいに保つ

  1. 9

    ~/.claude にある他のものも知る

    CLAUDE.md はグローバルな指示ファイルで、毎セッションの冒頭で読まれます。projects/ はリポジトリごとの会話履歴と自動メモリを保存し、skills/ はオンデマンドの SKILL.md ワークフロー、agents/ はサブエージェントの定義、plugins/ はインストール済みプラグイン、statsig/ はフィーチャーフラグをキャッシュします。settings.json がそれらすべてを統括します。

    Claude Code CLAUDE.md global instruction file card with personal preferences, code style rules and testing patterns loaded at the start of every session
    CLAUDE.md は設定と間違えられがちな隣のファイル:設定キーではなく、好みと規約を運ぶものです。0:45 から視聴
  2. 10

    allow リストの監査を Claude に頼む

    allow リストは承認のたびに 1 行ずつ育ち、いつの間にか誰も中身を覚えていません。Claude Code を開いて、.claude/settings.local.json の冗長・不要・リスクのあるエントリを見直すよう頼んでください — Claude は組み込みツールが何か、どのルールが重複しているかを知っています。

    Claude Code prompt asking Claude to review the permissions allow list in settings.local.json for redundant and overly permissive entries
    監査プロンプト:allow リストを見直し、冗長なもの、組み込みツールと重複するもの、明らかに危険なものを指摘させる。1:40 から視聴
  3. 11

    審査結果をレビュアーとして読む

    このページがスクリーンショットを撮った実際の監査では、Claude は 41 エントリを分類しました:ls、grep、find、echo、cd は組み込みツールと重複。ワイルドカードのエントリは明示的なコマンドをすでにカバー。ローカルの絶対パスは Claude が作業ディレクトリを知っているので不要。curl だけが本当に権限が広すぎると指摘されました。

    Claude Code analysis table flagging unnecessary Bash ls, grep and find permission entries that duplicate built-in tools in settings.local.json
    審査結果:41 エントリを不要・冗長・リスクに分類 — 各行の置き換え案つき。3:05 から視聴
  4. 12

    クリーンアップを適用し、毎月見直す

    提案された編集を承認すれば、ファイルは 41 エントリから 15 へ縮みます。習慣にしましょう:読めない allow リストは見えない攻撃面です。大きなプロジェクトの後には監査を再実行し、包括的な承認よりも Bash(git diff:*) のようなスコープ付きルールを優先します。

    Claude Code summary of permission changes removing curl, explicit home directory paths and one-off shell script entries from the settings allow list
    適用後のクリーンアップ: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 キーずつ再適用 — にらめっこより二分探索です。

Claude Code 設定 FAQ

関連ガイド