Claude Code settings.json入門|設定ファイルと優先順位

この記事の要点
- 設定ファイルは「自分用」「チーム共有」「このプロジェクトの自分用」「組織の管理」の4種類。置いた場所で効く人の範囲が決まる
- 同じ項目は上の段が勝つ。強い順に 組織の管理 → コマンドラインの --settings → プロジェクトの自分用 → チーム共有 → 自分用
- 書いたら /status の Setting sources で読み込まれたか確かめる。効かないときは上の段の上書き・書けない場所・JSONの壊れを疑う
Claude Code を使い込むと、「最初に使うモデル」「確認なしで実行してよいコマンド」「読ませたくないファイル」など、決めておきたいことが増えてきます。こうした決まりごとを書いておく場所が settings.json などの設定ファイル です。
この記事では、公式ドキュメント「Settings files and precedence」(2026年11月1日確認)にもとづいて、どのファイルに何を書くか、同じ項目を複数の場所に書いたらどれが効くかを、表を中心に整理します。
結論:置き場所で「効く人」が決まる
設定ファイル選びで迷ったら、「この決まりを誰に効かせたいか」 で選びます。自分だけならホームの ~/.claude/settings.json、チーム全員ならプロジェクトの .claude/settings.json、このプロジェクトで自分だけなら .claude/settings.local.json です。
| 種類 | ファイル | 効く範囲 | 向いている中身 |
|---|---|---|---|
| 自分用 | ~/.claude/settings.json | このパソコンのすべてのプロジェクトで自分に | 見た目のテーマ、既定のモデル、自分の許可ルール |
| チーム共有 | .claude/settings.json | そのフォルダで作業する全員(git にコミットすれば仲間にも届く) | チームの許可ルール、フック、プラグイン、必要な環境変数 |
| プロジェクトの自分用 | .claude/settings.local.json | このプロジェクトで自分だけ | 1つのプロジェクトだけの個人の上書き、共有前のお試し |
| 組織の管理 | managed-settings.json など | 組織が配った全員 | セキュリティ方針や守るべき決まり |
表の ~/.claude はホームフォルダの中の .claude、先頭に ~/ が付かない .claude はプロジェクトの中の .claude を指します。
なお、インストールしただけでは設定ファイルは作られません。/config でテーマなどを変えたとき、または確認画面で「Yes, and don't ask again」を選んだときに、Claude Code が自分で作ります。
優先順位:上の段が勝つ
同じ項目が複数の場所にあるときは、いちばん上の段の値が使われます。 強い順に並べると次のとおりです。
| 順位 | 段 | ひとこと |
|---|---|---|
| 1 | 組織の管理(managed settings) | 自分のファイルや --settings では上書きできない |
| 2 | コマンドライン(--settings) | その回の起動だけ有効。ファイルには書き込まない |
| 3 | プロジェクトの自分用(.claude/settings.local.json) | チーム共有より強い |
| 4 | チーム共有(.claude/settings.json) | 自分用より強い |
| 5 | 自分用(~/.claude/settings.json) | いちばん弱い |
たとえば、チームのファイルで "model": "claude-sonnet-5" となっていても、自分だけ別のモデルにしたいなら、.claude/settings.local.json に "model" を書けば自分のセッションだけが変わります。
環境変数はこの段のどこにも入りません。たとえばシェルで設定した ANTHROPIC_MODEL は、どのファイルの model よりも優先されます。どちらが勝つかは項目ごとに決まっています。
リストは「足し算」になる
permissions.allow のようなリストの項目は、上書きではなく合わさります。 チームのファイルと自分のファイルの両方に許可ルールを書けば、両方が効きます。許可ルールの書き方は Claude Codeの権限設定 で解説しています。
ただし fallbackModel や modelPicker など、モデルの一覧を持つ一部の項目は、いちばん上の段の値をまるごと使うなど、別の決まりで動きます。
書き方:3つの変え方
ふだんは /config で変え、細かい項目はファイルを直接書き、お試しは起動時に1回だけ指定する と覚えると迷いません。
| 変え方 | 例 | 保存されるか |
|---|---|---|
/config メニュー | テーマ、エディタの操作方法、詳しい表示 | 多くは ~/.claude/settings.json に保存 |
| ファイルを直接編集 | 許可ルール、フックなど | 編集したファイルに保存 |
| 起動時の指定 | claude --settings '{"model": "claude-opus-5-5"}' | 保存されない(その回だけ) |
ファイルを直接書くときは、厳密なJSON で書く点に注意します。// のコメントや、最後の要素の後ろのカンマはエラーになります。先頭に "$schema": "https://json.schemastore.org/claude-code-settings.json" を書いておくと、対応するエディタで入力の補完やチェックが効きます。
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": {
"allow": ["Bash(npm run lint)", "Bash(npm run test *)"],
"deny": ["Read(./.env)", "Read(./.env.*)"]
}
}
書いたらすぐ効くもの・再起動が要るもの
多くの項目は保存した時点で、動いているセッションに反映されます。 許可ルールやフックの変更もそうです。一方で model や effortLevel は起動時に1回だけ読まれるため、途中で変えたいときは /model や /effort を使います。モデルを切り替えると会話の読み直しが起きる点は プロンプトキャッシュの記事 で説明しています。
確かめ方:/status を見る
設定を書いたら /status を開き、Setting sources の行に目的のファイルが出ているかを確かめます。 この行は「どのファイルを読んだか」を示すもので、どの項目がどのファイルから来たかまでは出ません。読み込めなかった項目を一覧で見たいときは claude doctor を使います。
JSONが壊れていると、起動時に Settings Error(ファイル全体の問題)や Settings Warning(一部の項目だけの問題)が出ます。Warning のときは、問題の項目だけ飛ばして残りは効いたままです。
効かないときの見直し表
| 症状 | まず疑うこと |
|---|---|
| 書いた値が無視される | 上の段(組織の管理・--settings・環境変数)が同じ項目を決めていないか |
| チーム共有に書いた値が仲間に効かない | その項目がリポジトリのファイルでは効かない種類ではないか/仲間がフォルダを信頼済みか |
bypassPermissions や auto が効かない | プロジェクトのファイルでは効かない。自分用か組織の管理に書く |
/model で変えた既定が次回に戻る | 自分用ファイルに書き込めない状態になっていないか |
| JSONを直したのに反映されない | コメントや末尾のカンマが残っていないか |
チーム共有の .claude/settings.json に書いた permissions.allow や多くの env は、仲間がそのフォルダを信頼するまで効きません。 一方で deny と ask のルールはすぐに効きます。守りのルールが先に効く作りです。共有のフックの作り方は Claude Codeのフック を参考にしてください。
クラウドで動かすときの違い
クラウドのセッションでは、自分用とプロジェクトの自分用のファイルは読まれません。 手元のパソコンにあるファイルだからです。リポジトリにコミットしたチーム共有のファイルは、リポジトリ1つのセッションなら読まれます。設定を変えたいときは、クラウドの環境に環境変数を設定する方法もあります。
まとめ
- 設定ファイルは4種類。誰に効かせたいか で置き場所を選ぶ
- 同じ項目は 組織の管理 → --settings → プロジェクトの自分用 → チーム共有 → 自分用 の順で強い。リストは合わさる
- 書いたら
/statusで確かめ、効かないときは上の段・書けない場所・JSONの壊れを順に見る
出典
この記事はAIを使って下書きし、著者が事実確認・加筆しています。ツールの機能や料金は変わることがあるため、最新の情報は各社の公式ページでご確認ください。


