Claude Code の settings.json とは、権限ルール・既定のモデル・環境変数などを JSON で書いておく設定ファイルです。 置き場所は 4 か所あり、同じキーが重なったときは「managed → コマンドライン → project local → shared project → user」の順で上にあるものが使われます。

この記事では、そのまま置ける settings.json の全文を用途別に 4 種類、公式リファレンスの 17 分類・243 キーの日本語一覧、権限ルールの書き方の対比表、設定が効かない時の確認手順をまとめました。雛形はすべて JSON の構文チェックと claude doctor を通した結果を載せています。

確認環境:Claude Code 2.1.292(Linux x64)、Python 3.11.15、git 2.43.0。仕様は 2026年10月7日に公式ドキュメント(code.claude.com/docs)を開いて確認しました。

settings.json の早見表

置き場所 適用範囲 向いている内容
~/.claude/settings.json(user) 自分・全プロジェクト 言語、既定モデル、自分用の権限ルール
.claude/settings.json(shared project) そのフォルダで作業する全員 チームの権限、フック、プロジェクトに必要な環境変数
.claude/settings.local.json(project local) 自分・このプロジェクトだけ 個人的な上書き、共有前の試し書き
managed-settings.json(managed) 組織が配布した全端末 セキュリティ方針、守るべきルール
claude --settings(コマンドライン) その 1 セッション 保存せずに値を試す
やりたいこと 書くキー 例
確認なしで実行させる permissions.allow "Bash(npm run test *)"
毎回確認させる permissions.ask "Bash(git push *)"
実行させない permissions.deny "Read(./.env)"
開始時の権限モードを変える permissions.defaultMode "plan"
日本語で応答させる language "japanese"
既定のモデルを決める model "sonnet"
環境変数を渡す env {"NODE_ENV": "development"}

ルールの判定順は deny → ask → allow で、最初に当たったものが結果になります。ルールの細かさは順番に影響しません。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「Claude Code settings.json設定一覧|権限の雛形と優先順位」

settings.json はどこに置くか

Claude Code をインストールしただけでは設定ファイルは作られません。自分で作るか、Claude Code が必要になった時点で書き出します(/config で変更したとき、権限の確認で「Yes, and don't ask again」を選んだときなど)。

スコープ ファイル 補足
user ~/.claude/settings.json Windows では %USERPROFILE%\.claude\settings.json
shared project .claude/settings.json git にコミットするとチームに届く
project local .claude/settings.local.json 手で作った場合は .gitignore に自分で追加する
managed(macOS) /Library/Application Support/ClaudeCode/managed-settings.json 組織が配布する
managed(Linux・WSL) /etc/claude-code/managed-settings.json 同上
managed(Windows) C:\Program Files\ClaudeCode\managed-settings.json 同上

このほかに ~/.claude.json というファイルもあります。こちらは Claude Code 自身が書き込むファイルで、サインイン情報、MCP サーバーの設定、フォルダの信頼状態、/config が書くグローバル設定キーが入ります。settings.json とは別物なので、権限ルールを書く場所ではありません。

設定ファイルは厳密な JSON です。// のコメントや末尾のカンマは構文エラーになり、次回起動時に Settings Error として表示されます。

そのまま置ける settings.json の雛形 4 種

4 つとも、不要なキーを消して値を書き換えれば使えます。$schema の行を入れておくと、VS Code などの JSON スキーマ対応エディタで補完と検証が効きます。

1. 個人用:~/.claude/settings.json

すべてのプロジェクトに効く自分用の設定です。読み取り専用の git コマンドを確認なしにし、push は毎回確認、鍵やクラウドの認証情報は読ませない構成です。

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "language": "japanese",
  "model": "sonnet",
  "autoUpdatesChannel": "stable",
  "cleanupPeriodDays": 30,
  "spinnerTipsEnabled": false,
  "permissions": {
    "defaultMode": "default",
    "allow": [
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git log *)"
    ],
    "ask": [
      "Bash(git push *)"
    ],
    "deny": [
      "Read(~/.ssh/**)",
      "Read(~/.aws/**)",
      "Read(//**/.env)"
    ]
  }
}

user 設定でパスを書くときは ~/ か // で始めます。 /secrets/** のようにスラッシュ 1 つで始めると、user 設定では ~/.claude/secrets/** を指すためです(後述の対比表を参照)。

2. チーム共有:.claude/settings.json

リポジトリのルートに置いてコミットするファイルです。lint・テスト・ビルドは確認なし、push とパッケージ追加は確認あり、秘密情報とマイグレーションには触れさせない構成です。

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test *)",
      "Bash(npm run build)",
      "Bash(git commit *)",
      "WebFetch(domain:docs.example.com)"
    ],
    "ask": [
      "Bash(git push *)",
      "Bash(npm install *)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Edit(./migrations/**)",
      "Bash(curl *)",
      "Bash(wget *)"
    ],
    "additionalDirectories": [
      "../shared-docs"
    ]
  },
  "env": {
    "NODE_ENV": "development"
  },
  "plansDirectory": "./plans",
  "respectGitignore": true
}

共有ファイルの allow と additionalDirectories は、各メンバーがそのフォルダを信頼(workspace trust)してから有効になります。 deny と ask は制限する側のルールなので、信頼の前から効きます。

3. 個人上書き:.claude/settings.local.json

チームの設定はそのままに、自分だけ値を変えたいときのファイルです。shared project より優先されます。

{
  "model": "opus",
  "spinnerTipsEnabled": false,
  "permissions": {
    "allow": [
      "Bash(npm run dev)",
      "Bash(docker compose ps)"
    ]
  },
  "env": {
    "LOG_LEVEL": "debug"
  }
}

4. 組織管理:managed-settings.json

管理者が各端末のシステムディレクトリに配布するファイルです。ここに書いた値は、user・project・local・--settings のどれからも上書きできません(一部の、より厳しい値を尊重するキーを除く)。

{
  "forceLoginMethod": "claudeai",
  "availableModels": [
    "opus",
    "sonnet"
  ],
  "enforceAvailableModels": true,
  "permissions": {
    "deny": [
      "Bash(curl *)",
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ],
    "disableBypassPermissionsMode": "disable"
  },
  "allowManagedPermissionRulesOnly": false,
  "requiredMinimumVersion": "2.1.150",
  "cleanupPeriodDays": 30,
  "companyAnnouncements": [
    "社内ガイドライン: https://docs.example.com/claude-code"
  ]
}

allowManagedPermissionRulesOnly を true にすると、権限ルールの出どころが managed 設定だけになり、利用者側の allow / ask / deny は使われなくなります。最初は false で配り、方針が固まってから切り替えると移行しやすくなります。

.gitignore に足す 1 行

.claude/settings.local.json を Claude Code が初めて書き出すときは、グローバルの git 除外ファイルに **/.claude/settings.local.json が自動で追加されます。手で作った場合は、次の行をリポジトリの .gitignore に足します。

# Claude Code: 個人用の設定はコミットしない
.claude/settings.local.json

追加後に git で確かめた結果です。settings.local.json だけが対象から外れ、共有する settings.json は残っています。

$ git check-ignore -v .claude/settings.local.json
.gitignore:3:.claude/settings.local.json    .claude/settings.local.json
$ git status --short -uall
?? .claude/settings.json
?? .gitignore

JSON の構文を確かめるスクリプト

置く前に構文を確かめる小さなスクリプトです。標準ライブラリだけで動きます。

import json, sys

for path in sys.argv[1:]:
    try:
        with open(path, encoding="utf-8") as f:
            data = json.load(f)
    except json.JSONDecodeError as e:
        print(f"NG  {path}: {e.lineno}行目 {e.colno}文字目 {e.msg}")
        continue
    perms = data.get("permissions", {})
    counts = ", ".join(f"{k}={len(perms.get(k, []))}" for k in ("allow", "ask", "deny"))
    print(f"OK  {path}: トップレベル {len(data)} キー / {counts}")

上の 4 つの雛形と、コメントと末尾カンマを入れた broken.json を渡した結果です。

$ python3 check_json.py user.settings.json project.settings.json local.settings.json managed-settings.json broken.json
OK  user.settings.json: トップレベル 7 キー / allow=3, ask=1, deny=3
OK  project.settings.json: トップレベル 5 キー / allow=5, ask=2, deny=6
OK  local.settings.json: トップレベル 4 キー / allow=2, ask=0, deny=0
OK  managed-settings.json: トップレベル 8 キー / allow=0, ask=0, deny=4
NG  broken.json: 2行目 3文字目 Expecting property name enclosed in double quotes

broken.json の中身は次のとおりで、2 行目のコメントで止まっています。

{
  // 個人用
  "language": "japanese",
}

permissions 配下の 7 キー

キー 型 内容
allow 配列 当てはまるツール利用を確認なしで許可する
ask 配列 当てはまるツール利用の前に必ず確認する
deny 配列 当てはまるツール利用をブロックする
defaultMode 文字列 新しいセッションを始めるときの権限モード
additionalDirectories 配列 作業ディレクトリの外に、ファイルアクセスできる場所を足す
blockReadsOutsideWorkingDirectories 真偽値 作業ディレクトリ外の読み取りを、どのモードでも断る
disableBypassPermissionsMode 文字列 "disable" で bypassPermissions モードに入れなくする

disableBypassPermissionsMode は真偽値ではなく文字列の "disable" を書きます。 true と書くと claude doctor が Invalid value. Expected one of: "disable" と知らせます(後の「設定が効かない時」に出力を載せています)。auto モードを外す disableAutoMode も同じく "disable" です。

additionalDirectories に書いたディレクトリはファイルアクセスだけが広がります。そのディレクトリの .claude/ にあるスキルや設定は読み込まれません。

defaultMode に書ける値

値 確認なしで進むもの 向いている場面
default 読み取りのみ 1 つずつ自分で確認したい作業
acceptEdits 読み取り、ファイル編集、mkdir・mv・cp など 差分を見ながら反復する作業
plan 読み取り(ソースは編集しない) 変更前にコードベースを調べる
auto すべて(分類器が背後で確認) 長いタスク、確認の回数を減らしたい時
dontAsk 読み取りと事前に許可したツール。確認が要るものは拒否 CI やスクリプト
bypassPermissions すべて 隔離したコンテナや VM の中だけ
  • default は画面上で Manual と表示され、v2.1.200 以降は manual という別名でも書けます。
  • auto と bypassPermissions は、project と local の設定ファイルに書いても効きません。 user か managed に書くか、claude --permission-mode <値> で 1 セッションだけ指定します。
  • v2.1.283 以降、対話型のターミナルと VS Code のセッションは auto モードで始まるのが組み込みの既定です。
  • deny ルールはどのモードでも効きます(bypassPermissions を含む)。allow ルールは bypassPermissions では意味を持ちません。
  • セッション中は Shift+Tab でモードを切り替えられます。

優先順位は 5 段

同じキーが複数の場所にあるとき、Claude Code はいちばん上の段で設定されている値を使います。

flowchart TB
    A["1. managed<br/>managed-settings.json・MDM・管理コンソール<br/>(組織)"]
    B["2. コマンドライン<br/>claude --settings<br/>(その 1 セッション)"]
    C["3. project local<br/>.claude/settings.local.json<br/>(自分・このプロジェクト)"]
    D["4. shared project<br/>.claude/settings.json<br/>(プロジェクトの全員)"]
    E["5. user<br/>~/.claude/settings.json<br/>(自分・全プロジェクト)"]
    A -->|上が優先| B --> C --> D --> E

環境変数はこの段には含まれません。 たとえばシェルで export した ANTHROPIC_MODEL はどのファイルの model より優先されますが、どちらが使われるかはキーと変数の組ごとに決まっています。設定ファイルの中の env ブロックは普通のキーなので、上の 5 段に従います。

配列はマージされる

permissions.allow のような配列のキーは、上の段が下の段を置き換えるのではなく、全部が合わさります。この記事の雛形 1〜3 を同時に置いた場合は次のようになります。

キー user project local 使われる値
model sonnet (なし) opus opus(上の段が優先)
spinnerTipsEnabled false (なし) false false
permissions.allow 3 件 5 件 2 件 10 件すべて
permissions.ask 1 件 2 件 0 件 2 種類(git push は両方にある)
permissions.deny 3 件 6 件 0 件 9 件すべて

ここから 2 つのことが言えます。

  • どこか 1 か所で deny されたものは、ほかの段の allow では通せません。 user の deny は project の allow より先に判定され、その逆も同じです。
  • local の allow は、project や managed の ask を上書きしません。 「Yes, and don't ask again」を選んだのにまた確認される場合は、上位のファイルに ask ルールがないかを見ます。

なお、モデルの並びを持つ fallbackModel は順番に意味があるためマージされず、いちばん上の段の配列がそのまま使われます。

権限ルールの書き方:広すぎる例と直した例

ルールは Tool または Tool(specifier) の形です。ツール名だけを書くと、そのツールの利用すべてに当たります。

ツール 広すぎる・意図とずれる書き方 直した書き方 理由
Bash Bash(git *) Bash(git log *) Bash(git diff *) 最初の * より前の語が範囲を決める。git * は全サブコマンドに当たる
Bash Bash(git * main) Bash(git log * main) * がサブコマンドの位置にあると git push origin main にも当たる
Bash Bash(ls*) Bash(ls *) 空白なしだと lsof にも当たる。空白ありなら ls と ls -la だけ
Bash Bash(devbox run *) Bash(devbox run npm test) 実行ラッパーは後ろの引数をそのまま実行するため、内側のコマンドまで書く
Bash Bash(curl http://github.com/ *) deny に Bash(curl *)、allow に WebFetch(domain:github.com) 引数で絞るルールは、オプションの位置や https で外れる
Read Read(/Users/alice/secrets/**) Read(//Users/alice/secrets/**) スラッシュ 1 つは設定ファイルの置き場所が基準。絶対パスは //
Read user 設定の Read(/secrets/**) Read(~/secrets/**) または Read(//**/secrets/**) user 設定の /path は ~/.claude/path を指す
Edit Write(docs/**) Edit(docs/**) ファイルの権限判定は Edit(path) と Read(path) だけを見る
Edit allow の Edit(src/**) Edit(**/src/**)(どの階層の src も対象にしたい時) allow では src/** は直下の src だけに当たる
WebFetch WebFetch(domain:*) WebFetch(domain:docs.example.com) domain:* は全ドメインに当たり、サンドボックスの到達先も広がる
WebFetch WebFetch(domain:*.example.com) だけ example.com も別に書く *.example.com はサブドメイン専用で、example.com 自体は含まない
MCP allow の mcp__* mcp__github__* や mcp__github__get_* allow では mcp__<サーバー名>__ まで書いた後だけワイルドカードが使える
MCP mcp__github__create_issue(title:*) mcp__github__create_issue mcp__ で始まるルールは丸かっこを付けると読み飛ばされる

パスの 4 つの書き方は次のとおりです。Read と Edit のルールは gitignore のパターン記法に従います。

書き方 基準になる場所 例
//path ファイルシステムのルート Read(//Users/alice/secrets/**)
~/path ホームディレクトリ Read(~/.zshrc)
/path 設定ファイルの置き場所 Edit(/src/**/*.ts)
path または ./path 現在のディレクトリ Read(./.env)

知っておくと設計しやすい点を 3 つ挙げます。

  • Bash のルールはコマンドの文字列に対して当てます。 Bash(rm *) を deny にしても、/bin/rm や bash -c 'rm ...' という書き方には当たりません。境界として確実に効かせたいものは、サンドボックス(sandbox キー)や PreToolUse フックと組み合わせます。
  • && や | でつないだコマンドは、部分ごとに判定されます。 Bash(safe-cmd *) を allow にしても safe-cmd && other-cmd は通りません。
  • Read の deny は Edit と Write も止めます。 同じパスへの新規作成も対象です。

設定キーの日本語一覧(17 分類・243 キー)

公式の設定リファレンスの索引(2026年10月7日時点)に載っている全キーを、分類ごとに並べました。

  • 型は、Claude Code 2.1.292 の claude doctor に型の合わない値を渡したときのメッセージ(Expected boolean など)と、公式リファレンスの記載から取っています。— は doctor がメッセージを出さなかったキーです。
  • 置けるファイルの「すべて」は user・shared project・project local・managed の 4 つを指します。~/.claude.json と書いたキーは settings.json ではなく ~/.claude.json に入ります。
  • 入れ子のキーは permissions.allow のようにドットで表しています。JSON では {"permissions": {"allow": [...]}} と書きます。

1. モデルと応答(Model and responses)

キー 型 置けるファイル 内容
advisorModel 文字列 すべて advisor ツールに答えるモデルを選ぶ
alwaysThinkingEnabled 真偽値 すべて false で拡張思考を全セッションでオフにする
availableModels 配列 すべて 選べるモデルを限定する
availableModelsMatch 文字列 managed availableModels のモデル ID を、書いた版だけに一致させる
deniedModels 配列 managed availableModels が許していても特定のモデルをブロックする
effortLevel 文字列 すべて 保存済みレベルのないモデルに使う既定の effort レベル
enforceAvailableModels 真偽値 すべて /model の Default も availableModels の範囲に収める
fallbackModel 配列 すべて 主モデルが混雑しているときに試す予備モデルの並び
fastMode 真偽値 すべて 利用できるセッションで fast モードをオンにする
fastModePerSessionOptIn 真偽値 すべて fast モードをセッションごとにオンにする運用にする
language 文字列 すべて 英語以外の言語で応答させる
maxEffortLevel 文字列 すべて effort レベルの上限を決める
model 文字列 すべて 起動時に使うモデルを変える
modelOverrides オブジェクト すべて モデル ID をプロバイダー側の ID(Bedrock の ARN など)に対応づける
modelPicker オブジェクト user / managed /model の一覧に出すモデル・順番・ラベルを決める
modelPricing オブジェクト managed 利用額を定価ではなく組織の契約単価で表示する
modelSettings オブジェクト すべて モデルごとに effort レベルや自動圧縮の幅を保存する
outputStyle 文字列 すべて 出力スタイル(役割・口調・形式)を選ぶ
promptCacheTtl 文字列 すべて メイン会話のプロンプトキャッシュの保持時間
showThinkingSummaries 真偽値 すべて 思考を折りたたまず要約で表示する
subagentPromptCacheTtl 文字列 すべて サブエージェントなどメイン会話以外のプロンプトキャッシュ保持時間
switchModelsOnFlag 真偽値 すべて 安全性の分類器がリクエストに印を付けたとき、自動でモデルを切り替えるか止まるか
ultracode 真偽値 すべて まとまったタスクごとに、頼まれなくてもワークフローを計画させる

2. 権限(Permission settings)

キー 型 置けるファイル 内容
allowManagedPermissionRulesOnly 真偽値 managed 権限ルールの出どころを managed 設定だけにする
autoMode オブジェクト user / managed auto モードの分類器に独自の allow / deny ルールを足す
autoMode.classifyAllShell 真偽値 user / managed allow ルールに合うものも含め、全シェルコマンドを分類器に通す
disableAutoMode 文字列(disable) すべて 権限モードの切り替えから auto モードを外す
permissions オブジェクト すべて allow / ask / deny ルールと開始時の権限モードをまとめて設定する
permissions.additionalDirectories 配列 すべて 作業ディレクトリの外にあるディレクトリへのファイルアクセスを足す
permissions.allow 配列 すべて 挙げたツール利用を確認なしで許可する
permissions.ask 配列 すべて 挙げたツール利用の前に必ず確認する
permissions.blockReadsOutsideWorkingDirectories 真偽値 すべて どの権限モードでも、作業ディレクトリ外の読み取りをファイルツールに断らせる
permissions.defaultMode 文字列(acceptEdits / auto / bypassPermissions / default / dontAsk / plan) すべて 新しいセッションを始めるときの権限モード
permissions.deny 配列 すべて 挙げたツール利用をブロックする(秘密情報ファイルの読み取りなど)
permissions.disableBypassPermissionsMode 文字列(disable) すべて bypassPermissions モードに入れないようにする
skipAutoPermissionPrompt 真偽値 user / managed 自分で初めて auto モードに入るときの一度きりの案内を省く
skipDangerousModePermissionPrompt 真偽値 user / local / managed bypassPermissions モードに入る前の確認ダイアログを省く
useAutoModeDuringPlan 真偽値 user / local / managed plan モード中のシェルコマンドを auto モードの分類器に確認させる

3. サンドボックス(Sandbox settings)

キー 型 置けるファイル 内容
sandbox オブジェクト すべて Bash コマンドをファイルシステムとネットワークから隔離する
sandbox.allowAppleEvents 真偽値 user / managed サンドボックス内のコマンドに Apple Events の送信を許す(macOS)
sandbox.allowUnsandboxedCommands 真偽値 すべて 止められたコマンドをサンドボックス外で再試行させるかどうか
sandbox.autoAllowBashIfSandboxed 真偽値 すべて サンドボックス内のコマンドを確認なしで実行する
sandbox.bwrapPath — managed PATH の外にある bubblewrap のパス
sandbox.credentials オブジェクト すべて サンドボックス内で認証情報のファイルと変数を隠す・マスクする
sandbox.credentials.allowPlaintextInject 真偽値 user / managed マスクした認証情報を平文 HTTP のサービスへ届ける
sandbox.credentials.awsPairs 配列 user / managed 独自名の AWS キー変数を 1 つの認証情報として再署名に使う
sandbox.credentials.envVars 配列 すべて サンドボックス内で環境変数を外す・マスクする
sandbox.credentials.files 配列 すべて サンドボックス内で認証情報ファイルの読み取りを止める・マスクする
sandbox.credentials.sigv4 オブジェクト user / managed ストリーミング・署名済み URL・SigV4A の AWS リクエストの扱い
sandbox.enableWeakerNestedSandbox 真偽値 すべて 権限のないコンテナの中で Linux サンドボックスを動かす
sandbox.enableWeakerNetworkIsolation 真偽値 すべて MITM プロキシ配下で gh・gcloud・terraform の TLS 検証を通す(macOS)
sandbox.enabled 真偽値 すべて Bash のサンドボックスをオンにする(macOS・Linux・WSL2)
sandbox.excludedCommands 配列 すべて サンドボックスの外で動かしてよいコマンド
sandbox.failIfUnavailable 真偽値 すべて サンドボックスが使えないときは起動を取りやめる
sandbox.filesystem オブジェクト すべて サンドボックス内のコマンドが読み書きできるパスを決める
sandbox.filesystem.allowManagedReadPathsOnly 真偽値 managed 組織がブロックした読み取りパスを開発者が開け直せないようにする
sandbox.filesystem.allowRead 配列 すべて denyRead の範囲内で読み取りを開け直す
sandbox.filesystem.allowWrite 配列 すべて 書き込めるパスを足す
sandbox.filesystem.denyRead 配列 すべて 特定パスの読み取りをブロックする
sandbox.filesystem.denyWrite 配列 すべて 特定パスへの書き込みをブロックする
sandbox.filesystem.disabled 真偽値 user / managed ネットワーク隔離は残してファイルシステム隔離だけオフにする
sandbox.ignoreViolations オブジェクト すべて 想定内のパス探索について違反の報告を出さない
sandbox.network オブジェクト すべて サンドボックス内のコマンドが届くホスト・ポート・ソケットを決める
sandbox.network.allowAllUnixSockets 真偽値 すべて すべての Unix ソケットへの接続を許す
sandbox.network.allowLocalBinding 真偽値 すべて ポートの待ち受けと localhost への接続を許す(macOS)
sandbox.network.allowMachLookup 配列 すべて iOS Simulator や Playwright などが XPC サービスに届くようにする(macOS)
sandbox.network.allowManagedDomainsOnly 真偽値 managed ネットワーク許可リストを managed 設定に固定する
sandbox.network.allowUnixSockets 配列 すべて 使ってよい Unix ソケットのパス(macOS)
sandbox.network.allowedDomains 配列 すべて 確認なしで届いてよいドメイン
sandbox.network.deniedDomains 配列 すべて 許可したワイルドカードの内側でも特定ドメインをブロックする
sandbox.network.httpProxyPort 数値 すべて サンドボックスの HTTP 通信を自前のプロキシに通す
sandbox.network.socksProxyPort 数値 すべて サンドボックスの SOCKS 通信を自前のプロキシに通す
sandbox.network.strictAllowlist 真偽値 user / managed 許可リスト外のホストを確認せずに拒否する
sandbox.network.tlsTerminate オブジェクト user / managed サンドボックスのプロキシで TLS を終端し、HTTPS リクエストを読めるようにする
sandbox.ripgrep オブジェクト user / managed サンドボックス内で使う ripgrep を指定する
sandbox.socatPath — managed PATH の外にある socat のパス

4. フックと自動化(Hooks and automation)

キー 型 置けるファイル 内容
allowManagedHooksOnly 真偽値 managed 組織が配布したフックだけを動かす
allowedHttpHookUrls 配列 すべて HTTP フックの送信先 URL を限定する
disableAllHooks 真偽値 すべて フック・独自ステータスライン・独自 @ 補完をまとめてオフにする
disableWorkflows 真偽値 すべて 動的ワークフローを全員に対してオフにする
enableWorkflows 真偽値 すべて プランの既定に対して動的ワークフローをオン・オフする
hooks オブジェクト すべて ライフサイクルの各時点で自前のコマンドをフックとして動かす
httpHookAllowedEnvVars 配列 すべて HTTP フックがヘッダーに入れられる環境変数を限定する
workflowKeywordTriggerEnabled 真偽値 すべて プロンプト中の ultracode という語でワークフローを始めるかどうか
workflowSizeGuideline 文字列(unrestricted / small / medium / large) すべて 動的ワークフローで目安にするエージェント数

5. MCP(MCP)

キー 型 置けるファイル 内容
allowAllClaudeAiMcps 真偽値 managed managed-mcp.json を配布していても claude.ai コネクタを読み込む
allowClaudeInChromeWithManagedMcp 真偽値 managed managed-mcp.json と併せて Claude in Chrome サーバーを動かす
allowManagedMcpServersOnly 真偽値 managed managed の MCP 許可リストだけを有効にする
allowedMcpServers 配列 すべて 利用者が追加できる MCP サーバーの許可リスト
deniedMcpServers 配列 すべて URL・コマンド・名前で特定の MCP サーバーをブロックする
disableClaudeAiConnectors 真偽値 すべて claude.ai コネクタを取得しないようにする
disabledMcpjsonServers 配列 すべて プロジェクトの .mcp.json のうち、指定したサーバーを拒否する
enableAllProjectMcpServers 真偽値 すべて プロジェクトの .mcp.json の全サーバーを確認なしで承認する
enabledMcpjsonServers 配列 すべて プロジェクトの .mcp.json のうち、指定したサーバーを承認する
managedMcpServers — managed 利用者が追加した分に加えて、リモート MCP サーバーを全員に配る

6. プラグインとスキル(Plugins and skills)

キー 型 置けるファイル 内容
allowedChannelPlugins 配列 managed メッセージを送れるチャンネルプラグインの許可リストを置き換える
appendPlugins — user / managed 利用者の mod の後に組織の mod を動かす
blockedMarketplaces 配列 managed プラグインマーケットプレイスの取得元をブロックする
channelsEnabled 真偽値 managed 組織でチャンネルを許可する
disableBundledSkills 真偽値 すべて 同梱のスキルとワークフローをオフにする
disableCommandPluginSources 真偽値 managed マーケットプレイス指定のコマンドで導入するプラグインをブロックする
disableSkillShellExecution 真偽値 すべて スキルとカスタムコマンドのインラインシェル実行を止める
enabledPlugins オブジェクト すべて プラグインを個別にオン・オフする
extraKnownMarketplaces オブジェクト すべて リポジトリや組織向けにマーケットプレイスを登録する
pluginConfigs オブジェクト user / managed プラグインの設定ダイアログへの回答を保存する
pluginSuggestionMarketplaces 配列 managed /plugin でインストール候補を出せるマーケットプレイスを選ぶ
pluginTrustMessage 文字列 managed プラグインの信頼確認に独自の文面を足す
prependPlugins — user / managed 利用者の mod の前に組織の mod を動かす
skillOverrides オブジェクト すべて SKILL.md を編集せずにスキルを隠す・たたむ
strictKnownMarketplaces 配列 managed 追加・インストールできるマーケットプレイスの許可リスト
strictPluginOnlyCustomization — managed ユーザー・プロジェクト由来のスキル・エージェント・フック・MCP サーバーをブロックする
strictPluginOnlyCustomization.agents — managed エージェントをプラグインと managed 由来だけにする
strictPluginOnlyCustomization.hooks — managed フックをプラグインと managed 由来だけにする
strictPluginOnlyCustomization.mcp — managed MCP サーバーをプラグインと managed 由来だけにする
strictPluginOnlyCustomization.skills — managed スキルをプラグインと managed 由来だけにする
syncClaudeAiPlugins 真偽値 user / local / managed claude.ai アカウントで有効なプラグインの読み込みと取得を止める
syncClaudeAiSkills 真偽値 user / local / managed claude.ai アカウントで有効なスキルの読み込みと取得を止める

7. メモリとコンテキスト(Memory and context)

キー 型 置けるファイル 内容
autoCompactEnabled 真偽値 すべて 自動コンパクション(会話の圧縮)のオン・オフ
autoCompactWindow — すべて コンテキストがどこまで埋まったら圧縮するかを決める
autoMemoryDirectory 文字列 すべて 自動メモリの保存先ディレクトリを指定する
autoMemoryEnabled 真偽値 すべて 自動メモリのオン・オフ
bashOutputMaxChars — すべて 成功したコマンド出力のうち Claude に直接渡す量を決める
claudeMd 文字列 managed 組織共通の CLAUDE.md の内容を managed 設定から差し込む
claudeMdExcludes 配列 すべて 読み込まない CLAUDE.md を指定する
env オブジェクト すべて 全セッションとその子プロセスに渡す環境変数
fileCheckpointingEnabled 真偽値 すべて /rewind で戻せるファイルスナップショットのオン・オフ
plansDirectory 文字列 すべて plan モードが計画ファイルを書く場所
skillListingBudgetFraction 数値 すべて スキル一覧に割くコンテキストの割合
skillListingMaxDescChars 数値 すべて スキル一覧での説明文 1 件あたりの文字数上限
taskOutputMaxChars — すべて v2.1.277 で削除済み

8. Git と帰属表示(Git and attribution)

キー 型 置けるファイル 内容
attribution オブジェクト すべて コミットと PR に付ける帰属表示をまとめて設定する
attribution.commit 文字列 すべて コミットに付くトレーラーを変更または非表示にする
attribution.pr 文字列 すべて PR 説明文の帰属表示を変更または非表示にする
attribution.sessionUrl 真偽値 すべて クラウド・Remote Control のコミットから claude.ai のセッションリンクを外す
includeCoAuthoredBy 真偽値 すべて 非推奨。帰属表示は attribution で設定する
includeGitInstructions 真偽値 すべて 組み込みのコミット・PR 手順をコンテキストから外す
prUrlTemplate 文字列 すべて PR リンクの行き先を社内のレビュー用ツールに変える

9. 画面とターミナル(Interface and terminal)

キー 型 置けるファイル 内容
askUserQuestionTimeout — user / managed 答えのない質問を一定時間後に自動で先へ進める
autoContinueAtUsageLimit 真偽値 user / managed 利用上限のリセット後に、開いたままのセッションで作業を自動再開する
autoScrollEnabled 真偽値 すべて フルスクリーン表示で新しい出力に追従してスクロールする
axScreenReader 真偽値 すべて スクリーンリーダー向けの出力にする
bashEditDiffEnabled 真偽値 user / managed Bash コマンドの実行中に変わったファイルを記録する
companyAnnouncements 配列 すべて 起動時に組織からのお知らせを表示する
defaultShell 文字列(bash / powershell) すべて ! で打つシェルコマンドを Bash と PowerShell のどちらで動かすか
dialogExpiry — user / managed Remote Control や SDK ホストに転送したダイアログの応答待ち時間
editorMode 文字列 すべて 入力欄で vim キーバインドを使う
emojiCompletionEnabled 真偽値 すべて 入力欄の :shortcode: 絵文字の候補と置換をオフにする
fileSuggestion オブジェクト すべて @ のファイル補完を自前のコマンドで返す
footerLinksRegexes — user / managed 出力中の課題番号などを入力欄の下でクリックできるリンクにする
keybindingFlavor — すべて 非推奨(効果なし)
maxProseWidth — すべて 広いターミナルで応答の文章幅を制限する
prefersReducedMotion 真偽値 すべて スピナーなどのアニメーションを減らす・止める
promptSuggestionEnabled 真偽値 すべて 入力欄に薄く出るプロンプト候補を隠す
respectGitignore 真偽値 すべて gitignore 対象のファイルを @ のファイル選択に出さない
respondToBashCommands 真偽値 すべて ! のシェルコマンド実行後に Claude が応答しないようにする
showClearContextOnPlanAccept 真偽値 すべて 計画の承認画面に「コンテキストをクリア」の選択肢を出す
showTurnDuration 真偽値 すべて 応答後の所要時間の表示を隠す
spellcheck — user / managed 入力欄のつづり間違いに下線を引く(スペルチェッカーは自分で導入)
spinnerTipsEnabled 真偽値 すべて 作業中のスピナーに出るヒントを隠す
spinnerTipsOverride — すべて スピナーのヒントを追加または置き換える
spinnerVerbs オブジェクト すべて 処理中に表示される動詞を追加または置き換える
statusLine オブジェクト すべて 入力欄の下のステータスラインを自前のコマンドで描く
subagentStatusLine オブジェクト すべて サブエージェントのタスク表示の行を自前のコマンドで書き換える
syntaxHighlightingDisabled 真偽値 すべて 差分とコードブロックの色付けをオフにする
terminalProgressBarEnabled 真偽値 すべて 対応ターミナルでの進捗バーを隠す
terminalTitleFromRename 真偽値 すべて /rename や --name でターミナルのタブ名を変えないようにする
theme 文字列 すべて 画面の配色テーマ(組み込みまたは独自)
timeFormat 文字列 すべて 時刻の表示形式(12 時間・24 時間・UTC・strftime 形式)
timeZone 文字列 すべて 時刻表示に使うタイムゾーン
tui 文字列(default / fullscreen) すべて フルスクリーン描画か従来の描画かを選ぶ
verbose 真偽値 すべて ツール出力を省略せず全部表示する(viewMode があればそちらが優先)
viewMode — すべて 毎回のセッションを default・verbose・focus のどの表示で始めるか
vimInsertModeRemaps — user / managed INSERT モードの 2 キー入力(jj など)を Escape に割り当てる
voice オブジェクト すべて 音声入力をオンにし、押し続け・タップの方式を選ぶ
voiceEnabled 真偽値 すべて 音声入力をオンにする(以前の単一キー形式)
wheelScrollAccelerationEnabled 真偽値 すべて フルスクリーン描画でのマウスホイール加速をオフにする

10. エージェント・セッション・worktree(Agents, sessions, and worktrees)

キー 型 置けるファイル 内容
agent 文字列 すべて 毎回のセッションを指定したサブエージェントとして始める
crossSessionInbound 文字列(accept / hold / refuse) すべて 別セッションからのメッセージを届ける・保留する・断るを選ぶ
disableAgentView 真偽値 すべて バックグラウンドエージェントとエージェントビューをオフにする
isolatePeerMachines 真偽値 すべて 別マシンの自分のセッションへメッセージを送る前に確認する
processWrapper 文字列 user / managed バックグラウンドプロセスを社内ランチャー経由で動かす(macOS・Linux)
teammateMode — すべて エージェントチームのメンバーの表示方法
worktree オブジェクト すべて git worktree の作り方をまとめて設定する
worktree.baseRef 文字列(fresh / head) すべて 新しい worktree をリモートの既定ブランチとローカル HEAD のどちらから切るか
worktree.bgIsolation — すべて バックグラウンドセッションに worktree なしで作業コピーを編集させる
worktree.sparsePaths 配列 すべて 各 worktree で必要なディレクトリだけをチェックアウトする
worktree.symlinkDirectories 配列 すべて 大きなディレクトリを複製せずシンボリックリンクにする

11. リモート・デスクトップ・通知(Remote, desktop, and notifications)

キー 型 置けるファイル 内容
agentPushNotifEnabled 真偽値 すべて Claude の判断でスマートフォンへプッシュ通知を送れるようにする
awaySummaryEnabled 真偽値 すべて ターミナルに戻ったときのセッション要約を出さない
disableArtifact 真偽値 すべて 非推奨。Artifact ツールのオフは enableArtifact を使う
disableDeepLinkRegistration 文字列(disable) すべて claude-cli:// ハンドラーを登録しない
disableDesktopLocalSessions — managed 端末上で動く Desktop の Code セッションをオフにする
disableRemoteControl 真偽値 すべて Remote Control を全面的にオフにする
enableArtifact 真偽値 すべて false で Artifact ツールをオフにする(どのファイルからもオンには戻せない)
inputNeededNotifEnabled 真偽値 すべて Claude が入力待ちのときにプッシュ通知を受け取る
preferredNotifChannel 文字列 すべて タスク完了の知らせをターミナルベルにするかデスクトップ通知にするか
remote.defaultEnvironmentId 文字列 すべて claude --cloud の既定のクラウド環境
remoteControlAtStartup 真偽値 すべて セッション開始時に Remote Control へ自動接続する
sshConfigs 配列 user / managed Desktop の環境ドロップダウンに SSH 接続を追加する
sshHostAllowlist — managed Desktop の SSH セッションが届くホストを限定する

12. 認証とプロバイダー(Authentication and providers)

キー 型 置けるファイル 内容
allowedProviders — managed 端末で使える API プロバイダーを限定する
apiKeyHelper 文字列 すべて API 認証情報を自前のコマンドで生成する
awsAuthRefresh 文字列 すべて 期限切れの Bedrock 認証情報を自前のコマンドで更新する
awsCredentialExport 文字列 すべて Bedrock 認証情報を自前のコマンドから JSON で渡す
forceLoginGatewayUrl — managed ログイン画面が接続するゲートウェイ URL
forceLoginMethod 文字列 すべて ログイン方法を claude.ai・Claude Console・クラウドゲートウェイに限定する
forceLoginOrgUUID 文字列 / 配列 すべて claude.ai のログイン先を自組織に固定する(強制できるのは managed)
gatewayInternalNetworks — managed 組織が内部利用するパブリック IPv4 帯のゲートウェイへ /login で届くようにする
gcpAuthRefresh 文字列 すべて Google Cloud の認証情報を自前のコマンドで更新する
otelHeadersHelper 文字列 すべて OpenTelemetry のヘッダーを自前のコマンドで生成する

13. プライバシーと記録の保持(Privacy and telemetry)

キー 型 置けるファイル 内容
cleanupPeriodDays 数値 すべて 会話記録(トランスクリプト)を何日保持してから削除するか
desktopSessionCleanupPeriodDays 数値 user / managed Claude Desktop と Cowork の会話記録の保持日数
feedbackDrafts 文字列(notify / quiet / off) user / managed フィードバックの下書きをレビュー用にためるかどうか
feedbackSurveyRate 数値 すべて セッション品質アンケートの表示頻度
skipWebFetchPreflight 真偽値 すべて Anthropic に届かないとき WebFetch のホスト名チェックを省く

14. 更新とバージョン(Updates and versioning)

キー 型 置けるファイル 内容
autoUpdatesChannel 文字列(latest / stable / rc) すべて 自動更新のリリースチャンネルを選ぶ
minimumVersion 文字列 すべて 自動更新でこの版より低い版を入れないようにする
requiredMaximumVersion 文字列 managed 組織が認める版より新しい版では起動しない
requiredMinimumVersion 文字列 managed 組織が求める版より前の版では起動しない

15. ツール(Tools)

キー 型 置けるファイル 内容
browserExternalPageTools — managed デスクトップ版 Browser ペインの外部ページで Claude のツールを使わせない
disableBrowserExternalNavigation — managed デスクトップ版 Browser ペインを localhost だけに限定する
disableMobileSimulatorTools — managed デスクトップ版 iOS Simulator ペインで Claude のツールをブロックする

16. グローバル設定(Global config settings)

キー 型 置けるファイル 内容
autoConnectIde — ~/.claude.json 外部ターミナルから起動中の VS Code / JetBrains へ自動接続する
autoInstallIdeExtension — ~/.claude.json VS Code ターミナルからの IDE 拡張の自動インストールを止める
claudeInChromeDefaultEnabled — ~/.claude.json セッション開始時に Chrome 連携をオンにする
copyFullResponse — ~/.claude.json /copy でコードブロック選択を出さず応答全体をコピーする
copyOnSelect — ~/.claude.json マウスで選択した文字列の自動コピーをオフにする
defaultToAgentsView — ~/.claude.json 引数なしの claude でエージェントビューを開く
diffTool — ~/.claude.json 変更案を VS Code / JetBrains の差分ビューで開くか、ターミナルに残すか
externalEditorContext — ~/.claude.json Ctrl+G で編集するとき、直前の応答をコメントとして表示する
leftArrowOpensAgents — ~/.claude.json ← でエージェントビューを開くショートカットをオフにする
permissionExplainerEnabled — ~/.claude.json v2.1.257 で削除済み
prStatusFooterEnabled — ~/.claude.json フッターの PR レビュー状況バッジをオフにする
teammateDefaultModel — ~/.claude.json v2.1.234 で削除済み

17. 組織向けの管理(Enterprise and managed settings)

キー 型 置けるファイル 内容
disableSideloadFlags 真偽値 managed プラグイン・サブエージェント・MCP サーバーを横から読み込む CLI フラグを拒否する
forceRemoteSettingsRefresh 真偽値 managed サーバー管理設定を取得し直すまで起動を待たせる
managedSourcesBehavior 文字列(first-wins / merge) managed 最優先の 1 つだけでなく、配布した managed ソースをすべて合成する
parentSettingsBehavior 文字列(first-wins / merge) managed SDK や IDE ホストが渡す制限を適用するか外すか
policyHelper オブジェクト managed 起動時に managed 設定を計算する実行ファイルを動かす
policyHelper.path — managed 動かすヘルパー実行ファイルのパス
policyHelper.refreshIntervalMs — managed ヘルパーをバックグラウンドで再実行する間隔
policyHelper.timeoutMs — managed ヘルパーの応答を待つ時間
wslInheritsWindowsSettings 真偽値 managed WSL に Windows 側のポリシーから managed 設定を読ませる

既定値が明記されているキーの例

設定していないキーの多くは「未設定」として扱われ、Claude Code やアカウントの既定の動きになります。公式リファレンスに既定値が明記されているものの例です。

キー 既定値 補足
availableModelsMatch "prefix" "exact" にすると書いた版だけに一致
enforceAvailableModels false availableModels が空のときは効果なし
fastModePerSessionOptIn false
showThinkingSummaries false
switchModelsOnFlag true 自動で切り替える
alwaysThinkingEnabled 未設定(思考はオン) false でオフ
model 未設定(アカウントの既定モデル) --model と ANTHROPIC_MODEL が優先
language 未設定 値は検証されず、そのまま指示として渡る
sandbox.autoAllowBashIfSandboxed true サンドボックス有効時

設定が効かない時の確認手順

まず /status を開き、Status タブの Setting sources の行で、どのファイルが読み込まれたかを見ます。次に claude doctor で、読み飛ばされた項目を確認します。

症状 考えられる理由 確認・対処
書いた値が使われない 上の段(別のファイル・--settings・managed)が同じキーを設定している 優先順位の 5 段を上から確認する
書いた値が使われない フラグや環境変数が上書きしている --model、ANTHROPIC_MODEL などを外して試す
defaultMode が効かない auto・bypassPermissions を project / local に書いている user か managed に移す、または --permission-mode を使う
ファイルごと読まれない JSON の構文エラー(コメント、末尾カンマ) 構文チェックをしてから claude doctor
一部のルールだけ効かない ルールの書式が合わず読み飛ばされた claude doctor の Invalid settings を見る
コミットしたのにメンバーに届かない そのキーが shared project では使われない種類 一覧の「置けるファイル」が「すべて」以外でないか見る
コミットした allow が効かない メンバーがフォルダをまだ信頼していない 信頼ダイアログを承認してもらう
許可したのにまた確認される 上位のファイルに ask ルールがある /permissions でルールと出どころを見る
/model の選択が次回に残らない ~/.claude/settings.json に書き込めない ファイルの書き込み権限、生成元のツールを確認する
組織の変更が届かない managed は保存時ではなく一定間隔で届く セッションを再起動して /status を見る
model を編集しても変わらない セッション開始時に 1 回だけ読まれるキー /model で切り替える

claude doctor の出力例

わざと書式の合わない値を入れた .claude/settings.json を用意しました。

{
  "permissions": {
    "defaultMode": "ask",
    "disableBypassPermissionsMode": true,
    "allow": [
      "mcp__*",
      "Bash(git * main)",
      "Write(docs/**)",
      "mcp__github__create_issue(title:*)",
      "bash(npm run *)",
      "Bash(npm run build"
    ],
    "deny": [
      "Bash(command:rm *)",
      "Raed(./.env)",
      "Glob(secrets/**)"
    ]
  },
  "cleanupPeriodDays": "30",
  "tui": "classic"
}

このフォルダで claude doctor を実行したときの Invalid settings の部分です(Claude Code 2.1.292)。

Invalid settings
- .claude/settings.json › permissions.allow: Invalid permission rule "mcp__*" was skipped: Wildcard tool name "mcp__*" is not supported in allow rules. An allow pattern must name the scope it widens — globs are permitted only in the tool position after a literal mcp__<server>__ prefix. Deny and ask rules accept wildcards anywhere
- .claude/settings.json › permissions.allow: Invalid permission rule "mcp__github__create_issue(title:*)" was skipped: MCP rules do not support patterns in parentheses. Use "mcp__github__create_issue" without parentheses, or use "mcp__github__*" for all tools
- .claude/settings.json › permissions.allow: Invalid permission rule "bash(npm run *)" was skipped: Tool names must start with uppercase. Use "Bash"
- .claude/settings.json › permissions.allow: Invalid permission rule "Bash(npm run build" was skipped: Malformed Tool(content) rule. Rules take the form Tool or Tool(content) and must end at the closing ")"; parentheses inside the content are literal
- .claude/settings.json › cleanupPeriodDays: Expected number, but received string
- .claude/settings.json › permissions.defaultMode: Invalid value. Expected one of: "acceptEdits", "auto", "bypassPermissions", "default", "dontAsk", "plan"
  Suggested fix: Valid modes: "acceptEdits" (ask before file changes), "plan" (analysis only), "bypassPermissions" (auto-accept all), or "default" (standard behavior)
- .claude/settings.json › permissions.disableBypassPermissionsMode: Invalid value. Expected one of: "disable"
  Suggested fix: Valid values: "disable"
- .claude/settings.json › tui: Invalid value. Expected one of: "default", "fullscreen"
  Suggested fix: Valid values: "default", "fullscreen"

読み取れることは次のとおりです。

  • 読み飛ばされるのはその項目だけで、ファイルの残りは有効なままです(Settings Warning の扱い)。
  • ツール名は大文字で始めます(bash ではなく Bash)。
  • defaultMode に ask という値はありません。確認しながら進めたいときは default です。
  • doctor の Invalid settings に出なかった Bash(git * main)、Write(docs/**)、Bash(command:rm *)、Raed(./.env)、Glob(secrets/**) は、公式ドキュメントでは起動時の警告の対象、または「受け付けるが判定には使われない」と説明されているものです。doctor に何も出なくても、対比表の書き方に合っているかは別に確かめると安心です。

雛形 1〜3 を同じ手順で置いたときは、Invalid settings の欄そのものが表示されませんでした。

よくある質問

Q. settings.json と CLAUDE.md はどう使い分けますか? A. 権限ルールは Claude Code 本体が強制するもので、モデルへの指示ではありません。CLAUDE.md やプロンプトの指示は Claude が何を試みるかに影響しますが、何が許可されるかは変えません。許可・禁止は settings.json、進め方の指示は CLAUDE.md に書きます。

Q. 編集したら再起動が必要ですか? A. 多くのキーは不要です。Claude Code は設定ファイルを監視していて、permissions や hooks の変更は実行中のセッションに反映されます。model や effortLevel のようにセッション開始時に 1 回だけ読むキーは、/model や /effort で切り替えます。

Q. 保存せずに 1 回だけ試したいときは? A. claude --settings '{"model": "opus"}' のように JSON かファイルパスを渡します。managed より下、設定ファイルより上の段として扱われ、どのファイルにも書き込まれません。

Q. チームの設定を自分だけ変えたいときは? A. .claude/settings.local.json に同じキーを書きます。project local は shared project より上の段なので、自分のセッションだけ値が変わります。ただし deny と ask は足し合わされるため、チームの deny を local の allow で外すことはできません。

まとめ

  • 置き場所は 4 つ+コマンドライン。優先順位は managed → コマンドライン → project local → shared project → user。
  • 配列(permissions.allow など)はマージされ、判定は deny → ask → allow の順。どこかの deny は、ほかの段の allow では通せない。
  • auto と bypassPermissions の defaultMode は user か managed に書く。project / local に書いても効かない。
  • パスは //(絶対)・~/(ホーム)・/(設定ファイル基準)・./(現在地) を使い分ける。
  • ファイル編集のルールは Edit(...)、MCP は mcp__サーバー名__ツール名 で書き、allow のワイルドカードはサーバー名の後ろだけ。
  • 効かないときは /status → claude doctor → /permissions の順に見る。
  • 手で作った .claude/settings.local.json は .gitignore に追加する。

参考・出典

確認日:2026年10月7日

  • Claude Code Docs: Settings files and precedence — https://code.claude.com/docs/en/settings
  • Claude Code Docs: Settings reference — https://code.claude.com/docs/en/settings-reference
  • Claude Code Docs: Example settings files — https://code.claude.com/docs/en/settings-example
  • Claude Code Docs: Configure permissions — https://code.claude.com/docs/en/permissions
  • Claude Code Docs: Choose a permission mode — https://code.claude.com/docs/en/permission-modes
  • Claude Code Docs: Deploy managed settings — https://code.claude.com/docs/en/managed-settings

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「Claude Code settings.json設定一覧|権限の雛形と優先順位」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?