こんにちは、ハックです。AIを相棒に、非エンジニアから今では様々なツールやアプリを開発をしている一人社長です。
「Claude Codeの設定ファイルってどこにあるの?」「最初に何を設定しておけばいいの?」
インストールしたばかりの頃、僕も同じことを思っていました。
結論から言うと、Claude Codeの設定はsettings.jsonという1つのファイルに書きます。
この記事では、その設定ファイルがどこにあるか、最初にやっておきたいおすすめ設定、そして許可(allow)・拒否(deny)の権限設定まで、順番に整理していきます。
僕は基本的にユーザー単位の設定ファイルにまとめて書いていて、許可はほぼ全部通す自動モード寄りで使っています。そのぶん、見られたくないファイルだけは拒否設定で守っています。この記事では、その使い方に近い設定例も紹介します。
許可の範囲を広げるほど、毎回の確認は減って作業は速くなります。ただしその分だけ、拒否(deny)で守っておくべき場所も増えます。両方をセットで考えるのが安全ですね。
🧭 読み終えたとき、あなたはこうなっています
- Claude Codeの設定ファイル(settings.json)がどこにあり、どのファイルが優先されるかがわかる
- 言語・モデル・学習オプトアウトなど、最初にやっておきたいおすすめ設定がわかる
- 許可(allow)と拒否(deny)の書き方がわかり、自分の環境に合わせた権限設定ができる
⚠️ この記事の信頼性について
Claude Codeの設定ファイルはどこ?場所と種類の一覧


Claude Codeの設定は、settings.jsonという名前のファイルに書きます。ただし、このファイルは置く場所によって役割が違い、全部で5種類あります。
まずは「どこに何があるか?」を整理します。
Claude Codeをまだインストールしていない場合は、先にClaude Codeのインストール方法|Mac・Windowsで始める手順を済ませてから読み進めると、そのまま手を動かして試せます。


settings.jsonの場所(ユーザー・プロジェクト・ローカル)
settings.jsonが置かれる場所は、大きく分けて3段階です。
| スコープ | 置き場所 | 誰のための設定か |
|---|---|---|
| ユーザー単位 | ~/.claude/settings.json | 全プロジェクト共通・自分だけの設定 |
| プロジェクト単位(共有) | .claude/settings.json | そのプロジェクトのチーム共有設定(Gitで管理される想定) |
| プロジェクト単位(自分だけ) | .claude/settings.local.json | そのプロジェクトの中で、自分だけに適用する設定 |
~/はホームフォルダを表す記号です。Windowsでも考え方は同じで、自分のユーザーフォルダの中に.claudeフォルダが作られ、その中にsettings.jsonが置かれます。
.claude/settings.local.jsonは、自分だけの設定なのでGitに含めない前提のファイルです。Claude Codeが自分でこのファイルを作ったときは、Gitの管理対象から外す設定を自動で足してくれます。
自分の手で作った場合は、.gitignoreに追加する必要があります。チームで共有するリポジトリで作業しているときは、ここを忘れると自分用の設定がほかの人にも配られてしまいます。
使い分けの目安をまとめると、次のとおりです。
| こんなとき | 書く場所 |
|---|---|
| どのプロジェクトでも同じにしたい(モデル・effort・よく使う許可) | ~/.claude/settings.json |
| このプロジェクトでは全員に同じルールを守ってほしい | .claude/settings.json |
| このプロジェクトだけ、自分用に少し変えたい | .claude/settings.local.json |
このほか、組織向けのmanaged settings(組織の管理者が配布する設定)もありますが、これは個人開発者が意識する場面はほとんどありません。この記事では、上の3つの置き場所を前提に進めます。
グローバル設定とプロジェクト設定の優先順位
複数の場所に同じ設定項目が書かれていた場合、どれが優先されるのでしょうか。公式ドキュメントで確認できた優先順位は、次のとおりです(数字が小さいほど優先度が高い)。
- managed settings(組織が配布する設定)
- コマンドライン引数(
claudeを起動するときに付けるオプション) .claude/settings.local.json(このプロジェクトの自分専用).claude/settings.json(このプロジェクトのチーム共有)~/.claude/settings.json(全プロジェクト共通の自分専用)
同じキーが複数のファイルに書かれていた場合は、この順番の上にあるほうが勝ちます。たとえば、ユーザー単位の~/.claude/settings.jsonで許可していたコマンドでも、プロジェクト側の.claude/settings.jsonでそのコマンドを拒否(deny)していれば、そのプロジェクトの中では拒否が優先されます。
僕自身は、ほとんどの設定を⑤の~/.claude/settings.jsonにまとめて書いています。特定のプロジェクトだけ別の許可ルールにしたいときだけ、そのプロジェクトの.claude/settings.local.jsonに追記する、という使い分けです。
設定の確認と変更の方法(/config・設定画面)
設定を確認・変更する方法は2つあります。1つはsettings.jsonをエディタで直接開いて編集する方法、もう1つは/configコマンドで設定用の画面を開き、その場で項目を選んで変更する方法です。
/config
細かい値を一括で書きたいときはファイルを直接編集、ちょっとした項目だけ変えたいときは/config、という使い分けがしやすいです。
なお、この記事はターミナル版・VS Code拡張機能版のいずれでも使える内容ですが、VS Code拡張機能版では画面の開き方や一部の操作が異なります。拡張機能とターミナルの違いはClaude CodeをVS Codeで使う方法|拡張機能とターミナルの違いで解説しています。


settings.jsonとは、Claude Codeの動作をカスタマイズするための設定ファイルです。JSON(JavaScript Object Notation)という、{ }で項目と値を書く形式で記述します。
このファイルを編集することで、モデルの既定値や許可ルールなど、Claude Codeの挙動をまとめて変更できます。
Claude Codeの初期設定おすすめ(最初にやるべき設定)


設定できる項目はたくさんありますが、最初にやっておくべきものは限られています。この章では、僕が実際にインストール直後にやっている設定を、優先度の高い順に紹介します。
日本語で返答させる言語設定
Claudeは日本語で伝えれば、日本語で返してくれますが、ごく稀に文脈の影響を引きずって英語で返してきたりすることがあります。確実なのは、CLAUDE.md(プロジェクトの前提を書くファイル)に「日本語で返答してください」と書いておくことです。CLAUDE.mdはプロジェクトの直下に置くだけで、Claude Codeが会話の最初に読み込みます。
CLAUDE.mdの具体的な書き方やテンプレートは、CLAUDE.mdとは?書き方とコピペで使える用途別テンプレおすすめ5選にまとめています。


デフォルトモデルとeffortの設定
Claude Codeでは、使うモデルと「思考の深さ(effort)」を切り替えられます。モデルは/modelコマンドで、effortは/effortコマンドで、それぞれ会話の途中でも変更できます。
/model
/effort
settings.jsonのeffortLevelには、low(低)・medium(中)・high(高)・xhigh(とても高い)の4段階を書けます。/effortコマンドでは、さらに上のmaxも選べます。
効果が高くなるほど、そのぶん応答に時間がかかったり、使用量の消費が増えたりする傾向があります。モデル名・effortともに、claude起動時の--model・--effortフラグや、環境変数ANTHROPIC_MODELでも指定できます。
僕の場合は、effortは基本を「中」〜「軽め」にしておき、込み入った壁打ちやデザインの相談をするときだけ「高」に上げるという使い方をしています。コーディングも、複雑でなければSonnet系のモデルを中程度のeffortで、込み入ったプログラムを書かせるときだけOpus系のモデルに切り替える、という基準です。
作業の重さに応じてその場で切り替えるので、settings.jsonには「普段使う基本の組み合わせ」だけを既定値として書いておき、必要なときだけコマンドで上書きする形にしています。
学習させない設定(オプトアウト)
Free・Pro・Maxプランでは、この設定がオンになっていると、Claude Codeでのやり取りがモデルの改善(学習)に使われます。この設定はsettings.jsonの中の項目ではなく、claude.aiのアカウント設定(プライバシー設定)でオフ設定に切り替えられます。
オンオフはいつでも変更可能です。
一方で、Team・Enterpriseプランや、API経由の商用利用の条件下では、そもそもデータが学習に使われない扱いになっています。
僕は、会話を学習に使わせない設定にしています。仕事でClaude Codeを使う場合は、極力オフにしておいたほうが無難だと思います。自分の設定がどうなっているか分からない場合は、claude.aiのプライバシー設定の画面を一度開いて確認すると安心です。
通知とターミナルの設定
このほか、作業が終わったときの通知や、ターミナルの表示まわりを調整できる項目もあります。細かい項目は環境によって変わるので、/configの設定画面から実際の項目を見ながら調整するのが確実です。
Claude Codeの権限設定:許可(allow)と拒否(deny)の書き方


ここからは、この記事のもう1つの柱である権限設定です。Claude Codeが「ファイルを読む」「コマンドを実行する」といった操作をするたびに毎回確認が出て止まる、という悩みは、この権限設定で解消できます。
Claude Codeのカスタムコマンドやスラッシュコマンドについては、別記事のClaude Codeのコマンド一覧で扱っています。


許可モードの種類とauto modeの設定方法
settings.jsonのpermissions.defaultModeというキーで、確認の出し方そのものを切り替えられます。選べるモードは次の6種類です。
| モード | 動き |
|---|---|
default | 初回に確認を出す(画面上の表記は「Manual」) |
acceptEdits | ファイルの編集や、mkdir・touch・mv・cpなどの操作を自動で許可する |
plan | 読み取りだけを行い、編集はしない(計画を立てるモード) |
auto | 安全確認つきで、多くの操作を自動的に許可する |
dontAsk | 本来なら確認が必要な操作を、確認せずに自動で拒否する |
bypassPermissions | 確認をすべて飛ばす(一部の操作は除く) |
僕の場合は、auto(自動モード)で使うことが多いです。ほぼ全部の操作を自動で通しつつ、裏側で安全確認が挟まる仕組みなので、確認の手間を減らしながら最低限の歯止めを残せます。
どのモードを選ぶか迷ったときは、作業の中身で決めると分かりやすくなります。
| こんな作業のとき | 向いているモード | 理由 |
|---|---|---|
| Claude Codeを使い始めたばかり | default | 何をしようとしているかを1つずつ確認しながら覚えられる |
| 文章やコードの編集が中心 | acceptEdits | 編集のたびに確認が出ず、作業が止まりにくい |
| 大きな変更の前に方針だけ見たい | plan | ファイルを書き換えずに、調べて計画だけを出させられる |
| 慣れてきて、確認の手間を減らしたい | auto | 多くの操作を自動で通しつつ、安全確認は残る |
bypassPermissionsは確認をほぼすべて飛ばすため、.gitや.claudeのような大事なフォルダへの書き込みも止まりません。便利な反面、取り返しのつかない操作が起きやすいので、普段使いには向きません。
なお、組織やチームの管理者はpermissions.disableAutoModeやpermissions.disableBypassPermissionsModeというキーを"disable"に設定することで、メンバーがこの2つのモード(自動モード・確認スキップモード)を使えないようにすることもできます。
よく使うコマンドを常に許可する設定
モード全体を切り替えるのとは別に、特定のコマンドだけをピンポイントで許可・拒否することもできます。書き方はpermissions.allow・permissions.denyにルールを配列で並べる形です。
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(git commit *)"
]
}
}
Bash(npm run build)のように書くと完全一致(そのコマンドだけ)、Bash(npm run *)のように*を使うとその後ろが何であっても一致します。公式ドキュメントの例では、Bash(npm run *)やBash(git commit *)をallowに、Bash(git push *)をdenyに入れる書き方が紹介されています。
判定の順番はdeny → ask → allowの順に固定されています。最初に一致したルールの結果がそのまま使われます。
「より具体的なルールが優先される」わけではない点に注意してください。ファイルの中で書いた順番は関係なく、「拒否(deny)に当たるものは必ず拒否される」と覚えておけば十分です。
たとえば、allowにBash(git *)(gitのコマンドを全部許可)、denyにBash(git push *)を書いた場合、git commitは許可されますが、git pushはdenyに当たるので拒否されます。広めに許可して、危ないものだけをdenyで止める書き方ができるのはこの判定順のおかげです。
deny設定で.envや危険なコマンドを守る
許可の範囲を広げるほど作業は速くなりますが、そのぶん拒否(deny)で守っておくべき場所も増えます。僕自身が実際に拒否しているのが、.envファイル(APIキーなどの秘密情報を書くファイル)です。
{
"permissions": {
"deny": [
"Read(./.env)",
"Bash(git push *)"
]
}
}
Read(./.env)は、.envファイルを読み取ろうとする操作を拒否するルールです。ここに書いた項目は、permissions.allowで個別に許可していない限り、モード全体をautoやbypassPermissionsにしていても拒否され続けます。
「自動モードで運用しているからこそ、denyで守る範囲は明確にしておく」というのが僕の基準です。
Bash(git push *)も同様に、意図しないタイミングでのpush(リモートへの反映)を防ぎたい場合に使えるルールとして、公式ドキュメントで例に挙げられています。
sandbox設定でBashを隔離する
Claude Codeには、コマンド実行(Bash)をより安全に隔離して動かすための、sandboxという機能もあります。この記事では、具体的な設定キーの書き方までは扱いません。
許可・拒否のルールだけでは物足りないと感じたら、公式ドキュメントで詳細を確認してみてください。
settings.jsonのおすすめ設定例(コピーして使える)


ここまでの内容を1つにまとめた、~/.claude/settings.jsonの設定例を紹介します。許可モードを自動にして.envを拒否する形は、僕の普段の使い方に近い組み合わせです。
そのままコピーして、自分の環境に合わせて調整してください。
{
"model": "opus",
"effortLevel": "medium",
"permissions": {
"defaultMode": "auto",
"allow": [
"Bash(npm run *)",
"Bash(git commit *)"
],
"deny": [
"Read(./.env)",
"Bash(git push *)"
]
}
}
model:既定で使うモデル。opusやsonnetのような短い名前(エイリアス)で指定でき、細かいバージョン番号を覚えなくて済みますeffortLevel:low・medium・high・xhighから選べます。込み入った作業のときだけ/effortでその都度上げる使い方がおすすめですpermissions.defaultMode:"auto"にすると、毎回の確認の手間を減らしつつ、裏側の安全確認は残せますpermissions.allow・permissions.deny:よく使うコマンドを通しつつ、.envの読み取りとgit pushを個別に拒否する例です(npmとgitのルールは公式ドキュメントの例と同じ形です)
学習オプトアウトはこのファイルの項目ではなく、claude.aiのアカウント設定側で行う点を思い出してください。
環境変数の設定(env)
settings.jsonにはenvというキーもあり、Claude Codeを起動する環境に環境変数を渡せます。確認できた例の1つが、使うモデルを指定するANTHROPIC_MODELです。
{
"env": {
"ANTHROPIC_MODEL": "モデル名"
}
}
「モデル名」の部分には、/modelコマンドで確認できる正式な文字列を入れます。envキーは、モデル以外にも複数の環境変数をまとめて渡せる仕組みなので、他の環境変数を使う機会がある場合はここに追記していく形になります。
設定が反映されないときの再読み込みとリセット


settings.jsonを編集したとき、基本的にはClaude Codeを再起動しなくても、変更がそのまま反映されます。これは許可ルール(permissions)やhooksを含めて、多くの設定項目に共通する動きです。
設定ファイルが常に監視されているため、保存した時点で読み込まれる仕組みになっています。
ただし、一部の項目はセッションを開始したタイミングでだけ読み込まれるため、編集してもそのセッションの中では反映されないことがあります。「保存したのに変わらない」と感じたときは、次の順番で確認すると原因を切り分けやすいです。
- 保存したファイルの場所が正しいか(ユーザー用・プロジェクト用のどちらに書いたか)を確認する
- 優先順位の高い別のファイル(
.claude/settings.local.jsonなど)に、同じキーの別の値が書かれていないか確認する - それでも変わらなければ、一度Claude Codeを終了し、
claudeを起動し直す
/statusで読み込まれている設定ファイルを確認する
どのファイルが読み込まれているかは、対話画面で/statusを打つと確認できます。「Status」タブにあるSetting sourcesの行に、そのセッションで読み込んだ設定ファイル(User settingsやProject local settingsなど)が並びます。
/status
ここに書いたはずのファイルが出てこない場合は、置き場所やファイル名がずれています。反対に、思っていないファイルが出ている場合は、そのファイルの値が優先されている可能性があります。
/statusは「どのファイルを読んだか」を示すもので、「どのキーがどのファイルから来たか」までは表示しない点も覚えておくと、切り分けで迷いません。
保存したあとに/statusでファイルが読み込まれているかを確かめる、という流れを習慣にすると、書いた場所の間違いにすぐ気づけます。
まず疑うのは「場所」と「優先順位」
設定が思ったとおりに動かないときの多くは、「保存した場所が違う」か「もっと優先度の高い別のファイルに上書きされている」かのどちらかです。前の章で紹介した優先順位の表と照らし合わせて確認してみてください。
設定を見直しても動かない、エラーが出て止まるといったときは、以下の記事でエラー文ごとの原因と直し方をまとめています。


MCP・hooks・Skills・CLAUDE.mdの設定はどこに書く?


ここまで紹介してきたsettings.jsonのほかにも、Claude Codeには目的ごとに分かれた設定・拡張の仕組みがあります。hooksはsettings.jsonの中に書き、MCP・Skills・CLAUDE.mdはそれぞれ別のファイルに書く、という分担を押さえておけば迷いません。
MCPの設定ファイルの場所
MCP(外部のツールやデータベースとClaude Codeをつなぐ仕組み)の接続先は、settings.jsonではなく、プロジェクト用の.mcp.jsonや、自分用の~/.claude.jsonに書かれます。詳しい設定方法は別記事にまとめる予定です。
🔗(公開後リンク予定)
CLAUDE.md・Skills・hooksとの違い
- CLAUDE.md:プロジェクトの前提やルールを、毎回の会話の最初にClaude Codeへ読み込ませるファイルです。書き方はCLAUDE.mdとは?書き方とコピペで使える用途別テンプレおすすめ5選で解説しています
- Skills:自分の作業を
/○○というコマンドとして登録できる仕組みです。詳しくはClaude Code Skillsの記事にまとめています - hooks:特定の操作の前後に、決まった処理を自動で挟み込む仕組みです。設定は
settings.jsonのhooksに書き、許可ルールと同じく保存すると再起動なしで反映されます。🔗(公開後リンク予定)
settings.jsonが「Claude Codeそのものの動き(モデル・権限など)」を決めるファイルなのに対して、CLAUDE.md・Skillsは「Claude Codeに何をさせるか」を決めるファイル、という役割の違いで捉えておくと整理しやすいです。
迷ったときは、次の表で「何を変えたいか」から置き場所を選びます。
| 変えたいこと | 書く場所 |
|---|---|
| 使うモデル・effort・確認の出し方 | settings.json |
| 自動で許可・拒否するコマンド | settings.json(permissions) |
| プロジェクトの前提や、守ってほしいルール・返答の言語 | CLAUDE.md |
| よくやる作業を1つのコマンドにまとめたい | Skills(カスタムコマンド) |
| 決まったタイミングで毎回同じ処理を走らせたい | settings.json(hooks) |
特によく混ざるのが、settings.jsonとCLAUDE.mdです。「Claude Codeの動き方」はsettings.json、「Claudeへのお願い」はCLAUDE.mdと分けて考えると、書く場所で迷わなくなります。
hooksの書き方と、実際に使っているフックの例は、以下の記事で詳しくまとめています。


MCPサーバーの追加方法と、.mcp.jsonの書き方は、以下の記事でまとめています。


Claude Codeでアプリを作る手順は、以下の記事にまとめています。


まとめ:Claude Codeの設定は3つから始める
- 設定ファイルは
~/.claude/settings.json(ユーザー単位)を基本に、必要なプロジェクトだけ.claude/settings.local.jsonを足す - 最初にやるのは、学習オプトアウト(アカウント設定側)・既定のモデルとeffort・許可モード(
defaultMode)の3つ - 許可(allow)は攻め、拒否(deny)は守り。
.envのような見られたくないファイルは必ずdenyに入れる - 反映されないときは、優先順位の高い別ファイルに上書きされていないかをまず疑う
設定できる項目は多いですが、学習オプトアウト・モデルとeffortの既定値・許可モードの3つだけ決めておけば、日々の作業はかなり快適になります。この記事の設定例をコピーしたら、まずは自分がよく使うコマンドをallowに、守りたいファイルをdenyに1行ずつ足していくところから始めてみてください。
出典(Anthropic公式ドキュメント・2026年9月30日確認)
以上、ハックでした!いつも読んでくださり、ありがとうございます🙏
AI HACKSでは、AIの活用術、0からの起業・副業・最新のAIトレンドニュースなどをリアルタイムで発信しています。その他、AIで開発した無料アプリ・ツール・プロンプトテンプレートなども随時公開中です。
note (ai_hacks_jp) や、𝕏(@ai_hacks_jp)でも日々、AIの実践情報を投稿しています。






