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 の全てのパーミッションチェック(権限確認プロンプト)をバイパスし、完全に自律動作させるフラグ。

1
claude --dangerously-skip-permissions

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 -rfgit 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 活用を最も手軽に実現するツール。

インストール

1
curl -fsSL https://raw.githubusercontent.com/hiragram/claude-docker/main/install.sh | bash

使い方

1
2
3
4
5
6
7
8
# 通常起動
claude-docker

# YOLO モード(安全に封じ込めて実行)
claude-docker --dangerously-skip-permissions

# プロンプト指定
claude-docker -p "explain this codebase"

仕組み

  1. 初回起動時: 軽量 Docker イメージ(Debian slim + git + curl)をビルドし、Claude Code を永続ボリュームにインストール。ブラウザで OAuth ログイン
  2. 2回目以降: 認証済み状態で即座に起動
  3. カレントディレクトリをマウント: 作業対象のフォルダだけをコンテナに渡す(それ以外のホストファイルは見えない)
  4. ホスト設定を自動同期: ~/.claude/ 内の設定ファイルをコンテナにコピー

同期される設定

ファイル/フォルダ内容
settings.jsonClaude Code 設定
CLAUDE.mdグローバル指示
hooks/カスタムフック
plugins/プラグイン・スキル
commands/カスタムスラッシュコマンド
agents/カスタムエージェント定義

ホスト側の ~/.claude/ とは別に ~/.claude-docker/ に保存されるため、ホスト側の Claude Code と干渉しない設計になっている。

アンインストール

1
2
3
4
rm ~/.local/bin/claude-docker
rm -rf ~/.claude-docker ~/.claude-docker.json
docker rmi claude-code-docker
docker volume rm claude-code-local

他の選択肢

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 モードを使うためのチェックリスト

  1. ホストマシン上では絶対に使わない — 必ず Docker コンテナか VM 内で実行
  2. ネットワークを制限する--network none またはファイアウォールルールで外部通信を制御
  3. 信頼できるリポジトリでのみ使用 — 悪意ある .claude/ 設定が含まれる可能性を考慮
  4. Git で管理された環境で作業 — いつでもロールバック可能な状態を維持
  5. マウントは最小限に — 必要なディレクトリだけをコンテナに渡す

--dangerously-skip-permissions は「危険なフラグ」ではなく、「適切な環境で使えば最強の自動化ツール」。Docker での封じ込めがその鍵になる。


参考リンク