Claude Code の「YOLO モード」を安全に使う — dangerously-skip-permissions と Docker 活用
関連ポスト: hiragram リポジトリ: hiragram/claude-docker
はじめに
Claude Code を使っていると、ファイル編集やコマンド実行のたびに「これを実行してもいいですか?」と確認を求められる。安全設計として正しいが、反復的な作業では毎回の承認が煩わしくなる。
そこで登場するのが --dangerously-skip-permissions フラグ。通称「YOLO モード」。YOLO とは “You Only Live Once”(人生は一度きり) の略で、「結果を気にせず、とにかくやってしまえ」というネットスラング。安全確認を一切スキップして全操作をぶっ通しで実行させる様子が、まさに「後先考えずに突っ走る」YOLOの精神そのものであることから、コミュニティでこう呼ばれるようになった。
便利だが、名前の通り危険も伴う。このフラグの本質と、安全に使うための Docker 活用について整理する。
--dangerously-skip-permissions とは
Claude Code の全てのパーミッションチェック(権限確認プロンプト)をバイパスし、完全に自律動作させるフラグ。
| |
3つの動作モードの比較
| モード | 挙動 | ユーザー介入 |
|---|---|---|
| 通常モード | ファイル変更・コマンド実行のたびに承認を要求 | 毎回必要 |
| Auto-Accept (Shift+Tab) | UI上で承認を自動化 | 介入可能 |
| dangerously-skip-permissions | 全ての安全ガードレールを除去 | 一切不要 |
なぜ「dangerously」と名付けられているのか
Anthropic が意図的に「危険」という語を含めている。実際にリスクは深刻で、以下のような報告がある。
- Wolak 事件(2025年10月): Ubuntu/WSL2 上で Claude Code が
rm -rf /を実行し、/bin、/boot、/etcなどシステムディレクトリを破壊 - eesel AI の調査によると、このフラグ使用者の 32% が意図しないファイル変更を経験、9% が実際のデータ損失を報告
主なリスク
| リスク | 具体例 |
|---|---|
| 破壊的コマンドの無確認実行 | rm -rf、git reset --hard、設定ファイル上書き |
| スコープクリープ | 指定範囲外のファイルを「親切心」で変更・削除 |
| 資格情報の漏洩 | ホストの全資格情報にアクセス可能な状態 |
| 連鎖的被害 | 1つの誤った解釈が次々と問題を引き起こす |
それでも YOLO モードが必要な理由
危険だが、以下のユースケースでは事実上不可欠。
CI/CD パイプライン
承認プロンプトに応答する人間がいないため、パーミッション確認があるとパイプラインが止まる。自動コードレビューや自動テスト生成に必要。
長時間の自律タスク
ある開発者はこのフラグで 9 時間のセッションを実行し、金融データ分析システム全体(API接続、データ取得、日次レポート生成まで)を無人で構築した。
並列 Claude 実行
Anthropic のエンジニア自身が、C コンパイラを並列 Claude で構築する際に bash の while ループ内で使用(ただし「コンテナ内で実行すること」と注記)。
反復的な定型作業
ファイルの一括変更、コード生成、テストの繰り返し実行など、毎回の承認がボトルネックになる作業。
解決策: Docker で封じ込める
「全自動で好きなだけ作業させたい、でもホストマシンは壊されたくない」— この矛盾を解決するのが Docker コンテナ内での実行。Anthropic 自身も公式に推奨しているアプローチ。
ホスト直接実行 vs Docker 内実行
| リスク | ホスト上で実行 | Docker 内で実行 |
|---|---|---|
rm -rf / | ホスト OS が破壊される | コンテナ内のみ影響。再ビルドで復旧 |
| 資格情報漏洩 | ホストの全資格情報にアクセス可能 | マウントした情報のみに限定 |
| ネットワーク経由の情報送信 | 制限なし | --network none やファイアウォールで制御 |
| スコープ外のファイル変更 | ホスト全体が対象 | マウントされたディレクトリのみ |
hiragram/claude-docker — ワンコマンドで安全な YOLO 環境
@hiragram 氏が作った claude-docker は、上記の Docker 活用を最も手軽に実現するツール。
インストール
| |
使い方
| |
仕組み
- 初回起動時: 軽量 Docker イメージ(Debian slim + git + curl)をビルドし、Claude Code を永続ボリュームにインストール。ブラウザで OAuth ログイン
- 2回目以降: 認証済み状態で即座に起動
- カレントディレクトリをマウント: 作業対象のフォルダだけをコンテナに渡す(それ以外のホストファイルは見えない)
- ホスト設定を自動同期:
~/.claude/内の設定ファイルをコンテナにコピー
同期される設定
| ファイル/フォルダ | 内容 |
|---|---|
settings.json | Claude Code 設定 |
CLAUDE.md | グローバル指示 |
hooks/ | カスタムフック |
plugins/ | プラグイン・スキル |
commands/ | カスタムスラッシュコマンド |
agents/ | カスタムエージェント定義 |
ホスト側の ~/.claude/ とは別に ~/.claude-docker/ に保存されるため、ホスト側の Claude Code と干渉しない設計になっている。
アンインストール
| |
他の選択肢
Anthropic 公式 devcontainer
Anthropic は 公式の devcontainer 設定 を提供している。VS Code の Dev Containers 拡張と組み合わせて使う。
特徴:
- 許可リスト方式のネットワーク制御(npm, GitHub, Claude API のみ許可)
- デフォルト拒否ポリシーで外部アクセスをブロック
- 起動時にファイアウォールルールを検証
tintinweb/claude-code-container
- 非 root 実行(
claudeユーザー, UID 1001) - Linux ケーパビリティの最小化
- プロセス数制限(最大 100)
- tmpfs マウント(
/tmpをメモリ内に隔離) --no-new-privilegesで権限エスカレーション防止
まとめ: YOLO モードを使うためのチェックリスト
- ホストマシン上では絶対に使わない — 必ず Docker コンテナか VM 内で実行
- ネットワークを制限する —
--network noneまたはファイアウォールルールで外部通信を制御 - 信頼できるリポジトリでのみ使用 — 悪意ある
.claude/設定が含まれる可能性を考慮 - Git で管理された環境で作業 — いつでもロールバック可能な状態を維持
- マウントは最小限に — 必要なディレクトリだけをコンテナに渡す
--dangerously-skip-permissionsは「危険なフラグ」ではなく、「適切な環境で使えば最強の自動化ツール」。Docker での封じ込めがその鍵になる。