Claude CodeのbypassPermissionsをsettings.jsonに設定することで、毎回のパーミッション確認をなくし業務自動化を実現できます。
- 要点1: ターミナル版・VSCode拡張版・SSH Remote版で設定方法が異なる
- 要点2: VSCode拡張機能はUIに選択肢が表示されないが、設定ファイルから有効化できる
- 要点3: SSH Remote接続では、リモート側のsettings.jsonを直接設定することが解決の鍵
対象: Claude Codeでパーミッション確認を毎回スキップしたい開発者・業務自動化担当者
今日やること: 自分の開発環境(ターミナル/VSCode/SSH)に合わせた設定方法を本記事で確認し、settings.jsonに追記する
この記事の目次
Claude Codeのpermission(パーミッション)設定を正しく構成すれば、毎回のコマンド実行確認をなくし、自動化ワークフローをスムーズに進めることができます。
「settings.jsonに設定したはずなのに、VSCodeを起動するたびに確認ダイアログが表示される」「SSH Remote接続後に設定がリセットされる」——こうした問題は、Claude Code利用者から頻繁に報告されている課題です。
この記事では、ターミナル(CLI)版・VSCode拡張版・VSCode Remote SSH版それぞれの正しい設定方法と、「設定したのに効かない」トラブルの原因と解決策を実践的に解説します。
Claude Codeのpermission(パーミッション)とは
Claude Codeは、ファイルの編集やシェルコマンドの実行を行う際に、ユーザーに確認を求める安全機能を持っています。これがパーミッション機能です。
通常の対話では「このファイルを編集してよいですか?」「このコマンドを実行してよいですか?」といった確認が逐一表示されます。日常的な作業では適切なガードレールとして機能しますが、大量のファイルを自動処理する場合や、cronジョブで自動実行する場合には、確認ダイアログが処理を止めてしまう問題になります。
4つのpermission modeの比較
Claude Codeには、確認の厳しさが異なる4つのモードが用意されています。
| モード | 概要 | 確認頻度 |
|---|---|---|
default |
すべての操作で確認を求める | 毎回 |
plan |
実行前に計画を提示し、一括承認する | 計画単位 |
acceptEdits |
ファイル編集は自動承認、コマンド実行は確認 | コマンドのみ |
bypassPermissions |
すべての操作を自動承認(確認なし) | なし |
自動化ワークフローや長時間バッチ処理には、bypassPermissionsモードが適しています。
–dangerously-skip-permissionsとbypassPermissionsの違い
この2つはよく混同されますが、指定する方法が異なります。
--dangerously-skip-permissions: CLIの起動オプション。コマンドラインで毎回指定する必要がある一時的な設定bypassPermissions:settings.jsonに記述する永続的な設定。一度設定すると常に適用される
Claude Code v2.0以降では、--dangerously-skip-permissionsよりもsettings.jsonへの設定が推奨されています。起動コマンドに毎回フラグを付けるよりも、設定ファイルで宣言的に管理するほうが安定した運用が可能です。
注意
bypassPermissionsモードはすべての確認をスキップするため、誤ったコマンドが即座に実行されるリスクがあります。コンテナや仮想マシンなど、影響範囲を限定できる環境での使用を推奨します。ただし、.git・.claude・.vscode・.ideaへの書き込みは、bypassPermissionsでも引き続き確認が表示されます。
ターミナル(CLI)でのpermission設定方法
まずは、ターミナルから直接Claude Codeを使う場合の設定方法を解説します。
起動時オプションで指定する方法(一時的な設定)
特定のセッションだけパーミッション確認をスキップしたい場合は、起動時に--dangerously-skip-permissionsフラグを付けます。
claude --dangerously-skip-permissions
または、短縮形として--no-permissions-checkも利用可能です(バージョンにより異なります)。
この方法は毎回フラグを指定する必要があるため、定期的に自動化を実行する場合は次の方法が便利です。
settings.jsonで永続化する方法(推奨)
~/.claude/settings.jsonに以下を記述することで、Claude Codeを起動するたびに自動でbypassPermissionsモードが適用されます。
{ "permissions": { "defaultMode": "bypassPermissions" }}
ファイルが存在しない場合は新規作成します。
# ファイルが存在しない場合は作成mkdir -p ~/.claudecat > ~/.claude/settings.json << 'EOF'{ "permissions": { "defaultMode": "bypassPermissions" }}EOF# 設定を確認cat ~/.claude/settings.json
設定ファイルの優先度(どの設定が優先されるか)
Claude Codeの設定ファイルには複数の階層があり、優先度が決まっています。
| 優先度 | 設定場所 | 用途 |
|---|---|---|
| 1(最高) | Managed設定(MDM/管理者設定) | 企業全体のポリシー |
| 2 | コマンドラインオプション | 一時的な上書き |
| 3 | .claude/settings.local.json(プロジェクト) |
個人のローカル設定 |
| 4 | .claude/settings.json(プロジェクト) |
プロジェクト共通設定 |
| 5(最低) | ~/.claude/settings.json(ユーザー) |
全プロジェクト共通 |
「設定したのに効かない」場合の多くは、優先度の高い設定が上書きしているケースです。特に企業環境では、managed設定でbypassPermissionsが無効化されている可能性があります。
\ Claude Codeの導入、何から始めればいいかわかります /
法人向けClaude Code個別指導の無料相談はこちらVSCode拡張機能でのpermission設定方法
VSCode拡張機能でClaude Codeを使う場合、設定方法はターミナル版と一部異なります。
claudeCode.initialPermissionModeの設定方法
VSCode拡張機能の設定(Cmd+,またはCtrl+,)から、「Extensions → Claude Code」セクションを開き、initialPermissionModeをbypassPermissionsに設定します。
あるいは、VSCodeのsettings.json(~/.vscode/settings.jsonまたは.vscode/settings.json)に直接記述することもできます。
{ "claudeCode.initialPermissionMode": "bypassPermissions"}
この設定により、VSCodeで新しいClaude Codeセッションを開くたびに、自動的にbypassPermissionsモードで起動します。
UIドロップダウンに「bypassPermissions」が表示されない問題の回避策
VSCode拡張機能のUIには、permission modeを切り替えるドロップダウンメニューがあります。しかし、このドロップダウンにはbypassPermissionsが選択肢として表示されない既知の問題があります(GitHub Issues #16042として報告済み)。
UIから設定できない場合は、settings.jsonへの直接記述で対応します。
方法1: VSCodeのsettings.jsonに記述する
{ "claudeCode.initialPermissionMode": "bypassPermissions"}
方法2: Claude Codeのsettings.jsonに記述する
{ "permissions": { "defaultMode": "bypassPermissions" }}
方法2の~/.claude/settings.jsonは、ターミナル版・VSCode拡張版の両方に適用されます。両方のインターフェースを使う場合はこちらが便利です。
Claude Codeの環境設定や活用方法について、個別にご相談いただけます。「どの機能から使えばいいか」「自社業務への適用方法を知りたい」といった段階から対応しています。
VSCode Remote SSH環境での注意点と解決策(実践事例)
ここでは、実際に発生したトラブル事例をもとに、VSCode Remote SSH環境での設定の落とし穴と解決策を解説します。
VSCode Remote SSH機能とは、ローカルのVSCodeから別のマシン(Mac miniやLinuxサーバーなど)にSSH接続し、リモートマシン上でコードを編集・実行できる機能です。Claude Code拡張機能をこの環境で使うことで、自宅PCからオフィスのマシンや専用の開発サーバーを操作できます。(VSCode Remote SSHでMac miniを遠隔操作する方法 →)
問題の症状:再接続後に毎回パーミッション確認が表示される
SSH Remote環境でClaude Codeを使っていると、次のような問題が発生します。
~/.claude/settings.jsonにbypassPermissionsを設定済みにしても効かない- VSCodeの
settings.jsonにclaudeCode.initialPermissionMode: bypassPermissionsを追加しても変化なし - 一度設定を有効にしても、VSCodeを閉じて再接続すると設定がリセットされる
原因:ローカルとリモートで設定ファイルが別々に管理される
この問題の根本原因は、Claude Codeの設定ファイルが「接続元のローカルマシン」と「接続先のリモートマシン」で別々に管理されていることにあります。
| 場所 | 設定ファイル | 反映されるもの |
|---|---|---|
| ローカルマシン(自分のPC) | ~/.claude/settings.json |
ローカルで動かすClaude Code |
| リモートマシン(Mac miniなど) | ~/.claude/settings.json |
SSH経由で動かすClaude Code |
SSH Remote経由でClaude Codeを使う場合、Claude Codeの実行はリモートマシン側で行われます。そのため、ローカルのsettings.jsonを設定しても、リモートマシンにその設定は反映されません。
解決策:リモートマシン側のsettings.jsonを直接設定する
解決策はシンプルで、リモートマシン側の~/.claude/settings.jsonを直接設定することです。
SSHでリモートマシンに接続して設定する:
# リモートマシンにSSH接続ssh <リモートマシンのホスト名># .claudeフォルダが存在しない場合は作成mkdir -p ~/.claude# settings.jsonを作成(または既存ファイルを編集)cat > ~/.claude/settings.json << 'EOF'{ "permissions": { "defaultMode": "bypassPermissions" }}EOF# 設定を確認cat ~/.claude/settings.json
設定後、VSCodeのRemote SSH接続を切断して再接続し、新しいセッションを開くと設定が反映されます。
設定が反映されているか確認する方法:
Claude Codeセッション内で以下のコマンドを実行し、エラーなく完了すれば設定が有効です。
# 確認用(小さなファイルを作成して削除)echo "test" > /tmp/permission_test.txt && rm /tmp/permission_test.txt && echo "bypassPermissions is working"
ターミナルで確認ダイアログが表示されずに実行されれば、設定が有効になっています。
補足Mac miniをClaude Codeの常時稼働サーバーとして使う場合の環境構築については、MacBookとMac miniでClaude Code環境を同期する →も参考にしてください。
\ 業務自動化のお悩み、プロが30分で整理します /
法人向けClaude Code個別指導の無料相談はこちらbypassPermissionsを安全に使うための注意点
bypassPermissionsモードはClaude Codeの生産性を大幅に向上させますが、使い方を誤ると意図しない結果を招くことがあります。
どんな環境で使うべきか
eesel AIが実施した調査によると、--dangerously-skip-permissionsを使用した開発者の32%が少なくとも1回の意図しないファイル変更を経験し、9%がデータ損失を報告しています。
bypassPermissionsを使う場合のチェックリスト:
- [ ] 重要なファイルのバックアップがある(Gitで管理されている等)
- [ ] コンテナや仮想マシンなど、影響範囲を限定できる環境である
- [ ] 実行するタスクの内容が明確で、予期しない操作が少ない
- [ ] 本番環境・重要データには直接アクセスしない設定になっている
個人の開発環境や隔離された自動化ワークフローでの使用は問題ありませんが、本番サーバーや重要なデータを扱う環境での使用は慎重に判断してください。
企業・チームでの管理方法(managed-settings.json)
複数人がClaude Codeを使う企業環境では、managed-settings.jsonを使って組織全体の設定を管理できます。
managed-settings.jsonは、ユーザーが上書きできない最高優先度の設定ファイルです。管理者が特定のモードを禁止したり、許可する操作を制限したりできます。
// managed-settings.json{ "permissions": { "disableBypassPermissionsMode": true }}
この設定により、所属するメンバーがbypassPermissionsモードを使用できなくなります。セキュリティポリシーの観点から、リスクの高い環境ではこの設定を検討してください。
Hooksを使ったより細かい自動承認設定
Claude Code v2.0以降では、--dangerously-skip-permissionsの代替としてHooksが推奨されています。HooksはClaude Codeの操作ごとに実行するスクリプトを定義できる機能で、「安全な操作は自動承認、危険な操作は確認する」という細かい制御が可能です。
// .claude/settings.json{ "hooks": { "pre_tool_call": [ { "script": "~/.claude/hooks/check-permission.sh", "on_failure": "ask" } ] }}
Hooksを使うことで、bypassPermissionsのような「全部スキップ」ではなく、「特定のコマンドだけ自動承認する」という安全性と利便性のバランスが取れた設定が実現できます。
よくある質問
Q. bypassPermissionsに設定したのにVSCodeで確認が出る場合は?
VSCode拡張機能のUIドロップダウンではbypassPermissionsが選択肢に表示されないため、UIから設定した場合は効果がありません。VSCodeのsettings.json(~/.vscode/settings.jsonまたは.vscode/settings.json)に直接"claudeCode.initialPermissionMode": "bypassPermissions"を記述してください。または、~/.claude/settings.jsonのpermissions.defaultModeを設定する方法でも対応できます。
Q. SSH Remote接続後に設定がリセットされるのを防ぐには?
リモートマシン側の~/.claude/settings.jsonを直接設定してください。SSH経由でClaude Codeを使う場合、設定の読み込み先はリモートマシンのファイルシステムです。ローカルマシンの設定ファイルは参照されません。
Q. –dangerously-skip-permissionsとsettings.jsonのbypassPermissionsは同じ効果か?
技術的にはほぼ同等の効果ですが、運用面での違いがあります。--dangerously-skip-permissionsはコマンド起動時の一時的な設定で、毎回指定が必要です。settings.jsonのbypassPermissionsは永続化設定で、一度設定すると常に適用されます。安定した自動化ワークフローにはsettings.jsonへの記述が推奨です。
Q. 企業でClaude Codeを使う場合、特定のユーザーだけbypassPermissionsを制限できるか?
managed-settings.jsonを使うことで、組織全体またはグループ単位でbypassPermissionsモードの使用を禁止できます。"disableBypassPermissionsMode": trueの設定は、ユーザーが自分のsettings.jsonで上書きできないため、管理者がポリシーを強制できます。
\ AI活用の「次の一手」を一緒に考えませんか /
法人向けClaude Code個別指導の無料相談はこちらまとめ
Claude Codeのpermission設定について、主要なポイントをまとめます。
- ターミナル版:
~/.claude/settings.jsonに"defaultMode": "bypassPermissions"を設定するのが最も確実 - VSCode拡張版: UIドロップダウンではなく、
settings.jsonへの直接記述が必要 - SSH Remote版: ローカルではなく、リモートマシン側の
~/.claude/settings.jsonを設定する - セキュリティ: bypassPermissionsはバックアップ済みの環境・隔離された環境での使用を推奨
「設定したのに効かない」トラブルの多くは、設定ファイルの優先度とローカル/リモートの区別を把握することで解決できます。まずは自分の環境(ターミナル/VSCode/SSH)を確認してから、対応する方法で設定してみてください。
Claude Codeの導入・活用をサポートします
株式会社Nexaでは、Claude Codeを活用した業務自動化の個別指導・企業研修を提供しています。非エンジニアの方でも3ヶ月で業務自動化を実現できるプログラムです。「何から始めればいいかわからない」という段階からご支援いたします。





