Claude Code を settings.json で設定する

Claude Code を使い込むほど、「毎回同じことを聞かれる」「このコマンドは自動で通したい」「逆にこれは絶対に止めたい」という要望が出てきます。その大半は、settings.json という設定ファイル 1 つで片づきます。

似た名前で CLAUDE.md がありますが、役割は別です。CLAUDE.md は Claude への「指示書(自然言語のお願い)」、settings.json は Claude Code というツールの「設定(挙動のルール)」。許可の範囲・使うモデル・環境変数・hooks などは、すべて settings.json 側で決めます。

この記事では、settings.json をどこに置くと何に効くのか、いちばん重要な権限設定の書き方、よく使うキー、そして秘密を漏らさない置き場所までを、個人開発者向けに整理します。対象は Claude Code v2.1 系時点です。

settings.json はどこに置くか(4 つの場所と優先順位)

settings.json は、置く場所によって効く範囲が変わります。同じキーが複数の場所にあるときは、下にいくほど強い(上書きする)と覚えてください。

場所パス効く範囲git 管理
ユーザー設定~/.claude/settings.jsonこのマシンの全プロジェクトしない
プロジェクト設定.claude/settings.jsonこのリポジトリ(チーム共有)する
ローカル設定.claude/settings.local.jsonこのリポジトリの自分だけしない(自動で gitignore)
組織管理ポリシー管理者が配布するパス端末全体(最優先)管理者が配布

優先順位は、組織ポリシー > 起動時のコマンドライン引数 > ローカル設定 > プロジェクト設定 > ユーザー設定

使い分けの基本は単純です。自分だけ・全プロジェクト共通の好みはユーザー設定へ。チームで揃えたいルールはプロジェクト設定(.claude/settings.json)へ入れて git に乗せる。自分だけの上書き・秘密を含むものはローカル設定(.claude/settings.local.json)へ。最後のものは git 追跡されないので、そこに置けばリポジトリに漏れません。

いちばん効く設定:permissions

settings.json で最初に整えるべきは、ほぼ間違いなく permissions です。「どの操作を、聞かずに通すか・必ず止めるか・確認するか」を決める部分で、ここが整うと「毎回 Yes を押す」作業が激減します。

{
  "permissions": {
    "allow": [
      "Bash(npm run test:*)",
      "Bash(git diff:*)",
      "Read(src/**)"
    ],
    "ask": [
      "Bash(git push:*)"
    ],
    "deny": [
      "Read(.env)",
      "Read(.env.*)",
      "Bash(rm -rf:*)"
    ],
    "defaultMode": "default"
  }
}
  • allow … 確認なしで通す操作。日常的に何度も走らせるもの(テスト・lint・git diff など)を入れる。
  • ask … 毎回確認する操作。allow でも deny でもない「念のため目視したい」もの。
  • deny … 絶対に通さない操作。denyallow より強いので、事故りたくないものはここに固定する。

ルールの書き方は ツール名(指定子) の形です。

書き方意味
Bash(npm run lint)このコマンドだけ(完全一致)
Bash(npm run test:*)npm run test で始まるコマンド(前方一致)
Read(src/**) / Edit(docs/**)gitignore 形式のパス指定
WebFetch(domain:docs.anthropic.com)このドメインへの取得だけ
mcp__github / mcp__github__create_issueMCP サーバー単位・ツール単位

defaultMode は、明示ルールに当たらなかったときの既定挙動です。default(都度確認)、acceptEdits(編集は自動承認)、plan(プランモード固定)、bypassPermissions(全部素通り=非推奨)。まずは default のまま allow を育てるのが安全です。プロジェクト外のフォルダも触らせたいときは additionalDirectories で足します。

そのほか、よく使うキー

権限の次に触ることが多いキーをまとめます。

{
  "model": "claude-opus-4-8",
  "env": { "DISABLE_TELEMETRY": "1" },
  "includeCoAuthoredBy": true,
  "cleanupPeriodDays": 30,
  "statusLine": { "type": "command", "command": "~/.claude/statusline.sh" }
}
  • model … 既定で使うモデル。
  • env … セッションに渡す環境変数。ただしここに API キーなどの秘密を直書きしない(後述)。
  • includeCoAuthoredBy … Claude のコミットに co-author 行を付けるか。
  • statusLine … 画面下のステータス行を自前コマンドの出力で置き換える。
  • hooks … ツール実行の前後などに自動でコマンドを走らせる仕組み。記述量が多いので hooks の記事 に分けています。

MCP まわりでは、プロジェクトの .mcp.json を信頼するかを enableAllProjectMcpServersenabledMcpjsonServers で制御できます。詳しくは MCP サーバーを追加する を参照してください。

チームで共有する型と、秘密の置き場所

チームで挙動を揃えたいときは、.claude/settings.json(プロジェクト設定)に共有ルールを書いて git に乗せます。これで、誰がクローンしても同じ許可範囲・同じモデルで Claude Code が立ち上がります。

一方で、秘密(API キー・トークン)は共有設定に絶対書かないenv に書いた値も、.claude/settings.json に入れれば git に乗ってしまいます。秘密が要るときは、

  • 値そのものはシェルの環境変数やシークレットマネージャに置き、
  • apiKeyHelper(キーを取り出すコマンド)経由で参照するか、
  • 個人用の上書きは .claude/settings.local.json(git 追跡外)に書く。

万一リポジトリに秘密を落としてしまったら、消すだけでなく**そのキーを再発行(ローテート)**します。履歴に残るからです。

挫折ポイント

  • どこに書いたか分からなくなる … 同じキーが複数の場所にあると、優先順位(ローカル > プロジェクト > ユーザー)で上書きされます。「効かない」ときは、まず上位の設定で同じキーを書いていないか疑う。
  • allow を増やしすぎて事故る … 速さ優先で Bash(:*) のような広いルールを入れると、危険なコマンドまで素通りします。広く開けるより、deny で破壊系(rm -rf・強制 push など)を固定するほうが安全。
  • JSON の構文ミスで設定ごと無視される … 末尾カンマや閉じ忘れがあると読み込まれません。保存後、Claude Code を再起動して効いているか確認する。
  • bypassPermissions を常用にしない … 全部素通りは一見ラクですが、確認の壁がなくなります。使うとしても一時的に。
  • .local と共有を取り違える … 自分だけの上書き・秘密は settings.local.json、チーム共有は settings.json。逆にすると、秘密が git に乗るか、共有したいルールが共有されません。

まとめ

settings.json は、Claude Code の挙動を「毎回の確認」から「一度決めたルール」へ移すための場所です。まずは permissions.allow に日常コマンドを少しずつ足し、deny に破壊系を固定する ── これだけで操作がかなり静かになります。

チームで揃えたいものは .claude/settings.json に書いて git へ、自分だけ・秘密を含むものは .claude/settings.local.json へ。優先順位(下が強い)と「秘密はリポジトリに書かない」の 2 点さえ外さなければ、設定で大きく事故ることはありません。


設定(settings.json)が「ツールの挙動」を決める場所なら、自然言語の指示書である CLAUDE.md に何を書くべきか、自動化の仕掛けである Claude Code の hooks でできること、外部の道具をつなぐ MCP サーバーの追加 と合わせて読むと、Claude Code を自分用に仕立てる全体像が掴めます。最新のアップデートは Claude Code 更新まとめ で追えます。

#Claude Code#開発ツール#リファレンス