Claude Codeの仕組み講座

区分2 仕事に合わせて組む★★

No.05 設定ファイルの置き場所

設定ファイルは「Claudeの動きを決める社内規程」です。置き場所が複数あるので最初は戸惑いますが、この単元は「どこに置くか」だけ分かれば十分です。区分2の入口なので、さらっと読んでください。
目次
  1. 第0章 前提知識
  2. 第1章 置き場所は大きく3つ
  3. 第2章 触る時のコツ
  4. 確認問題

第0章 前提知識

① settings.json :Claude Codeの動きを決める設定ファイル

たとえ話にします。 CLAUDE.md が「社員への口頭の指示書」だとすると、settings.json は「システムの設定画面」です。 CLAUDE.md はAIが読んで考えますが、settings.json はClaude Code本体が読んで、そのまま動きを変えます。

② CLAUDE.md との違い

誰が読む 何を書く
CLAUDE.md AI(読んで考える) 仕事のやり方・決まり
settings.json Claude Code本体(そのまま実行) 許可・フック・環境変数など

CLAUDE.md は毎回読まれる決まり。ただしAIへのお願いなので、絶対に外せない事は deny(No.04)かフック(No.06)で仕組みにする。つまり、「お願い」はCLAUDE.md、「必ずこうする」は設定ファイル、と覚えると迷いません。

第1章 置き場所は大きく3つ

① 3つの置き場所 必ず覚える

場所 効く範囲 チームへの共有
~/.claude/settings.json(ユーザー) 自分の全作業場 されない
.claude/settings.json(作業場用) その作業場だけ される(コミット=変更を履歴に記録して共有できる形にすれば)
.claude/settings.local.json(ローカル) その作業場の、自分だけ されない

選び方は「自分だけか、この作業場だけか」。毎日どこでも使う物はユーザー、その作業場に限る物は作業場用、自分の例外はローカルです。

② 優先順位 必ず覚える

同じ項目が複数あると、近い方が勝ちます。強い順に、ローカル → 作業場用 → ユーザーです(この上に、会社が配る「管理設定」と、起動時に渡す指定があります)。

ただし許可の一覧(permissions.allow など)のようなリストは、上書きではなく合体します。足し算になるので、片方を消さずに追加できます。

○ よくある勘違い:「作業場用の設定が自分の設定を消す」→ ×。リストは合体します
○ 関係する単元:No.04 許可と安全装置(許可はここに書かれます)

③ 何を書く所か さらっと

主に、許可(permissions)・フック(hooks、No.06)・環境変数(env。プログラムに渡す設定値)・使うモデルなどです。書き方はJSON({ } の中に「項目名: 値」を並べる書き方)で、1つ見るだけで十分です。

{
  "permissions": { "allow": ["Bash(git status)"] },
  "env": { "TZ": "Asia/Tokyo" }
}

「許可」と「環境変数」が1つずつ入っている例です。

第2章 触る時のコツ

① 自分の実物を読んでから 必ず覚える

あなたの環境では ~/.claude/settings.json にフックなどが入っていて、作業場の .claude/ にも設定があります。まず開いて、どの項目がどこにあるかを眺めるのが最短です。鍵(APIキー。外のサービスを使うための合言葉のような文字列)のような秘密は、作業場の共有ファイルに書きません。

② 「Yes, and don't ask again」の正体 深追いしない

許可の確認で「今後は聞かない」を選ぶと、Claude Code自身が .claude/settings.local.json に許可を書き足します。自分では書いていないのに設定が増えているのは、これです。

自分だけ=ユーザー、この作業場だけ=作業場用、この作業場の自分の例外=ローカル。近い物が勝つ。

確認問題

問1 「どの作業場でも、毎日自分が使うフックを入れたい」。どこに書く?

問2 ユーザー設定と作業場用の設定で、同じ項目に違う値が書いてあります。どちらが使われる?

出典:Claude Code 公式ドキュメント「Settings files and precedence」(https://code.claude.com/docs/en/settings 、旧 docs.claude.com から移転)/手元の ~/.claude/settings.json の構成