設定・拡張

settings.jsonの設定が効かない問題場所・優先順位・チェックリスト

Claude Codeのsettings.jsonが効かないときの原因を整理。設定ファイルの場所と優先順位、~/.claude.json との違い、/status と /doctor での確認方法を解説します。

公的機関・公式資料などの一次情報と照合して作成しています。このサイトについて

settings.jsonの設定が効かない問題とは

Claude Code の設定(settings.json)が、効いていないように見える原因は、大きく3つに分かれます。ファイルが読み込まれていない、想定と違う場所から読み込まれている、別の設定に上書きされている、です。公式のデバッグ手順にも、この3つが原因の大半であると書かれています。

この記事では、設定が効かないときの確認の順番と、見落としやすい落とし穴を整理します。設定の中身ではなく、「読み込まれているか」を確かめるための手順です。

基本(設定の場所と優先順位)

公式の説明によると、設定は管理者、ユーザー、プロジェクト、ローカルの範囲で統合されます。管理者の設定がある場合は最初に適用されます。残りは、近い範囲が広い範囲を上書きし、順番はローカル、プロジェクト、ユーザーです。コマンドラインの引数や環境変数も、さらに上書きする層になります。

ファイル 範囲 備考
~/.claude/settings.json ユーザー全体 権限、フック、環境変数(env)はここに書く
プロジェクトの .claude/settings.json そのプロジェクト 共有する設定
プロジェクトの .claude/settings.local.json 自分だけのローカル 上の2つより優先される
~/.claude.json アプリの状態、画面の切り替え 権限・フック・env を書く場所ではない

特に注意したいのは、~/.claude.json と ~/.claude/settings.json が別のファイルだという点です。公式の表では、権限(permissions)、フック(hooks)、env を ~/.claude.json に書くと無視される、と明記されています。

具体例(効かない原因と直し方)

公式の「よくある原因」の表から、設定に関するものを選びました。

症状 原因 直し方
設定の値が無視される settings.local.json に同じキーがある ローカルの設定が優先される。どちらかをそろえる
全体に設定した権限やフックが無効 ~/.claude.json に書いた ~/.claude/settings.json に移す
MCP サーバーが settings.json に書いても出ない settings.json は mcpServers を読まない プロジェクトの .mcp.json に書く、または claude mcp add --scope user を使う
フックが動かない matcher が配列、小文字、別ファイルに定義 1つの文字列にする。複数を指定するときは縦線で区切る(下の例)。ツール名は大文字で始める(Bash、Edit など)
値が一部しか効かない 環境変数や引数が上書きしている /status で、有効な設定の取得元を確認する

フックの matcher で複数のツールを指定するときの書き方です。公式は縦線での区切りを案内しており、v2.1.191 以降はカンマ区切り("Edit,Write")も同じ意味になります。それより前の版では、カンマ区切りは何にも一致しません。

"matcher": "Edit|Write"

settings.jsonの設定が効かない問題の実践ステップ

  1. claude doctor(端末)または /doctor(Claude Code 内)で、不正な設定ファイルを探す。
  2. /status で、どの設定の取得元が有効か、管理設定が効いているかを確認する。
  3. JSON の書き方を確認する。カンマの抜けや余分なカンマ、引用符の誤りがないかを見る。
  4. 書いた場所が、想定の範囲(ユーザー、プロジェクト、ローカル)か確認する。
  5. 同じキーが、別の範囲に書かれていないか確認する。
  6. 環境変数が、設定を上書きしていないか確認する。
  7. 切り分けのため、claude --safe-mode で起動し、問題が消えるか確認する。

settings.jsonの設定が効かない問題の注意点

  • 設定ファイルを編集すると、実行中のセッションにも、少しの時間のあとで反映されます。再起動は通常不要です。古い版(v2.1.257 より前)では、セッション開始後に作った .claude/ フォルダの編集は検出されませんでした。
  • 組織の管理設定がある場合、それが優先され、ユーザー側の設定では変えられない項目があります。/status で確認できます。
  • 設定ファイルの場所は、バージョンで変わる可能性があります。公式の .claude ディレクトリの一覧を確認してください。
  • 完全にまっさらな状態で試したいときは、環境変数 CLAUDE_CONFIG_DIR に空のフォルダを指定して起動します。

settings.jsonの設定が効かない問題でよくあるミス

  • 設定を ~/.claude.json に書く。
  • プロジェクトとユーザーの両方に同じ設定を書き、どちらが効くか混乱する。
  • JSON の文法ミスで、ファイル全体が読み込まれていない。
  • 環境変数で同じ設定が固定されているのに、ファイルを直し続ける。

settings.jsonの設定が効かない問題のチェックリスト

  • claude doctor で、設定ファイルのエラーを確認したか。
  • /status で、有効な設定の取得元を確認したか。
  • 書いたファイルが、正しいファイル(settings.json)か確認したか。
  • 範囲ごとの優先順位を理解したか。
  • --safe-mode で、切り分けを試したか。

settings.jsonの設定が効かない問題のFAQ(よくある質問)

Q. 設定を変えたら、再起動が必要ですか。
A. 通常は不要です。公式は、保存後に少し遅れて反映されると説明しています。反映されなければ、再起動を試してください。

Q. プロジェクトの設定をチームで共有できますか。
A. プロジェクトの .claude/settings.json は共有用の設定です。個人用は settings.local.json に書きます。

Q. どの設定が効いているか、一覧で見られますか。
A. /status で、有効な設定の取得元が分かります。権限は /permissions で、解決後のルールを確認できます。

筆者の見解(settings.jsonの設定が効かない問題)

私見では、設定が効かないときに最初に疑うべきは「中身」ではなく「どのファイルに書いたか」です。特に ~/.claude.json と ~/.claude/settings.json は名前が似ているため、取り違えは誰にでも起こりうると考えます。次に見落としやすいのが、自分用の settings.local.json や環境変数が、共有の設定を黙って上書きしているケースで、チームで同じ設定を使っているのに一人だけ挙動が違うときは、まずここを確かめる価値があります。/status で取得元を見て、それでも分からなければ --safe-mode や空の CLAUDE_CONFIG_DIR で比べる、という順で進めると、設定を手探りで書き換えるより短時間で原因に届くと考えます。

settings.jsonの設定が効かない問題の関連項目

出典(一次情報)

本記事は一般的な情報の提供を目的としています。Claude Code の料金・利用上限・機能・エラーメッセージ・コマンドは頻繁に更新されるため、最新の内容は Anthropic の公式ドキュメントとお使いのバージョンで必ずご確認ください。契約・請求・セキュリティに関する判断は、公式サポートや社内の担当部門にご相談ください。「筆者の見解」は一つの考え方です。