Claude Code 設定|settings.jsonの場所・優先順位・permissionsの書き方

Claude Code 設定|settings.jsonの場所・優先順位・permissionsの書き方

公式ドキュメント・公式発表などの一次情報を確認したうえで、株式会社Nexaが執筆・更新しています。AIツールの仕様や料金は変わることがあるため、導入判断の前に各公式サイトの最新情報もご確認ください。運営会社について

Claude Code の設定ファイル(settings.json)は4種類あります。個人用は ~/.claude/settings.json、チーム共有用は .claude/settings.json、自分だけの上書き用は .claude/settings.local.json、組織が配布するものが管理設定です(2026年9月27日に公式ドキュメントで確認)。

  • 優先順位: 高い順に、管理設定 → コマンドライン引数 → ローカル → プロジェクト → ユーザー。permissions.allow のような配列は上書きされず、各ファイルの内容が結合されます
  • permissions: deny → ask → allow の順に評価され、最初に一致したルールが適用されます。deny に一致した操作は、ほかのファイルの allow では許可できません
  • 権限モード: default(Manual)・acceptEdits・plan・auto・dontAsk・bypassPermissions の6種類。v2.1.283以降、対話型のターミナルとVS Codeでは auto が開始時の既定です

対象: Claude Code の設定ファイルの場所と書き方を確認したい開発者・情報システム担当者

今日やること: Claude Code 内で /status を実行して読み込まれている設定ファイルを確認し、~/.claude/settings.json に .env の読み取りを拒否するルールを追加する

この記事の著者
株式会社Nexa 代表取締役川島 陸

一橋大学経済学部卒業後、フォーティエンスコンサルティング株式会社(旧 株式会社クニエ)にて法人向けAI導入支援等を経験。独立後、AI系メディア運営やDify/n8nの導入支援を経て、株式会社Nexaを創業。法人向けAI研修・AI導入支援・AI関連メディア運営を手掛ける。

Claude Code の設定は、settings.json という名前のJSONファイルに書きます。置く場所によって、設定が効く範囲が変わります。自分のすべてのプロジェクトに効かせるなら ~/.claude/settings.json、チームで共有するならプロジェクトの .claude/settings.json、自分だけの上書きなら .claude/settings.local.json です。

この記事では、設定ファイルの場所と優先順位、最小の記述例、permissions(allow/ask/deny)の書き方、権限モード、環境変数、よく使う設定項目を順に説明します。キー名・既定値・ファイルの場所は、2026年9月27日にAnthropic公式ドキュメントを開いて確認しました。バージョンによって動作が変わった項目には、該当するバージョン番号を併記しています。

確認を省略する bypassPermissions モードの使い方と注意点は、Claude Code権限設定|bypassPermissionsの安全な使い方で扱っています。この記事では、設定ファイル全体の仕組みと書き方を扱います。

設定ファイルの場所と優先順位(早見表)

Claude Code は4種類の設定ファイルを読み込みます。どのファイルに書くかで、その設定が誰のどのプロジェクトに効くかが決まります。

スコープ ファイルの場所 効く範囲 向いている内容
ユーザー ~/.claude/settings.json 自分だけ。このマシンのすべてのプロジェクト テーマ、既定のモデル、自分用の権限ルール
プロジェクト(共有) .claude/settings.json そのフォルダで作業する全員。gitにコミットして共有する チームの権限ルール、フック、プラグイン、プロジェクトに必要な環境変数
ローカル .claude/settings.local.json 自分だけ。そのプロジェクトのみ 個人用の上書き、共有する前の試験
管理設定(Managed settings) managed-settings.json、MDMのポリシー、claude.ai の管理コンソール 組織が配布した全員。利用者の設定では上書きできない(一部の例外を除く) セキュリティポリシー、コンプライアンス要件

表の ~/.claude はホームディレクトリにある .claude フォルダ、.claude だけのものはプロジェクトの中の .claude フォルダを指します。

  • Windowsの場合: ~/.claude は %USERPROFILE%\.claude です
  • 保存場所を変えたい場合: 環境変数 CLAUDE_CONFIG_DIR を設定すると、設定・セッション履歴・プラグインの保存先が変わります
  • インストール直後はファイルがない: Claude Code をインストールしても設定ファイルは作られません。/config でテーマなどの項目を変えると ~/.claude/settings.json が、権限の確認で「Yes, and don’t ask again」を選ぶと .claude/settings.local.json が作られます。自分で作成してもかまいません
  • ~/.claude.json は別のファイル: サインイン情報、MCPサーバーの設定、プロジェクトごとの状態などを Claude Code 自身が書き込むファイルです。手で編集する必要はありません

管理設定ファイルの場所(OS別)

管理設定は、組織の管理者が配布する設定です。ファイルで配布する場合の場所は次のとおりです。

OS ファイルの場所
macOS /Library/Application Support/ClaudeCode/managed-settings.json
Linux・WSL /etc/claude-code/managed-settings.json
Windows C:\Program Files\ClaudeCode\managed-settings.json

Windowsの旧パス C:\ProgramData\ClaudeCode\managed-settings.json は読み込まれません。ファイル以外に、MDM(macOSの構成プロファイル、Windowsのレジストリ)や、claude.ai の管理コンソールから配信するサーバー管理設定でも配布できます。自分に管理設定が適用されているかは、Claude Code 内で /status を実行し、Setting sources の行で確認します。

優先順位(高い順)

同じキーが複数の場所で設定されている場合、Claude Code は最も上位の値を使います。

  1. 管理設定: 組織が配布する設定。利用者のファイルや --settings では上書きできません
  2. コマンドライン引数: claude の起動時に渡すフラグ。そのセッションだけに効きます
  3. ローカル設定(.claude/settings.local.json)
  4. プロジェクト設定(.claude/settings.json)
  5. ユーザー設定(~/.claude/settings.json)

たとえばチームの .claude/settings.json がある値を設定していても、自分の .claude/settings.local.json に同じキーを書けば、自分のセッションだけ上書きできます。管理設定が決めている値は上書きできません。

  • 配列は結合される: permissions.allow のような配列のキーを複数のファイルに書くと、どれか1つが選ばれるのではなく、すべての内容が結合されます
  • 環境変数はこの順位に含まれない: シェルの環境変数と設定キーのどちらが使われるかは、キーごとに決まっています。たとえばシェルで設定した ANTHROPIC_MODEL は、どのファイルの model よりも優先されます
  • env ブロックは通常のキー: 設定ファイルの中の env は、上の優先順位に従います

ポイント: ローカル設定はプロジェクト設定より上位です。チームの設定を変えずに自分だけ値を変えたいときは、ローカル設定に書きます。

settings.jsonの最小の記述例と、変更を確認する方法

最初に書く内容としては、よく使うコマンドの許可と、機密ファイルの読み取り拒否の2つで十分です。次の例は公式ドキュメントに掲載されているもので、lint とテストのコマンドを確認なしで実行させ、.env ファイルを読ませないようにします。~/.claude/settings.json に保存します。

{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test *)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)"
]
}
}
  • 厳密なJSONで書く: // で始まるコメントや末尾のカンマは構文エラーになります。エラーがあると、次に起動したときに Settings Error として表示されます
  • $schema の行: VS Code や Cursor など、JSONスキーマに対応したエディタで補完と検証が効くようになります。スキーマは最新のリリースより遅れることがあるため、新しいキーに警告が出ても設定が無効とは限りません

設定を変える3つの方法

方法 内容 保存されるか
/config メニュー テーマ、エディタモード、詳細出力など、個人向けの一部の項目を選んで変更する。/config verbose=true のように直接指定もできる 保存される(多くは ~/.claude/settings.json)
設定ファイルを編集 対象のスコープのファイルをエディタで開き、キーを追加・変更する 保存される
起動時に指定 claude --settings '{"model": "opus"}' のようにJSONかファイルのパスを渡す。--model などキー専用のフラグや環境変数も使える 保存されない(そのセッションのみ)

/config に表示されるのは一部の項目だけで、すべてのキーは出てきません。permissions や env は設定ファイルを編集します。また /config はターミナル用の機能で、VS Code のチャットパネルとデスクトップアプリでは開けません。

変更が反映されるタイミング

Claude Code は設定ファイルを監視していて、保存すると実行中のセッションにも再読み込みされます。permissions や hooks の変更は、再起動しなくても反映されます。

  • セッション開始時だけ読み込まれるキー: model、effortLevel、modelSettings。作業中に変えるときは /model や /effort を使います
  • 管理設定: サーバー管理設定は起動時に取得され、1時間ごとに確認されます。MDMのポリシーは起動時に読み込まれ、30分ごとに変更が確認されます

読み込まれた設定を確認する

Claude Code 内で /status を実行すると、Status タブの Setting sources の行に、読み込まれた設定ファイルが User settings や Project local settings のように表示されます。この行で分かるのは「どのファイルが読み込まれたか」までで、各キーの値がどのファイルから来たかは表示されません。設定ファイルの中で無効として除外された項目は、ターミナルで claude doctor を実行すると確認できます。

permissions(allow/ask/deny)の書き方

permissions は、Claude Code が確認なしで実行してよい操作、毎回確認する操作、禁止する操作を決めるキーです。3つの配列にルールを書きます。

キー 動作
allow 一致した操作を、確認なしで実行する
ask 一致した操作を、実行前に必ず確認する。acceptEdits や bypassPermissions のモードでも確認が出る(dontAsk モードでは拒否される)
deny 一致した操作を拒否する。すべての権限モードで有効
{
"permissions": {
"allow": ["Bash(npm run *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)"]
}
}

ルールは deny → ask → allow の順に評価され、最初に一致したものが適用されます。ルールの細かさは順序に影響しません。たとえば deny に Bash(aws *) があると、allow に Bash(aws s3 ls) を書いても拒否されます。allow で deny の例外を作ることはできません。

この関係はファイルをまたいでも同じです。ユーザー設定で許可していても、プロジェクト設定で拒否されていれば拒否されます。逆に、ユーザー設定の deny はプロジェクト設定の allow より先に評価されます。

ルールの構文

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

ルール 一致する操作
Bash すべてのBashコマンド
Bash(npm run build) npm run build と完全に一致するコマンド
Bash(npm run *) npm run で始まるコマンド
Read(./.env) カレントディレクトリの .env の読み取り
Edit(/src/**/*.ts) プロジェクト設定に書いた場合、作業ディレクトリの src/ 以下にある .ts ファイルの編集
WebFetch(domain:example.com) example.com への取得リクエスト
mcp__puppeteer__* puppeteer というMCPサーバーのすべてのツール
Agent(Explore) Explore サブエージェントの呼び出し

Bashルールのワイルドカード

  • * は任意の文字列に一致する: スペースを含む文字列にも一致します。* のないルールは、1つのコマンドと完全に一致したときだけ適用されます
  • * はサブコマンドの後ろに置く: Bash(git log *) は git log のコマンドだけを許可し、Bash(git *) はすべてのgitコマンドを許可します。Bash(git * main) のようにサブコマンドより前に * を置いた allow ルールには、起動時に警告が出ます
  • スペースの有無で意味が変わる: Bash(ls *) は ls と ls -la に一致し、lsof には一致しません。Bash(ls*) は lsof にも一致します
  • :* は末尾の * と同じ: Bash(ls:*) は Bash(ls *) と同じコマンドに一致します
  • 複合コマンドは分けて評価される: &&、||、;、| などで区切られたコマンドは、それぞれがルールに一致する必要があります。Bash(safe-cmd *) を許可しても、safe-cmd && other-cmd は許可されません

注意: Bashのルールは、Claude が書いたコマンドの文字列と照合されます。deny に Bash(curl *) を書いても、/usr/bin/curl や sh -c 'curl …' のように書かれたコマンドには一致しません。Bashの deny ルールだけに頼らず、後述のサンドボックスと組み合わせます。

Read・Editルールのパスの書き方

Read と Edit のルールは、gitignore と同じパターンの書き方を使います。先頭の書き方で、パスの起点が変わります。

書き方 意味 例
//path ファイルシステムのルートからの絶対パス Read(//Users/alice/secrets/**)
~/path ホームディレクトリからのパス Read(~/Documents/*.pdf)
/path そのルールを書いた設定ファイルに対応するディレクトリからのパス Edit(/src/**/*.ts)
path または ./path カレントディレクトリからの相対パス Read(*.env)
  • 先頭のスラッシュ1つは絶対パスではない: /Users/alice/file と書いても絶対パスにはなりません。絶対パスは //Users/alice/file と書きます
  • ユーザー設定の /path の起点は ~/.claude: ユーザー設定に Read(/secrets/**) と書くと、対象は ~/.claude/secrets/** になります。すべてのプロジェクトに効かせたいルールは、// か ~/ で書きます
  • ファイルの権限は Read(パス) と Edit(パス) で判定される: Write(docs/**) のようなパスつきのルールは受け付けられますが、判定には使われません(v2.1.210以降は起動時に警告が出ます)。代わりに Edit(docs/**) と書きます

「Yes, and don’t ask again」の保存先

権限の確認で「Yes, and don’t ask again」を選ぶと、Bashコマンドや WebFetch のドメインの許可は、allow ルールとして .claude/settings.local.json に保存されます。v2.1.211以降、保存先はgitリポジトリのルートにあるファイルで、サブディレクトリやワークツリーから起動したセッションにも適用されます(gitリポジトリの外やWindowsなど、一部の場合を除きます)。ファイル編集の許可はファイルには保存されず、セッションが終わるまで有効です。

プロジェクト設定の allow は、フォルダを信頼してから有効になる

プロジェクトの .claude/settings.json に書いた permissions.allow と permissions.additionalDirectories は、そのフォルダの信頼を確認するダイアログで承認した後に適用されます。権限を広げる設定だからです。deny と ask は制限するだけなので、信頼の有無にかかわらずすぐに適用されます。

現在のルールと、各ルールがどの設定ファイルから来ているかは、Claude Code 内で /permissions を実行すると一覧できます。


AI導入に関するお困りごとは、株式会社NexaのAI顧問がサポートします。「何から始めればいいか分からない」という段階からご相談いただけます。

AI顧問の無料相談はこちら →


機密情報を守るdeny設定のベストプラクティス

APIキーや秘密鍵を含むファイルは、deny に Read ルールを書いて読み取りを拒否します。公式ドキュメントによると、deny に一致したファイルは、ファイルの探索と検索結果から除外され、読み取りが拒否され、Edit と Write のツールによる書き込みも止められます。

最初に設定しておきたいdenyルール

{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Read(~/.ssh/**)",
"Read(~/.aws/credentials)",
"Bash(curl *)"
]
}
}

./ で始まるルールはカレントディレクトリからの相対パスなので、~/.claude/settings.json に書けば、どのプロジェクトでも、そのプロジェクトの .env が対象になります。Bash(curl *) は外部への送信に使われやすい curl を止める例で、業務で curl を使う場合は外してください。

ポイント: deny はすべての権限モードで有効です。bypassPermissions モードでも、deny に一致した操作は実行されません。

denyルールで防げる範囲と、防げない範囲

対象 Read/Edit の deny が効くか
Claude の組み込みのファイルツール(Read、Edit、Write、Grep、Glob) 効く(NotebookEdit は Read の deny の対象外)
Bashで Claude Code が認識するファイル操作コマンド(cat、head、tail、sed、tee など) 効く
Bashのリダイレクト(> file、< file)の対象 効く
ファイル名を指定せずに読むコマンド(grep -r pattern . など) 効かない
自分でファイルを開くスクリプト(PythonやNodeのスクリプトなど) 効かない

Read の deny は、同じパスへの Edit と Write による書き込みも止めますが、NotebookEdit は対象になりません。どのツールにも変更させたくないパスには、Edit(パス) の deny も追加します。

すべてのプロセスに対してOSのレベルで読み書きを止めるには、サンドボックスを有効にします。設定ファイルでは sandbox.enabled を true にします(既定は false)。サンドボックスを有効にすると、Read の deny に書いたパスは、サンドボックス内で実行されるコマンドからも読めなくなります。

{
"sandbox": {
"enabled": true
}
}

作業ディレクトリの外を読ませない設定

permissions.blockReadsOutsideWorkingDirectories を true にすると、作業ディレクトリの外にあるパスを Read、Grep、Glob などのツールで読めなくなります。bypassPermissions を含むすべての権限モードで有効です。v2.1.257以降で使えます。どれか1つの設定ファイルで true になっていれば適用されるため、リポジトリにコミットした設定で有効にできますが、自分で有効にした設定をリポジトリ側から解除することはできません。

additionalDirectories(アクセス許可フォルダの追加)

Claude Code は、既定では起動したディレクトリの中のファイルにアクセスできます。別のフォルダのファイルも扱わせたい場合は、additionalDirectories に追加します。

{
"permissions": {
"additionalDirectories": ["../docs/"]
}
}
  • 1回だけ追加する場合: 起動時の --add-dir <パス> か、セッション中の /add-dir を使います
  • 追加されるのはファイルへのアクセスだけ: 追加したフォルダにある .claude/ の設定の大半は読み込まれません
  • プロジェクト設定に書いた場合: allow ルールと同じく、フォルダを信頼した後に有効になります

企業での情報管理の考え方は、Claude Code セキュリティ完全ガイドとClaude Code情報漏洩対策|企業向け安全運用ガイドで説明しています。

権限モード6種類とdefaultModeの設定

権限モードは、Claude がどの操作を確認なしで実行できるかの基準を決めるものです。ルール(allow/ask/deny)は、この基準の上に重ねて適用されます。

モード(設定値) 確認なしで実行されるもの 向いている場面
default 読み取りのみ すべての操作を自分で確認したい作業、機密性の高い作業
acceptEdits 読み取り、ファイル編集、mkdir・touch・mv・cp などの一般的なファイル操作コマンド 変更を後から差分で確認しながら進める作業
plan 読み取り(auto モードが使える場合は、分類器が承認したコマンドも) 変更の前にコードを調べて計画を立てる
auto すべて(バックグラウンドで安全性の確認が入る) 長い作業、確認の回数を減らしたい場合
dontAsk 読み取りと、事前に許可したツールのみ。確認が必要な操作は拒否される CIやスクリプトなど、制限を固定した環境
bypassPermissions すべて 隔離されたコンテナやVMのみ

default は、CLI・VS Code と JetBrains の拡張機能・デスクトップアプリでは「Manual」と表示されます。v2.1.200以降は、設定値として manual という別名も使えます。

開始時のモードの決まり方

ターミナルで新しいセッションを始めるとき、Claude Code は次の順で最初に該当したものを使います。

  1. --permission-mode フラグ(または --dangerously-skip-permissions)
  2. 設定ファイルの permissions.defaultMode
  3. 組み込みの既定
Claude Code の使い方 組み込みの既定
いずれかの設定ファイルで disableAutoMode が "disable" になっている default
claude -p(非対話)または Agent SDK default
ターミナルまたは VS Code 拡張機能 v2.1.283以降は auto。それより前は、Pro・Max・Team プランでは auto(v2.1.228以降。ネイティブのWindowsは v2.1.233以降)、それ以外は default

auto モードが選ばれても、利用できるモデルの条件を満たさない場合や、設定で無効にされている場合は、Manual(default)で始まります。auto モードが既定になった経緯と企業での対応は、Claude Code「auto mode」標準化|企業の対応で説明しています。

defaultModeの書き方と注意点

{
"permissions": {
"defaultMode": "acceptEdits"
}
}
  • auto と bypassPermissions はプロジェクト設定・ローカル設定では無効: .claude/settings.json と .claude/settings.local.json に書いても有効になりません。~/.claude/settings.json か管理設定に書くか、1回だけなら claude --permission-mode で指定します。bypassPermissions がどのファイルからも有効だったのは、v2.1.257より前です
  • VS Code 拡張機能は、開始時のモードにプロジェクト設定を使わない: 拡張機能で開始時のモードを固定するには、VS Code のユーザー設定で claudeCode.initialPermissionMode を設定します(auto は指定できません)
  • クラウドセッション: defaultMode のうち acceptEdits、plan、default、auto だけが有効です

セッション中にモードを切り替える

CLIでは Shift+Tab を押すとモードが切り替わります。順序は default → acceptEdits → plan → default で、auto から押した場合は最初に default へ移ります。auto や bypassPermissions が使える場合は、plan の後に加わります。dontAsk はこの切り替えには出てこないため、claude --permission-mode dontAsk で指定します。

モードとルールの関係

  • deny ルール: bypassPermissions を含むすべてのモードで有効です
  • ask ルール: どのモードでも自動では承認されません。bypassPermissions でも確認が出ます
  • allow ルール: bypassPermissions では効果がありません(もともと確認が出ないため)
  • 保護されたパス: .git、.claude、.vscode、.bashrc、.zshrc、.mcp.json などへの書き込みは、bypassPermissions 以外では自動では承認されません。設定ファイルの allow ルールで事前に承認することもできません

bypassPermissionsを使う前に

bypassPermissions は確認と安全性のチェックを省略するモードで、公式ドキュメントは、コンテナやVMなど隔離された環境だけで使うよう求めています。組織で使用を禁止するには、permissions.disableBypassPermissionsMode を "disable" に設定します。通常は管理設定に書きますが、どのスコープのファイルでも有効です。auto モードを禁止するには permissions.disableAutoMode を "disable" にします。

起動オプションとの違い、VS Code やSSH接続先での設定方法は、Claude Code権限設定|bypassPermissionsの安全な使い方にまとめています。

環境変数(env)の設定

環境変数は、シェルで設定する方法と、設定ファイルの env キーに書く方法があります。シェルで設定した変数はそのターミナルのセッションの間だけ有効で、設定ファイルに書いた変数は claude を実行するたびに適用されます。

{
"env": {
"API_TIMEOUT_MS": "1200000",
"BASH_DEFAULT_TIMEOUT_MS": "300000"
}
}

値は文字列で書きます。どのファイルに書くかで効く範囲が変わる点は、ほかのキーと同じです。

変数 内容 既定値
API_TIMEOUT_MS APIリクエストのタイムアウト(ミリ秒) 600000(10分)
BASH_DEFAULT_TIMEOUT_MS 時間のかかるBashコマンドの既定のタイムアウト 120000(2分)
BASH_MAX_TIMEOUT_MS モデルが指定できるBashコマンドのタイムアウトの上限 600000(10分)
MCP_TIMEOUT MCPサーバーの起動のタイムアウト 30000(30秒)
ANTHROPIC_MODEL 使用するモデル。設定ファイルの model より優先される なし
DISABLE_AUTOUPDATER 1 にするとバックグラウンドの自動更新を止める(手動の claude update は使える) なし
DISABLE_AUTO_COMPACT 1 にすると、コンテキストの上限に近づいたときの自動圧縮を止める なし
DISABLE_TELEMETRY 空でない値を設定するとテレメトリを送らない。0 や false を設定しても送らない側になる なし
HTTPS_PROXY・HTTP_PROXY ネットワーク接続に使うプロキシ なし
CLAUDE_CONFIG_DIR 設定ディレクトリの場所。プロジェクト設定・ローカル設定に書いても無視される ~/.claude
  • 設定ファイルの値がシェルの値を上書きする: 同じ変数をシェルと設定ファイルの env の両方で設定した場合、設定ファイルの値が使われます
  • シェルの変数を打ち消す: 設定ファイルには、シェルで設定済みの変数を未設定に戻す書き方がありません。打ち消したい変数は、env で空文字("")に設定します
  • プロジェクト設定・ローカル設定の env: フォルダを信頼した後に適用されます。CLAUDE_CONFIG_DIR や、テレメトリの送信先を決める OpenTelemetry の変数(v2.1.282以降)など、一部の変数はこの2つのファイルからは設定できません
  • 値は平文で保存される: env の値は設定ファイルにそのまま書かれ、Claude Code が起動するすべてのサブプロセスに渡ります。APIの認証情報は env に書かず、apiKeyHelper を使います

\ AI活用の「次の一手」を一緒に考えませんか /

AI顧問の無料相談はこちら

よく使う設定項目と、CLAUDE.mdとの使い分け

公式の設定リファレンスには多くのキーが載っていますが、最初に確認しておくとよいのは次の項目です。いずれも、どのスコープのファイルにも書けます。

キー 内容 既定値
$schema エディタで補完と検証を効かせるためのスキーマのURL なし
language Claude が応答に使う言語。"japanese" のように言語名を文字列で書く。値は検証されないため、つづりを間違えてもエラーにならない 未設定
model 新しいセッションで使うモデル。sonnet や opus などの別名か、完全なモデルIDを書く 未設定(アカウントの既定のモデル)
permissions 権限ルールと、開始時の権限モード 未設定
env 環境変数 未設定
hooks 特定のタイミングで実行するコマンド。複数のファイルに書いたフックは結合される 未設定
sandbox.enabled Bashコマンドをサンドボックスの中で実行する false
attribution gitのコミットとプルリクエストに付く帰属表示。commit と pr を空文字にすると表示されない 未設定(コミットに Co-Authored-By の行が付く)
cleanupPeriodDays セッションの記録などを保持する日数。1以上の整数で、0 は検証エラーになる 30
autoUpdatesChannel 自動更新が追うリリースの系統。"latest" か "stable" 未設定(latest)
statusLine プロンプトの下に表示するステータスライン 未設定

attribution は、v2.1.281以降であれば false を書くだけで帰属表示をすべて止められます。それより前のバージョンも同じファイルを読む環境では、commit と pr を空文字に、sessionUrl を false にします。

個人用の設定例

{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"language": "japanese",
"model": "sonnet",
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test *)"
],
"ask": [
"Bash(git push *)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)"
]
},
"autoUpdatesChannel": "stable"
}

日本語で使うための設定はClaude Codeを日本語で使う方法|設定とIME対策、フックの書き方はClaude Code Hooks完全ガイドで説明しています。個人用・チーム用・組織用の3種類のファイルの例は、公式の設定ファイルの例に掲載されています。公式は、これらを推奨の基準ではなく形を示す例として掲載しています。

チームで共有するときの分け方

書く場所 書く内容の例
.claude/settings.json(コミットする) チーム共通の allow/ask/deny、フック、プロジェクトに必要な環境変数
.claude/settings.local.json(コミットしない) 自分だけのモデルの指定、試験中のルール
~/.claude/settings.json 言語、テーマ、defaultMode など、自分のすべてのプロジェクトに効かせたい設定
管理設定 組織として必ず守らせたいルール(deny、disableBypassPermissionsMode など)

Claude Code が .claude/settings.local.json を最初に書き込むとき、gitのグローバルな除外設定に自動で追加するため、このファイルはコミットに含まれません。自分の手でファイルを作成した場合は、.gitignore に追加します。

組織で利用者のルールを無効にし、管理設定のルールだけを適用するには、管理設定で allowManagedPermissionRulesOnly を true にします。導入の進め方はClaude Code 企業導入ガイド|検討から運用開始まで5ステップで説明しています。

MCPサーバーの設定は別のファイル

MCPサーバーの設定は settings.json ではなく、~/.claude.json やプロジェクトの .mcp.json に保存されます。追加の手順はClaude Code MCP連携ガイドで説明しています。MCPのツールを許可・拒否するルールは、mcp__サーバー名__ツール名 の形で permissions に書きます。

CLAUDE.md と settings.json の違い

公式ドキュメントは、権限ルールを適用するのは Claude Code 本体であり、モデルではないと説明しています。プロンプトや CLAUDE.md に書いた指示は、Claude が何をしようとするかには影響しますが、Claude Code が何を許可するかは変えません。

やりたいこと 書く場所
特定のツール・コマンド・ファイルのパスを禁止する settings.json の permissions.deny
サンドボックスによる隔離を有効にする settings.json の sandbox.enabled
環境変数を設定する settings.json の env
コードの書き方や品質の指針を伝える CLAUDE.md
データの扱いに関する注意を伝える CLAUDE.md
Claude の振る舞いについて指示する CLAUDE.md

「.env を読まない」と CLAUDE.md に書くだけでは、読み取りは止まりません。確実に止めたい操作は permissions.deny に書きます。CLAUDE.md の書き方はCLAUDE.md完全ガイド|プロジェクト設定ファイルの書き方と活用テクニックで説明しています。

よくある質問

Claude Codeのsettings.jsonはどこにありますか?

個人用は ~/.claude/settings.json(Windowsでは %USERPROFILE%\.claude\settings.json)、チームで共有するものはプロジェクトの .claude/settings.json、自分だけの上書きは .claude/settings.local.json です。Claude Codeをインストールしただけではどのファイルも作られません。自分で作成するか、/config で設定を変えたときや、権限の確認で「Yes, and don’t ask again」を選んだときにClaude Codeが作成します。

settings.json の変更はいつ反映されますか?

Claude Codeは設定ファイルを監視していて、保存すると実行中のセッションにも再読み込みされます。permissions や hooks の変更は再起動なしで反映されます。ただし model、effortLevel、modelSettings はセッション開始時にしか読み込まれないため、作業中に変えるときは /model や /effort を使います。MDMや管理コンソールから配布される管理設定は、保存時ではなく一定の間隔で反映されます。

ユーザー設定とプロジェクト設定で同じキーを設定したら、どちらが優先されますか?

プロジェクト設定(.claude/settings.json)が優先されます。優先順位は高い順に、管理設定、コマンドライン引数、ローカル設定(.claude/settings.local.json)、プロジェクト設定、ユーザー設定(~/.claude/settings.json)です。permissions.allow のような配列は上書きされず、各ファイルの内容が結合されます。

allow に書いたのに確認が出るのはなぜですか?

主な原因は3つあります。1つ目は、同じ操作に一致する ask ルールや deny ルールがあることです。ルールは deny、ask、allow の順に評価され、最初に一致したものが適用されます。2つ目は、プロジェクトの .claude/settings.json に書いた allow ルールが、そのフォルダを信頼するまで適用されないことです。3つ目は、.git や .claude などの保護されたパスへの書き込みで、これは allow ルールでは事前に承認できません。

defaultMode に auto や bypassPermissions を書いても効かないのはなぜですか?

auto と bypassPermissions は、プロジェクト設定(.claude/settings.json)とローカル設定(.claude/settings.local.json)に書いても有効になりません。~/.claude/settings.json か管理設定に書くか、1回のセッションだけなら claude –permission-mode で指定します。bypassPermissions がどのファイルからも有効だったのは v2.1.257 より前のバージョンです。

チームで settings.json を共有するとき、個人設定はどう分けますか?

.claude/settings.json をgitにコミットしてチームで共有し、個人用の設定は .claude/settings.local.json に書きます。Claude Codeが .claude/settings.local.json を最初に書き込むとき、gitのグローバルな除外設定に自動で追加するため、コミットには含まれません。自分の手でファイルを作成した場合は、.gitignore に .claude/settings.local.json を追加してください。

/config コマンドでは何ができますか?

Claude Code内で /config を実行すると、テーマ、エディタモード、詳細出力など、個人向けの一部の項目を選んで変更できます。settings.json のすべてのキーが表示されるわけではなく、settings.json の内容を一覧する画面でもありません。permissions や env などは設定ファイルを直接編集します。読み込まれている設定ファイルは /status で確認できます。

まとめ

  • 場所: 個人用は ~/.claude/settings.json、チーム共有用は .claude/settings.json、自分だけの上書き用は .claude/settings.local.json、組織用は管理設定
  • 優先順位: 管理設定 → コマンドライン引数 → ローカル → プロジェクト → ユーザー。配列は結合される
  • permissions: deny → ask → allow の順に評価される。確実に止めたい操作は deny に書く
  • 権限モード: 6種類。auto と bypassPermissions を defaultMode に書くときは、ユーザー設定か管理設定に書く
  • 確認: 読み込まれた設定ファイルは /status、現在のルールは /permissions、除外された項目は claude doctor で確認する

Claude Code は更新が早く、既定の動作がバージョンによって変わる項目があります。社内のルールを決める前に、公式ドキュメントの最新の記述を確認してください。

確認した公式ページ(いずれも2026年9月27日に確認):

関連記事


法人向けAI導入・活用の月額伴走サービス

AI導入の疑問を、週1回のMTGで相談できる「AI顧問」

株式会社Nexaでは、ChatGPT・Claude・Claude CodeなどのAI導入に関する質問や、社内活用・業務自動化の進め方を週1回相談できる 月額7万円(毎月3社限定で月額5万円)のAI顧問サービス を提供しています。

「自社では何から始めるべきか」「この業務はAI化できるか」「どのツールを選ぶべきか」を、無料相談で整理します。

AI顧問の無料相談はこちら →





この記事で参照した外部情報

  1. Anthropic公式ドキュメントcode.claude.com
  2. 設定ファイルの例code.claude.com
  3. 英語版code.claude.com
  4. All settings(設定リファレンス)code.claude.com
  5. Example settings files(設定ファイルの例)code.claude.com
  6. 権限を設定する(日本語版)code.claude.com
  7. 英語版code.claude.com
  8. 権限モードを選択する(日本語版)code.claude.com
  9. 英語版code.claude.com
  10. Deploy managed settings(管理設定の配布)code.claude.com
  11. Environment variables(環境変数)code.claude.com
  12. How Claude remembers your project(CLAUDE.md)code.claude.com

本文中でリンクしている外部ページの一覧です(自動生成)。最終確認日は本記事の最終更新日 2026-09-27 で、リンク先の内容はその後変わることがあります。

AI導入を検討中の方へ

AIの力で、ビジネスを次のステージへ

まずはお気軽にご相談ください。貴社に最適なAI活用プランをご提案します。