Skip to main content
OpenCode のセッションも、同じ一覧、同じ Dynamic Island、同じペアリングの上に表示されます。ただし OpenCode は他の 2 つのエージェントとは作りが違い — フックもなく、専用のターミナルウィンドウもありません — そのため、いくつかの点で iPhone 側の見え方が変わります。 Nomo が一貫して守っているのは、Mac が実行を保証できないボタンは出さないという方針です。そのため、iPhone からできないことについては、黙って失敗するコントロールではなく「これはコンピュータで行ってください」という率直な案内が表示されます。
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 の 5 つはそのまま /nomo-pair/nomo-status/nomo-approvals/nomo-reset/nomo-unpair です。付ける接頭辞も、探すメニューもありません。 /nomo-pair は OpenCode だけで完結します — 一度もペアリングしたことのないマシンを、ここからペアリングできます。すでに Claude Code や Codex からペアリング済みなら、することは何もありません。OpenCode のセッションがそのまま表示されます。 5 つともコマンドにまとめてあります。
/nomo-approvals はマシン単位のスイッチで、Claude Code や Codex と共有されます。OpenCode からオフにすると、3 つすべてでオフになります。

ペアリング後の再起動

プラグインがペアリングを読むのは、OpenCode のサーバーが起動するときの 1 回だけです。未ペアリングだったコンピュータをペアリングしても、動作中の OpenCode はすでに何も送らないと判断した後です — 終了して開き直せば、セッションのミラーリングが始まります。これはインストールで求めているものと同じ再起動で、ペアリングしたばかりのマシンに何も表示されないときに最初に確認すべき点です。

「拒否」はターン全体への判断

OpenCode は、拒否された権限を 1 つのツールについての回答ではなく、エージェントがしていること全体についての回答として扱います。そのため iPhone から拒否すると、そのセッションが待っていた他のすべての許可リクエストも同時に拒否されます — それらのカードは解決され、iPhone から自動的に消えます。 質問を断った場合も、あらためて尋ねられるのではなくターンが終了します。 「許可」と「常に許可」が解決するのは、タップしたカードだけです。

「Macで開く」は非対応

OpenCode のセッションにこのボタンは表示されません。OpenCode のセッションはターミナルウィンドウではなくエディタ自身のサーバープロセスに属するため、iPhone が前面に出せるウィンドウがありません — opencode serve の下ではウィンドウ自体が存在しないこともあります。 カード上のそれ以外の操作は通常どおり動作します。コンピュータへ戻るショートカットがないだけです。

OpenCode は確認が少ない

承認そのものは動いています。OpenCode は Claude Code よりも確認を求める場面が少ないだけで、iPhone が静かなときは、何かが壊れているのではなく、そもそも何も尋ねられていないというのがほとんどです。 既定の設定で確認を求めるのは、次の 4 つです。
  • プロジェクトフォルダの外にあるファイルを操作するとき。
  • .env ファイルを読むとき。
  • OpenCode 自身のループ検知が、エージェントが同じところを回っていると判断したとき。
  • エージェントがあなたに投げかける質問。
それ以外は、シェルコマンドも含めて確認なしで実行されます。 これは OpenCode の既定の設定であって、動かせない仕様ではありません。プロジェクトの .opencode/opencode.json(すべてのプロジェクトに効かせるなら ~/.config/opencode/opencode.json)でツールを ask にすれば、そのツールはふたたびあなたの確認を通るようになり、iPhone にも届きます。
そうしたいかどうかは、あなたの働き方の好みの問題です。Nomo はエージェントが尋ねたことをそのまま映すだけで、独自に何かを足すことはありません。 これでも静けさの説明がつかないときは、まったく同じに見えるもう 1 つの原因があります — すぐ下の自動承認です。

自動承認は非表示

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 を終了してください。

アプリの更新

すべてのセッションには、どのエージェントが生成したかを示すラベルが付きます。OpenCode 対応より前のバージョンの Nomo アプリはこのラベルを認識できず、Claude Code のマークにフォールバックします。セッションはすべて表示され、動作にも問題はありませんが、ロゴだけが違うものになります。iPhone のアプリを更新すればそれで解決します — コンピュータ側で変更することは何もありません。