OpenCode 専用のペアリングはありません。3 つのエージェントはいずれも、そのコンピュータ上の同じ設定を読みます — どれか 1 つからマシンを一度ペアリングするだけです。通信の上での違いは、どのエージェントかを示すラベルだけです。
Claude Code や Codex と同じところ
- セッション、状態、フォルダ、そして Dynamic Island。
- シェルコマンド、ファイルの編集、読み取り、取得、ウェブ検索に対する許可リクエスト — Dynamic Island やアプリからの「許可」「常に許可」「拒否」。
- 選択肢付きの質問。タップして回答できます。
- 計画ビューアに表示される、そのセッションの ToDo リスト。
CLI とデスクトップアプリ
どちらでも動作し、Nomo の振る舞いも同じです。デスクトップアプリは OpenCode 自身のサーバーを内部で動かしており、そのサーバーは CLI とまったく同じように~/.config/opencode/plugins/ からプラグインを読み込みます。そのため、アプリで開始したセッションも同じように iPhone に届き、タイトル、モデル、実行中か待機中かという状態が表示され、承認は Dynamic Island からでもアプリからでも回答できます。
デスクトップアプリ用の別のインストールはありません。インストールに書かれている手順が両方をカバーします。再起動も同じです — プラグインが読み込まれるのはサーバーの起動時の 1 回だけで、ホットリロードはありません。インストール時にすでに開いていたアプリは、終了して開き直す必要があります。
1 つだけ変わらないのが「Macで開く」です。デスクトップアプリを含め、OpenCode のセッションには表示されません。理由はすぐ下にあります。
OpenCode のデスクトップアプリはまだベータ版です。アプリで開始したセッションが iPhone に届かないときは、上の再起動をまず確認してください。
接頭辞のないコマンド
Claude Code は Nomo のコマンドをnomo-cc: の名前空間に置き、Codex は $ のスキルとして実行します。OpenCode はそのどちらでもありません。コマンド名はフラットでグローバルなので、Nomo の 6 つはそのまま /nomo-pair、/nomo-status、/nomo-approvals、/nomo-reset、/nomo-unpair、/nomo-update です。付ける接頭辞も、探すメニューもありません。
/nomo-pair は OpenCode だけで完結します — 一度もペアリングしたことのないマシンを、ここからペアリングできます。すでに Claude Code や Codex からペアリング済みなら、することは何もありません。OpenCode のセッションがそのまま表示されます。
5 つともコマンドにまとめてあります。
/nomo-approvals はマシン単位のスイッチで、Claude Code や Codex と共有されます。OpenCode からオフにすると、3 つすべてでオフになります。ペアリング後の再起動
プラグインがペアリングを読むのは、OpenCode のサーバーが起動するときの 1 回だけです。未ペアリングだったコンピュータをペアリングしても、動作中の OpenCode はすでに何も送らないと判断した後です — 終了して開き直せば、セッションのミラーリングが始まります。これはインストールで求めているものと同じ再起動で、ペアリングしたばかりのマシンに何も表示されないときに最初に確認すべき点です。「拒否」はターン全体への判断
OpenCode は、拒否された権限を 1 つのツールについての回答ではなく、エージェントがしていること全体についての回答として扱います。そのため iPhone から拒否すると、そのセッションが待っていた他のすべての許可リクエストも同時に拒否されます — それらのカードは解決され、iPhone から自動的に消えます。 質問を断った場合も、あらためて尋ねられるのではなくターンが終了します。 「許可」と「常に許可」が解決するのは、タップしたカードだけです。メモと入力での回答は非対応
OpenCode の許可リクエストに「メモを付けて拒否…」は表示されません。拒否にメッセージを添えると、OpenCode でのその拒否の扱いが変わってしまいます。そのため Nomo は、誰にも読まれない言葉を集めるのではなく、あなたが求めたとおりの拒否だけを送ります。 質問に表示されるのは選択肢だけです — 「その他…」も「メモを追加」もありません — また、Claude Code の「承認して自動モード」などの選択肢もここでは使えません。「Macで開く」は非対応
OpenCode のセッションにこのボタンは表示されません。OpenCode のセッションはターミナルウィンドウではなくエディタ自身のサーバープロセスに属するため、iPhone が前面に出せるウィンドウがありません —opencode serve の下ではウィンドウ自体が存在しないこともあります。
「中断」も、OpenCode のセッションには表示されません。
カード上のそれ以外の操作は通常どおり動作します。ないのはこの 2 つのボタンだけです。
OpenCode は確認が少ない
承認そのものは動いています。OpenCode は Claude Code よりも確認を求める場面が少ないだけで、iPhone が静かなときは、何かが壊れているのではなく、そもそも何も尋ねられていないというのがほとんどです。 既定の設定で確認を求めるのは、次の 4 つです。- プロジェクトフォルダの外にあるファイルを操作するとき。
.envファイルを読むとき。- OpenCode 自身のループ検知が、エージェントが同じところを回っていると判断したとき。
- エージェントがあなたに投げかける質問。
.opencode/opencode.json(すべてのプロジェクトに効かせるなら ~/.config/opencode/opencode.json)でツールを ask にすれば、そのツールはふたたびあなたの確認を通るようになり、iPhone にも届きます。
自動承認は非表示
OpenCode は--yolo を自身のインターフェイスの中で処理し、プラグインには一切伝えません。そのためアプリ側は、承認をオフにして動いているセッションかどうかを表示できません — 他のセッションとまったく同じに見えます。
届くはずの許可リクエストが iPhone に来ないときは、まずここを確認してください。自動承認モードで始まったセッションは、あなたを含め誰にも確認しません。
プランモード
plan エージェントに切り替えると — OpenCode では Tab です — その状態が続くあいだ、iPhone はそのセッションを計画中として表示します。 計画そのものはコンピュータに残ります。OpenCode が計画ファイルを書き出すのはOPENCODE_EXPERIMENTAL_PLAN_MODE が設定されているときだけで、これは既定でオフです。そのため、Nomo が送れる文書は通常ありません。OpenCode のセッションで計画ビューアに表示されるのは、通常のターンとまったく同じ ToDo リストです。
この環境変数をオンにすると、iPhone に届くものがもう 1 つ増えます。計画が完成したときに OpenCode 自身が出す「build エージェントに切り替えて実装を始めますか?」という質問が、タップで回答できる承認として届きます。同時に、リポジトリの .opencode/plans/ に計画ファイルが書き出されるようになるので、.gitignore に追加しておくとよいでしょう。
リセットには OpenCode の終了が必要
/nomo-reset は、プロセスが失われた行を消去します。OpenCode の場合そのプロセスは、あなたが入力したターミナルではなくサーバーです — そのため、動作中の OpenCode に属する行は仕様として消去されません。古そうに見える行が消えないときは、先に OpenCode を終了してください。
プラグインの更新
/nomo-update は OpenCode だけのものです。Claude Code と Codex はそれぞれのホスト側で更新しますが、OpenCode には尋ねるホストがないため、このコマンドがプラグインに同梱されています。
実行する前にまず報告します — Already on 2.1.22 — nothing to do.、または取得しようとしているバージョンです。そのあと取得し、このページの他の項目と同じ再起動を求めます。触れるのは Nomo 自身のクローンだけで、bunx nomo-ai が更新するのもグローバルインストールだけです — --project でのインストールは、そのプロジェクトの中で /nomo-update を実行して更新します。動作と、実行を断る条件はコマンドにあります。

