Claude Code

Claude Code にすべてのコマンドを実行させる方法: 権限モード、allow ルール、権限スキップ

Claude Code が毎回権限を確認してくるのを止めるにはどうすればよいですか?

Shift+Tab で権限モードを切り替えるか、claude --permission-mode <mode> で起動するか、.claude/settings.json に Bash(npm run *) のような permissions.allow ルールを書いて特定のコマンドを事前承認します。Auto モードは、分類器がアクションをレビューする間、通常の確認なしで実行します。--dangerously-skip-permissions はコンテナや VM 専用です。

このページは英語版ガイドの翻訳です。コマンド、設定キー、コードは原文のままです。内容に差異がある場合は英語版が優先されます。 英語版を読む → · 他の言語: 简体中文 · 한국어 · Español · Português (Brasil)

設定の変更をいち早くチェック

これらのツールの設定、フラグ、権限ルールが変わったときに、週 1 回メール(英語)でお知らせします。内容は公式ドキュメントで確認済みです。

権限モード

  • default(Manual と表示): 各ツールの初回使用時に確認します。
  • acceptEdits: 作業ディレクトリ内のファイル編集と、mkdir、touch、mv、cp などの一般的なファイルシステムコマンドを自動承認します。
  • plan: 調査と読み取り専用コマンドの実行は行いますが、ソースファイルは編集しません。
  • auto: 通常の確認はありません。バックグラウンドの分類器が、シェルコマンドとネットワークリクエストをユーザーの依頼と照らしてチェックします。v2.1.283 以降の組み込みの開始モードです。
  • dontAsk: 事前承認したツールを除き、確認が必要なものをすべて拒否します。
  • bypassPermissions: .git や .claude などの保護パスへの書き込みを含め、確認をスキップします。隔離されたコンテナや VM 専用です。

モードの切り替え

  • セッション中: Shift+Tab で default → acceptEdits → plan(および他の有効なモード)を切り替えます。
  • 1 セッションだけ: claude --permission-mode plan(または default、acceptEdits、auto、dontAsk)。
  • デフォルトとして: ~/.claude/settings.json で permissions.defaultMode を設定します。

代わりに特定のコマンドを事前承認する

allow ルールは、すべてのチェックをスキップするより安全です。* はサブコマンドの後に置きます。Bash(git log *) は git log だけを許可し、Bash(git *) はすべての git コマンドを許可します。deny ルールが常に優先されます。

.claude/settings.json

{
  "permissions": {
    "allow": ["Bash(npm run *)", "Bash(git commit *)"],
    "deny": ["Bash(git push *)"]
  }
}

Claude Code 内で /permissions を使うと、すべてのルールとその定義元の settings ファイルを確認できます。

完全な無人実行

コンテナまたは VM 内で、非 root ユーザーとしてのみ

claude -p "run the test suite and fix failures" --dangerously-skip-permissions

許可ツール: --allowedTools と permissions.allow

--allowedTools(--allowed-tools とも書けます)は、1 セッションの間確認なしで実行するツールを列挙します。settings.json の permissions.allow と同じルール構文を使います。--disallowedTools は deny ルールを追加し、Edit のようにツール名だけを指定するとそのツールをセッションから削除します。

git の読み取りコマンドを事前承認した 1 セッション

claude --allowedTools "Bash(git log *)" "Bash(git diff *)" "Read"
  • ルールは deny、ask、allow の順にチェックされます。Bash(aws *) のような広い deny は、より狭い allow ルールが一致しても呼び出しをブロックします。
  • Bash ルールはシェル演算子を理解します。Bash(safe-cmd *) は safe-cmd && other-cmd を承認しません。各サブコマンドがそれぞれ一致する必要があります。
  • Bash(ls:*) は Bash(ls *) と同じです。:* 形式はパターンの末尾でのみ機能します。
  • MCP ツール: mcp__puppeteer は puppeteer サーバーのすべてのツールを、mcp__puppeteer__puppeteer_navigate は 1 つのツールを許可します。allow の glob にはリテラルのサーバー名が必要なため、mcp__* という allow ルールは警告付きでスキップされます。
  • Web フェッチ: WebFetch(domain:example.com) は example.com だけに一致します。サブドメインも対象にするには WebFetch(domain:*.example.com) を追加します。
  • 存在する組み込みツール自体を制限するには、allow リストではなく --tools "Bash,Edit,Read" を使います。

出典

このガイドで確認した公式ドキュメント(英語)です。 英語版の確認日: 2026-10-18

その他の日本語ガイド