コンテンツにスキップ

settings.json を層で使う

tier 1(まず入れる)確認 1 か月前(2026年8月23日)

どこまで来たら使えたと言えるか

面: 両方で同じ

段達成したと言える状態
1. 触る/config で 1 項目を変え、/status の Setting sources 行にどの層が読み込まれているかを見た
2. 入れるuser / project / local の 3 つに何を書くかを決め、チームに配る設定と自分だけの設定が別ファイルになっている
3. 効かせる設定が効かないとき、優先順位と反映タイミングのどちらが原因かを /status と claude doctor で切り分けられる

何のためのものか

settings.json による設定。要点はスコープが 4 層あり、優先順位が決まっていること。「書いたのに効かない」のほとんどは、層を間違えているか、反映タイミングを誤解しているかのどちらかである。

触る

  1. 対話セッションで /config を開く。v2.1.181 から /config key=value で UI を開かずに 1 項目を変えられる
  2. /status の Status タブにある Setting sources 行を見る。そのセッションで読み込まれた層が並ぶ

Setting sources はどのソースが読まれたかを示すだけで、各キーをどの層が供給したかは示さない。空の一覧は「設定ソースが見つからなかった」を意味する。

入れる

3 つの層に何を置くかを決める。

層ファイル何を置くか
User~/.claude/settings.json自分の全プロジェクトに効かせたい癖
Project.claude/settings.jsonリポジトリの共同作業者に配る規約。git にコミットする
Local.claude/settings.local.jsonこのリポジトリでの自分だけの事情。Claude Code が保存するとき gitignore される
  • 恒久的な「don't ask again」の permission 承認は .claude/settings.local.json に入る
  • .claude/settings.local.json は git リポジトリルートで読み書きされ、1 ファイルでリポジトリ内のどのサブディレクトリ・worktree のセッションもカバーする
  • $schema に https://json.schemastore.org/claude-code-settings.json を指定するとエディタの補完と検証が効く

効かせる

優先順位を覚える。 上が強い。

  1. Managed settings(server-managed、MDM / OS レベルポリシー、managed settings ファイル)
  2. コマンドライン引数(--settings)
  3. Local project settings(.claude/settings.local.json)
  4. Shared project settings(.claude/settings.json)
  5. User settings(~/.claude/settings.json)

反映タイミングは 2 種類ある。

  • 設定ファイルは監視されており、permissions、hooks、apiKeyHelper などは再起動なしに反映される(変更ごとに ConfigChange hook が発火する)
  • model と outputStyle はセッション開始時に一度だけ読まれる。セッション中に変えるなら /model、outputStyle は /clear か再起動

配列は置き換えではなく連結・重複排除される。 複数スコープに同じ配列設定があるとマージされる。例外は fallbackModel(順序に意味があるため最上位のファイルが全体を供給)と availableModels。

落とし穴

  • ~/.claude.json にしか置けないキーがある。 autoConnectIde、diffTool、permissionExplainerEnabled などは settings.json に書くと起動時に黙って無視される
  • project settings は user settings より強い。 ~/.claude/settings.json で plugin を false にしても、project の .claude/settings.json が有効にした plugin は無効にならない。自分のマシンで外すなら .claude/settings.local.json
  • user / project / local の設定ファイルは厳格。 検証に失敗したファイルは全体が拒否される(managed settings だけが寛容にパースされ、不正エントリを除いて残りを強制する)
  • 起動時に Settings Error ダイアログが出たら、/status で該当ファイルを見て claude doctor で詳細を読む
  • 機微なファイルを除外するには permissions.deny を使う。非推奨の ignorePatterns ではない

根拠と前後

このページが書ける範囲は、根拠にした facts に書かれていることだけです。 仕様そのものはそちらを読んでください。