Claude Codeでどこまでできる?

Claude Codeの使い方や連携を、実際に試してわかりやすく伝えるサイト

Claude Codeの権限確認プロンプトを減らす設定方法——/permissionsとsettings.local.json

,
Claude Codeの権限確認プロンプトを減らす設定方法

「やってもいい?」——Claude Codeを使っていると、この確認が何度も何度も出て、作業が途切れがちになります。dangerously-skip-permissionsという手もあるけれど、名前からして怖い。実は、確認を減らすもっと安全な方法があります。

この記事でやること

Claude Codeを使っていると、コマンドを実行するたびに「許可しますか?」と聞かれる――いわゆる確認地獄。これを減らすための設定方法を、実際に使える形でまとめます。

扱うのは次の3つです。

  • /permissionsコマンドで権限を追加する手順
  • settings.local.jsonを直接編集する方法
  • コピペですぐ使える、おすすめのallowルール例

dangerously-skip-permissionsを使わずに、よく使うコマンドだけ安全に許可できるようになります。

まずはこの方法だけでOK——全体の流れ

権限設定は大きく分けて2つのやり方がありますが、まずは/permissionsコマンドを使う方法だけ覚えれば十分です。

全体の流れはざっくり次のとおり。

  1. 確認地獄を感じたら/permissionsを開く ——Claude Codeのチャット画面で/permissionsと入力
  2. 許可したいコマンドをallowルールに追加 ——例:Bash(git *)でgit系コマンドを一括許可
  3. 同じコマンドを実行して確認が出なくなれば成功

settings.local.jsonを直接編集する方法もありますが、これは後半の補足扱いで紹介します。とりあえず/permissionsコマンドで試してみてください。

事前に必要なもの

始める前に、次の条件を満たしているか確認してください。

  • Claude Codeがインストール済みであること
  • Claude Codeを利用できるアカウントであること(プランや提供条件は変わることがあるため、自分の画面で利用できるか確認してください)
  • Windows 10 または Windows 11環境であること
  • ターミナル(PowerShellまたはコマンドプロンプト)でClaude Codeを起動できること

Claude Codeを利用するには、対応したプラン(Pro以上等)への加入が必要です。デスクトップ版(Claude Desktop)とは別のアプリで、この記事ではターミナル版(CLI)での手順を解説します。

この記事はターミナル(CLI)での操作を前提にしています。デスクトップ版を使っている場合、画面の見方が少し異なりますが、設定の仕組み自体は同じです。

「確認地獄」とは何か——なぜ毎回聞かれるのか

Claude Codeで作業していると、こんな場面で確認プロンプトが出ます。

  • ファイルを編集する時:Editツールの実行許可
  • コマンドを実行する時:Bashツールの実行許可
  • (ファイルを読むだけの操作は、基本的に確認なしで通ります)

たとえば「プロジェクトのファイル一覧を表示して」と頼むだけでも、Bashの実行→ファイルの読み込み→結果の書き込みと、3回くらい確認が出るケースがあります。1回の依頼で5〜6回聞かれることも珍しくありません。

なぜこんなに確認が出るのか——Claude CodeがAIに勝手にコマンドを実行させないための安全装置です。原則として毎回人の許可を求めます。

この仕組み自体は正しいものです。ただ、何度も同じコマンドに許可を出している場合、それは設定で自動許可できる部分でもあります。そこを整理するのがこの記事の目的です。

権限の仕組みをざっくり知る

設定に入る前に、Claude Codeの権限の仕組みを軽く押さえておきます。

allow・ask・denyの3種類のルール

Claude Codeの権限は3種類のルールで管理されています。

  • allow:確認なしで自動的に許可する
  • ask:毎回確認プロンプトを出す(デフォルト)
  • deny:実行をブロックする

評価の順序はdeny → ask → allow。denyルールにマッチしたら、allowルールがあってもブロックされます。

設定が影響する範囲(スコープ)

スコープ 場所 影響範囲
ユーザー設定 `~/.claude/settings.json` あなたの全プロジェクト
プロジェクト設定 `.claude/settings.json` そのリポジトリの全作業者
ローカル設定 `.claude/settings.local.json` そのリポジトリのあなただけ

ユーザー設定に書けばすべてのプロジェクトで有効になり、プロジェクト設定はチーム共有用、ローカル設定は自分だけの実験用というイメージです。

権限モード

Claude Codeには権限モードという概念もあります。

  • default:標準。必要に応じて確認プロンプトを出す
  • acceptEdits:作業フォルダ内のファイル編集を自動承認する
  • plan:読み取り専用。ファイル変更やコマンド実行を伴わない分析向け
  • auto:バックグラウンドで安全性チェックしつつ自動許可(研究プレビュー)
  • dontAsk:事前に許可された操作だけを自動で実行し、それ以外は拒否する
  • bypassPermissionsdangerously-skip-permissionsに相当。ほぼすべての確認をスキップ

この記事ではdefaultモードのまま、allowルールを追加して確認を減らす方法を紹介します。モード自体を切り替える必要はありません。

手順1:/permissionsコマンドで権限を追加する

ここからは実際に手を動かします。

ステップ1:/permissionsを起動する

Claude Codeの入力欄/permissionsと入力してEnterを押します。権限管理画面が開き、現在のルール一覧が表示されます。

ステップ2:allowルールを追加する

権限管理画面でallowルールを追加します。たとえばgitコマンドを許可したい場合、次のようなルールを入力します。

Bash(git *)

これでgit statusgit addgit commitなど、gitで始まるコマンドがすべて確認なしで実行されるようになります。

Bash(git *)git pushgit resetも対象になるため、最初はBash(git status)Bash(git log *)など読み取り寄りのものだけ許可するのも安全な進め方です。

ステップ3:追加できたか確認する

権限管理画面に追加したルールが表示されていれば設定完了です。実際にClaude Codeにgitコマンドを実行させてみて、確認プロンプトが出ないことを確認してください。

よく使うコマンドの許可例

ルール 効果
`Bash(git *)` git系コマンドを一括許可
`Bash(python *)` python系コマンドを一括許可
`Bash(npm *)` npm系コマンドを一括許可
`Bash(node *)` node系コマンドを一括許可

追加する時は、自分がよく使うコマンドから始めるのが安心です。

手順2:settings.local.jsonに直接書く方法

/permissionsコマンドと同じ結果を、設定ファイルの直接編集でも実現できます。まとめて複数ルールを設定したい時に便利です。

設定ファイルの場所(Windows)

Windows環境では、プロジェクトフォルダ内の次の場所にあります。

<プロジェクトフォルダ>\.claude\settings.local.json

ユーザー全体に適用したい場合はこちら。

C:\Users\<ユーザー名>\.claude\settings.json

設定ファイルの書き方

settings.local.jsonをテキストエディタで開いて、permissions.allowにルールを追加します。

{
  "permissions": {
    "allow": [
      "Bash(git *)",
      "Bash(python *)",
      "Bash(npm *)",
      "Read",
      "Edit"
    ]
  }
}
  • "Bash(git *)":gitで始まるコマンドを許可
  • "Read":ファイルの読み込みをすべて許可
  • "Edit":ファイルの編集をすべて許可

ファイルを保存したら、Claude Codeを再起動するか新しいセッションを開始して、設定が反映されているか確認してください。

ユーザー設定に書く場合との違い

ユーザー設定(~/.claude/settings.json)に書くとすべてのプロジェクトで有効になります。プロジェクトごとに許可を変えたい場合はsettings.local.jsonを使いましょう。CLAUDE.mdとMEMORY.mdの違いも合わせて押さえておくと、設定ファイルの役割分担がさらに分かりやすくなります。

コピペで使える——おすすめallowルール例

「何を許可すればいいか分からない」という方向けに、よく使うパターンを2段階で用意しました。最低限版から試して、足りないものを足していくのがおすすめです。

最低限版——よく使うコマンドだけ許可

{
  "permissions": {
    "allow": [
      "Bash(git *)",
      "Bash(python *)",
      "Bash(npm *)",
      "Bash(node *)",
      "Read",
      "Edit"
    ]
  }
}

この設定で許可されるのは次のとおり。

  • gitpythonnpmnodeで始まるコマンドの実行
  • ファイルの読み込み(Read
  • ファイルの編集(Edit

これだけでも日常的な開発作業での確認プロンプトはかなり減ります。

標準版——もう少し幅広く許可

{
  "permissions": {
    "allow": [
      "Bash(git *)",
      "Bash(python *)",
      "Bash(pip *)",
      "Bash(npm *)",
      "Bash(npx *)",
      "Bash(node *)",
      "Bash(cat *)",
      "Bash(ls *)",
      "Bash(dir *)",
      "Bash(mkdir *)",
      "Bash(cd *)",
      "Bash(type *)",
      "Read",
      "Edit"
    ]
  }
}

最低限版にpipnpx、ファイル操作系のコマンドを追加しています。

各ルールの効果

ルール 許可されること
`Bash(git *)` `git status`、`git add`、`git commit`、`git push` 等
`Bash(python *)` `python app.py`、`python -m pip install` 等
`Bash(npm *)` `npm install`、`npm run build`、`npm test` 等
`Bash(npx *)` `npx create-react-app` 等
`Bash(node *)` `node server.js`、`node -e …` 等
`Read` すべてのファイル読み込み
`Edit` すべてのファイル編集

これらのルールは/permissionsコマンドで1つずつ追加しても同じ結果になります。どちらの方法でも大丈夫です。

危険な設定と安全な範囲の違い

ここまでallowルールの追加方法を紹介してきましたが、「権限を緩めたら悪意のあるコマンドが実行されるのでは」と不安に思う方もいるでしょう。その境界線を整理します。

dangerously-skip-permissions(bypassPermissionsモード)との違い

dangerously-skip-permissionsは、名前に「dangerous」と入っている通りほぼすべての確認をスキップします。ファイルの削除もシステムコマンドの実行も、原則として無許可で通ります(ただし.git.claudeなど一部の保護ディレクトリへの書き込みだけは確認が残ります)。

一方、allowルールによる許可は特定のコマンドだけに適用されます。Bash(git *)を許可しても、Bash(rm -rf *)は許可されません。

判断基準の目安

基本的には、次の基準で考えておけば大きく外しません。

  • 安全:読み取り系コマンド(git statuslscattype
  • 注意:パッケージマネージャー(npm installpip install)、ファイル変更系(EditWrite)——ファイル変更やスクリプト実行につながる可能性がある
  • 危険:すべてを許可するBash(引数なし)、Bash(rm *)Bash(del *)のような削除系コマンド

allowルールで安全に範囲を絞るコツ

  • Bash(引数なし)は絶対にallowに入れない
  • 削除系コマンド(rmdelrmdir)はallowに入れない
  • 最初は最小限のルールだけ許可して、困ったら追加する
  • 不安なルールはallowではなくaskのままにしておく
  • もし設定を間違えたと思ったら、設定ファイルをリセットすれば元に戻る

ここで紹介しているおすすめルール例は、いずれも特定のコマンドに絞った許可です。dangerously-skip-permissionsとは安全性のレベルが全く違います。

うまくいかない時だけ読む——設定の確認とトラブル対応

設定したはずなのに確認プロンプトが出る、あるいはClaude Codeが動かなくなった——そんな時に見るポイントをまとめました。

設定が反映されているか確認する

  1. /permissionsコマンドを実行して、追加したルールが一覧に表示されるか見る
  2. 設定ファイルを直接開いて、JSONの構文エラーがないか確認する
  3. Claude Codeを再起動してから試す

JSONの構文エラーに注意

設定ファイルはJSON形式なので、カンマの忘れや括弧のミスがあると読み込まれません。よくあるミスは次のとおり。

  • 最後の要素の後ろにカンマを入れてしまう
  • 括弧の閉じ忘れ
  • ダブルクォートの代わりにシングルクォートを使う

設定をリセットしたい時

設定ファイルを削除するか、中身を空のJSONに戻せばリセットできます。

{}

プロジェクトの.claude/settings.local.jsonをリセットする場合は、ファイルを削除するだけでOKです。次回起動時にデフォルトの状態に戻ります。

Windows環境での設定ファイルの場所(まとめ)

  • プロジェクト設定:<プロジェクトフォルダ>\.claude\settings.local.json
  • ユーザー設定:C:\Users\<ユーザー名>\.claude\settings.json

設定ファイルが見つからない場合は、隠しフォルダーが表示されているか確認してください。.claudeフォルダーは隠しフォルダーとして作られることがあります。

設定が終わったら

設定が終わったら、次のチェックを順に試してください。

  • Claude Codeで/permissionsを実行して、追加したallowルールが表示されるか
  • 実際に許可したコマンド(例:git status)を実行させて、確認プロンプトが出ないか
  • 許可していないコマンド(例:delrm)ではちゃんと確認が出るか

3つ目まで確認できれば、設定は意図通りに動いています。

次のステップ

allowルールを少しずつ増やしていくのが、安全に確認地獄を減らす一番の近道です。

まとめ

確認地獄は、/permissionsコマンドでallowルールを追加するだけで、dangerously-skip-permissionsに頼らずに大幅に減らせます。gitpythonnpmなど自分がよく使うコマンドから許可して、足りないものを後から足していく。この進め方なら、安全な範囲を保ちながら作業のリズムを崩さずに済みます。