「承認待ち」で止まる問題を解決:Claude Code、Codex、OpenCode の権限プロンプト対策(完全な YOLO にせずに)
本当の承認待ちなのか、設定が反映されていないのか、UI や接続の問題なのかを見分ける実践的な方法と、セッションを安全に進め続けるコツ。
- CLI
- 0.2.17
- プレビュー ref
- a2c45c8
Claude Code、Codex、OpenCode で大きく時間を失う原因は、クラッシュではありません。
こういう場面です。
セッションを開始し、動いているのを確認して席を離れる。戻ってくると、次のような表示が出ている。
- 「waiting for approval」(承認待ち)
- 「needs permission」(権限が必要)
- 「waiting for input」(入力待ち)
ターミナルの前にいれば、たいてい 5 秒で済む判断です。
スマホからだと(あるいは何をしていたか忘れたあとだと)、次のどちらかになりがちです。
- 承認するつもりのなかったものを承認してしまう
- 気づかずに 1 時間何もしない
このガイドはその中間を扱います。
承認を「完全な YOLO」にせず、セッションを進め続ける。
要点
- まず、どの種類の「承認」なのかを見極めます。
- 本当の権限プロンプト(想定どおり)
- 設定が反映されていない 問題(よくある)
- UI や接続 の問題(これもよくある)
- Codex を使っているなら、承認設定のレイヤーとプロジェクトの信頼設定を確認します。
- スマホからなら、承認する前にリクエストを 文脈の中で 表示できる UI でセッションを開くのが安全です。
- Happier はその助けになる選択肢のひとつです。承認や権限リクエストは消えずに受信箱(Inbox)に残り、通知をタップすると正しいセッションとサーバーに直接移動します。
課題(わかりやすく)
承認は安全のための境界線です。
問題は「承認があること」ではありません。承認が次のような状態になることです。
- 見えない(気づかなかった)
- あいまい(何を承認するのかわからない)
- 一貫しない(設定を変えたのにまだ聞かれる)
そしてこの 3 つは、スマホではさらに悪化します。
よくある方法とそのトレードオフ
- すべてオフにする(YOLO /「never ask」):速いですが、疲れているときは危険です。
- 終わるまでターミナルの前にいる:安全ですが、長いセッションを走らせる意味がなくなります。
- スマホから SSH する:動きますが、小さなターミナルで承認内容を確認するのはつらい作業です。
承認を明示的にし、スマホから確認できるようにしたいなら、Happier は Claude Code、Codex、OpenCode などのエージェントをクロスデバイスで実行・オーケストレーションできるオープンソースのアプリです。
Happier を初めて使う場合(概要と入手方法)
Happier は、Claude Code、Codex、OpenCode などのセッション向けの オープンソースのコンパニオンアプリ(モバイル / Web / デスクトップ)です。
ワークフローは、信頼できるマシンでセッションを動かしたまま、スマホの Happier から文脈つきで承認を確認するというものです。
セットアップ:
- スマホから Happier を使う方法
- GitHub: https://github.com/happier-dev/happier
- インストール / ダウンロード: https://github.com/happier-dev/happier#how-it-works
- Discord: https://discord.gg/W6Pb8KuHfg
ステップ 1:「承認」を分類する
ケース A:本当の権限プロンプト
これは健全なケースです。セッションが副作用のある操作をしようとしています。
Happier を使っている場合、権限モードはまさに確認の頻度を調整するためにあります。
- デフォルト(Default)
- 読み取り専用(Read-only)
- セーフYOLO(Safe YOLO)(読み取りは自動で許可し、書き込みの前に確認)
- YOLO(プロバイダーが許す範囲で確認を省略)
すべてのプロバイダーがすべてのモードに対応しているわけではありません。Happier は実際に適用されるポリシーを表示します。
ケース B:設定が反映されていない(Codex でよくある例)
Codex には設定のレイヤー構造があります。
何かを変更したのに変化がない場合、よくある原因は次のとおりです。
- 間違った場所の設定ファイルを編集した
- 優先度の高いレイヤーで設定が上書きされている
- プロジェクトが信頼されていないため、プロジェクトの設定が読み込まれていない
- 組織のポリシーで制約がかかっている
Codex のドキュメントでは、次のように説明されています。
- ユーザー設定は
~/.codex/config.toml - プロジェクト単位の設定と「信頼」による制御
approval_policyやsandbox_modeといった設定項目
大きな手がかり:「never ask」と書いた設定を共有しているのにまだ聞かれる、という報告を見かけたら、それはあなたの勘違いではありません。まさにそう見える環境固有のバグがあります。
ケース C:UI は正常だが接続が切れている
セッションは待っているのに、古いストリームを見ていることがあります。
マシンがスリープしたり、ネットワークを切り替えたりすると、次の状態になることがあります。
- セッションはブロックされている
- でもプロンプトが見えない
この場合の「解決策」は、再接続して正しいセッションを開くことです。
ステップ 2:リスクに合ったワークフローを選ぶ
役立つルール:
- 実際の副作用がある操作(書き込みやインストール)を承認する前に、次を確認する。
- 何をしようとしているか
- どこでしようとしているか
- 最近何が変わったか
だからこそ、スマホで使いやすい UI が重要です。
Happier のワークフロー(承認を明示的にしたい場合)
Happier は「あなたの対応が必要なもの」を実際のデータとして扱います。
- 全体の受信箱(Inbox)
- 承認リクエスト
- 権限リクエスト
- ユーザーアクションのリクエスト(「Exit Plan Mode」など)
画面を移動しても消えないことが重要です。見逃したモーダルではありません。
モバイルでは、通知のルーティングも厳格です。
- 正しいセッションに直接移動する
- 不明なサーバーでの自動承認を避ける
トラブルシューティング
approval_policy = "never" に設定したのにまだ聞かれる
次のどちらかとして扱います。
- 信頼設定や設定レイヤーの不一致
- 環境固有のクライアントのバグ
試すこと:
- どの設定レイヤーが読み込まれているか確認する
- 同じセッションを別の環境(WSL / VM)で試す
- ツールを更新する(この種の問題は告知なく修正されることがよくあります)
スマホにプロンプトが表示されない
たいていは次のどちらかです。
- 通知のルーティングやサーバープロファイルの不一致
- 実際にプロンプトが出ているセッションを開いていない
複数のセッションを見て回るのではなく、ひとつの「対応リスト」(受信箱)を使いましょう。