Claude Code settings.json設定を最適化する前に見直す4つのこと

Claude Code settings.json設定を最適化する前に見直す4つのこと

Claude Codeのsettings.json設定を最適化したいけれど、どこから触ればいいかわからない。そんな方に向けて、私が自分の設定ファイルを棚卸ししてわかったことをまとめます。

先に正直に書くと、この記事は「設定を変えて〇秒速くなった」という記録ではありません。速度は計測していません。ただ、棚卸ししてみると「待ち時間に関係しそうな設定」と「実は効いていない可能性がある設定」がはっきり見えてきました。

※仕様は2026年10月24日時点の公式ドキュメントと公開情報をもとにしています。私の環境はmacOS・Claude Code(CLIとDesktop併用)です。バージョン、モデル、プラン、OSによって挙動が変わる可能性があります。

結論:最適化の前に「何が効いているか」を確認する

一言で言えば、いきなり設定を足すより、今の設定が本当に効いているかを確認するのが先でした。

私の場合、見直す価値がありそうだったのは次の4つです。

1. 設定ファイルの場所と優先順位

2. 権限(確認ダイアログで止まる回数)

3. 思考量に関する設定

4. Hooks(決まったタイミングで動くコマンド)

順番に、実際の私の設定と一緒に紹介します。

見直し1:settings.jsonの場所と優先順位を確認する

Claude Codeの設定ファイルは複数あり、同じ項目が重複した場合は上にあるものが優先されます。

種類 場所 用途
組織の管理設定 OSごとの所定の場所 会社などが一括管理
コマンドライン設定 起動時の `–settings` など その回だけ一時的に変更
プロジェクト個人用 `.claude/settings.local.json` 自分だけの設定(共有しない)
プロジェクト共有用 `.claude/settings.json` チームで共有する設定
ユーザー設定 `~/.claude/settings.json` 全プロジェクト共通

ただし、許可ルールの一覧(`permissions.allow` など)は上書きではなく合算されるなど、例外もあります。

私の設定は、ほとんどがユーザー設定の `~/.claude/settings.json` に入っていました。どのファイルが読み込まれているかは、Claude Codeで `/status` を実行して確認できます。

見直し2:権限設定で「確認待ち」を減らす

Claude Codeの待ち時間には、AIの処理だけでなく私が確認ボタンを押すまでの時間も含まれます。作業中に席を外して戻ったら、確認ダイアログで止まっていた。これが一番もったいない待ち時間です。

私の設定では、ファイルの読み書き(`Read` / `Write` / `Edit`)を `allow` に入れ、ユーザー設定の `permissions.defaultMode` を `auto` にしていました。確認ダイアログの回数を減らす方向の設定です。

ただし、注意点があります。

  • `auto` モードでも、すべての操作が個別に安全審査されるわけではありません。許可ルールに一致する操作は、そのまま実行されることがあります
  • `auto` モードは、モデルや接続先、管理設定などの条件によって使えない場合があります
  • 何でも許可する `bypassPermissions` は、安全性が大きく下がります。私は使っていません

許可の範囲は、必要なものに絞るのがおすすめです。逆に、`.env` のような秘密情報のファイルは `deny` に `Read(./.env)` のように書いて読ませない設定ができます。ただし、これですべての経路からのアクセスを防げる保証はありません。

見直し3:「効いていない設定」を探す

棚卸しで一番の発見はここでした。

私の `env` には、思考に使うトークン量を決める `MAX_THINKING_TOKENS` が入っていました。てっきり「これで思考量を抑えている」と思っていました。

ところが公式ドキュメントを確認すると、最近のモデルで使われている適応型の思考(考える量をモデルが自分で調整する仕組み)では、この変数に正の値を入れても上限としては使われないようです(`0` で思考を無効にする使い方など、モデルによって例外はあります)。

今、思考量を調整する主な方法は effort(思考の深さ) です。対応バージョンなら `/effort` で現在の値と選べる値を確認できます。簡単な作業でeffortを下げて試し、回答の質と待ち時間を比べてみるのが現実的だと思います。

もう1つ、`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` を `50` にしていました。自動要約(compact)用のウィンドウが50%埋まった時点を目安に、早めに要約を走らせる指定です(適用されるセッションには条件があります)。ただ、これが私の環境で実際に反映されているか、速度にどう影響しているかは、まだ確認できていません。

仕様の詳細は公式ドキュメントの「Claude Code settings」「Environment variables」で確認できます(英語)。

コストを抑える設定全般は「Claude Codeのコストを節約する実践テクニック」にまとめています。

見直し4:Hooksがどのタイミングで動くか確認する

Hooksは、指定したイベントと条件に一致したときに動くコマンドです。たとえば、イベント `PreToolUse`(ツール実行前)に条件 `matcher: “Bash”` を組み合わせると、Bashを実行する前に毎回動きます。

私の設定には、次の2つが残っていました。

  • `PreToolUse` × `Bash`:Bashを実行する前に、警告メッセージを出すHook
  • `PostToolUse` × `Write|Edit`:ファイルを書き換えたあとに、macOSの通知を出すHook

1回あたりは一瞬です。でも、1回の作業でファイルを何十回も編集すれば、通知も何十個も届く計算になります。速度というより、集中が途切れる原因になりそうだと気づきました。

今は「本当に毎回必要か」を基準に、残すか消すかを検討中です。

自分の設定を点検するプロンプト

settings.jsonを手で読むのが大変なら、Claude Code自身に点検してもらうのが早いです。チャット欄に次のプロンプトを貼ってみてください。


Claude Codeの設定ファイルを点検して、最適化の候補を提案してください。

目的:待ち時間に関係しそうな設定と、今のバージョンでは効いていない可能性がある設定を見つけたい
対象:~/.claude/settings.json と、今いるプロジェクトの .claude/settings.json と .claude/settings.local.json(存在するものだけ)

お願いしたいこと:
1. 使っているClaude Codeのバージョンとモデル、/status で見える設定の読み込み元を確認してください(取得できない情報は確認事項として列挙してください)
2. 各設定項目が何をするものか、1行ずつ説明してください
3. 「待ち時間に関係しそう」「効いていない可能性がある」「安全面で気になる」に分類してください
4. 根拠にした公式ドキュメントのURLを添えてください。確認できない仕様は「未確認」と書いてください
5. 変更案があれば、変更前と変更後の差分を表示してください

守ってほしいこと:
- 今回は読み取りと提案までにしてください。私が変更内容を明示的に承認するまで、ファイルの編集・上書き・削除はしないでください
- 変更するときは、事前に対象ファイル、差分、影響範囲を表示し、バックアップの保存先と元に戻す手順も示してください
- APIキーやトークンなどの値は、差分やコマンド出力でも伏せ字にしてください
- 不明点は推測せず、確認事項として列挙してください

今回の棚卸しも、Claude Codeに設定ファイルを読ませて、項目ごとに公式ドキュメントと照らし合わせるところから始めました。

まとめ

  • Claude Codeの設定ファイルは複数あり、優先順位と例外がある
  • 待ち時間には「確認ボタンを押すまでの時間」も含まれる。権限設定はここに関係する
  • `MAX_THINKING_TOKENS` のように、今のモデルでは期待どおりに効いていない可能性がある設定がある
  • 思考量の調整は、まず `/effort` で現在の値を確認する
  • 設定を変えるときは、差分とバックアップを確認してから

設定は一度書いたら放置しがちです。Claude Codeはアップデートが頻繁なので、数か月に一度の棚卸しをおすすめします。私も、Hooksと環境変数を整理したら改めて報告するつもりです。

なお、Claude Codeを使った学習Webアプリも公開準備中です(app.maahsachi.com 予定)。公開したらこのブログでお知らせします。

maah

この記事を書いた人

maah

非エンジニア。日々の業務にClaudeを取り入れた実体験を、初心者の目線で発信しています。