Claude Code の settings.local.json とは:settings.json との違いと .gitignore の扱い

Claude Code 公開:

Claude Code の .claude/settings.local.json の役割を解説します。settings.json との優先順位、対話中に「今後も許可」を選んだときに追記される仕組み、Git 管理から外す方法、チームで共有すべき設定との切り分けを紹介します。

検証日 2026年9月7日 仕様変更が早い分野です。最新の公式ドキュメントも併せてご確認ください。
目次
  1. 2 つのファイルの違い
  2. 「今後も許可」で何が起きるか
  3. どちらに何を書くか
  4. .gitignore の扱い
  5. 関連する設定
  6. まとめ

.claude/ ディレクトリを見ると、settings.json のほかに settings.local.json というファイルができていることがあります。これは Claude Code が自動生成する個人用の設定ファイルで、チームで共有する settings.json とは役割が違います。

結論として、settings.json は Git で共有するチームのルール、settings.local.json は Git に入れない自分専用の追加設定です。

KEY POINT

この記事で分かること

  • settings.json と settings.local.json の役割と優先順位
  • 「今後も許可」が settings.local.json に追記される仕組み
  • どちらに何を書くべきかの切り分け

2 つのファイルの違い

項目.claude/settings.json.claude/settings.local.json
役割プロジェクト共通の設定個人の追加設定
Git 管理するしない(自動で .gitignore に追加される)
作られ方手で作る「今後も許可」を選ぶと自動生成
優先順位ローカルより低いプロジェクトより高い(ただし deny は常に最優先)

同じキーが両方にある場合、settings.local.json の値が優先されます。ただし permissions.deny は例外で、プロジェクト側の deny をローカルの allow で解除することはできません。

用語解説

設定の適用順: 管理者設定 → ローカル → プロジェクト → ユーザー(~/.claude/settings.json)の順に強く、より限定的なスコープが優先されます。deny だけは、どのスコープに書かれていても最優先です。

「今後も許可」で何が起きるか

対話中に確認ダイアログで「今後も許可する」を選ぶと、そのコマンドのパターンが settings.local.jsonallow に追記されます。

{
  "permissions": {
    "allow": [
      "Bash(npm run test:*)",
      "Bash(git diff:*)"
    ]
  }
}

気付かないうちに allow が増えていくため、/permissions コマンドで定期的に確認し、不要なものは削除してください。「あのコマンドが確認なしで走るのはなぜか」と思ったら、まずこのファイルを見ます。

どちらに何を書くか

設定書く場所
チーム全員に守らせたい deny(秘密情報の読み取り禁止、force push 禁止)settings.json
誰が実行しても安全な allow(lint、テスト)settings.json
共有 hooks(編集後の format)settings.json
自分の作業速度のための allow(git commitnpm install)settings.local.json
自分だけの defaultMode(acceptEdits など)settings.local.json
ローカル環境固有の hooks や環境変数settings.local.json

チームの settings.json は慎重側に倒し、速く進めたい人は settings.local.json で上書きする、という分担が扱いやすいです。

.gitignore の扱い

Claude Code は settings.local.json を作成するときに .gitignore へ追記します。追記されていない場合は手で追加します。

.claude/settings.local.json

CLAUDE.local.md(個人用のメモ)も同じく Git 管理外です。あわせて追加しておくと安全です(CLAUDE.local.md の使い方)。

settings.local.json に秘密情報を書かない

Git 管理外とはいえ、hooks の command に API キーを直接書くのは避けてください。環境変数から読ませる形にします。

関連する設定

permissions の allow / ask / deny の書き方と全体設計は、親記事の settings.json で permissions を設計する を参照してください。

まとめ

  • settings.json はチーム共有(Git 管理)、settings.local.json は個人用(Git 管理外)
  • 「今後も許可」は settings.local.json の allow に追記される。/permissions で定期的に見直す
  • 優先順位はローカル > プロジェクト > ユーザー。deny だけはどこに書いても最優先
  • チームの設定は慎重側に、個人の高速化はローカルで上書きする

よくある質問

settings.local.json は自分で作る必要がありますか?
対話中に「今後も許可」を選ぶと自動で作られます。先に作っておいても構いません。
settings.local.json は Git にコミットされますか?
Claude Code が自動で .gitignore に追加するため、通常はコミットされません。既存の .gitignore の状態によっては手で追加が必要です。

参考にした一次情報

この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合はお問い合わせからお知らせください。