スマホで承認するヒューマンインザループ:Claude Code、Codex、OpenCode に危険なコマンドを安全に実行させる
完全な YOLO にせず、スマホから危険な操作を承認する実践的な方法。期限付きアクセス、ワークフローの割り込み、スマホ向けの承認 UI を組み合わせます。
対象バージョン
- CLI
- 0.2.17
- プレビュー ref
- a2c45c8
長時間のセッションで本当に危ないのは、開始した瞬間ではありません。
開始から 40 分たち、あなたはスマホしか持っておらず、環境を本当に壊しかねない操作を求められたときです。
- システムの依存関係をインストールする
- ディレクトリを削除または書き換える
- シークレットや設定を変更する
- 普段なら気軽には実行しないコマンドを実行する
このとき、よくない反応が 2 つ浮かびます。
- 作業を止めたくないので すぐ承認する
- 判断する材料がないので すべて拒否する
代わりに役立つのは、承認を次のようにするワークフローです。
- 明示的である
- 内容を確認できる
- 必要に応じて期限がある
- スマホから使える
要点
- まず影響範囲を小さくします(承認が怖くなくなります)。安全な削除ラッパー、厳格な sudo / doas ルール、絞り込んだ権限を使います。
- 危険なステップには「人が承認するまで止める」仕組み(ワークフローの割り込み / 承認)を使います。
- 文脈つきでスマホから承認したいなら、消えない承認 UI が必要です(見逃すモーダルではなく)。
- Happier はその選択肢のひとつです。承認やリクエストを消えない受信箱(Inbox)のアイテムとして扱い、権限モードでどこまで厳しくするかを選べます。
課題
根本的な葛藤はシンプルです。
- Claude Code / Codex / OpenCode には、役に立つだけの権限を持たせたい
- 離れている間に一日を台無しにできるほどの権限は持たせたくない
この葛藤はひとつのトグルでは解決しません。
いくつかの層を重ねて解決します。
よくある方法とそのトレードオフ
- 完全な YOLO にする:問題が起きるまではうまくいきます。
- 書き込みを一切許可しない:安全ですが、制限が強すぎます。
- SSH でつないでターミナルで判断する:安全ですが、スマホで本格的な作業をすることになります。
うまくいくのは次の組み合わせです。
- 影響範囲の縮小
- 人が介在する明示的な一時停止
- スマホで使いやすい承認 UI
Happier は、このうち後半の 2 つをまとめて提供するツールのひとつです。
第 1 層:影響範囲を小さくして承認を怖くなくする
小さなことですが、効果があります。
- 安全な rm ラッパー(safe-rm)を使い、事故を元に戻せるようにする。
- sudo のデフォルトを厳しくし、ログを残す。
- シンプルで明示的なルールにしたいなら doas を検討する。
これは承認の代わりにはなりません。
ただ、「スマホでのひとつのミス」の被害を小さくできます。
第 2 層:期限付きのアクセス承認(共有マシンや機密性の高いマシンの場合)
大きな環境では、承認は個々のコマンドではなく アクセス に対して行うことがよくあります。
代表的な例は Teleport 型のアクセスリクエストです。
- ロールやリソースをリクエストする
- 誰かが承認する
- 期限が切れる
個人の開発マシンには重すぎますが、考え方は理解しておく価値があります。承認は、期限があり監査できるときに効果が高まります。
第 3 層:ワークフローの割り込み(承認するまで一時停止)
操作単位で承認したい場合のパターンはこうです。
- ワークフローが危険なステップに到達する
- 一時停止する
- 人の判断で再開する
これはエージェントのオーケストレーションフレームワークに存在する仕組み(interrupts)です。
トレードオフ:確実な通知と再開の仕組みが必要です。
Happier のワークフロー(消えない承認と権限モード)
Happier は関連する 2 つの概念を分けています。
- 権限(Permissions):どのくらいの頻度で確認されるか(デフォルト(Default)/ 読み取り専用(Read-only)/ セーフYOLO(Safe YOLO)/ YOLO)
- 承認(Approvals):すぐに実行すべきでない操作のための、受信箱(Inbox)に残る確認ポイント
受信箱が重要なのは、本当の意味での「対応リスト」だからです。
一時的なモーダルではありません。
そのため、スマホで次のことができます。
- 受信箱を開く
- 文脈の中でリクエストを確認する
- 承認または拒否する
スマホで承認するときの実践ルール
- 30 秒でリクエストを理解できなければ、承認しない。
- 次の情報を求める。
- 1 行の説明
- 正確なコマンド
- 正確なパス
- 最近何が変わったか
- YOLO よりセーフYOLO を選ぶ。
関連ガイド
mobilesecurityapprovalsclaudecodexopencode
最終更新: 2026-10-26