There is no separate OpenCode pairing. All three agents read the same config
on that computer — you pair the machine once, from any of
them. On the wire, the only difference is a label saying which agent it was.
What works the same
- Sessions, states, folders, and the Dynamic Island.
- Permission prompts — shell commands, file edits, reads, fetches, web searches — with Allow, Always allow and Deny from the island or the app.
- Questions, with their options, answered by tapping one.
- The session’s todo list, in the plan reader.
The CLI and the desktop app
Both work, and Nomo works the same in each. The desktop app runs OpenCode’s own server inside itself, and that server loads plugins from~/.config/opencode/plugins/ exactly as the CLI does — so a session you start
in the app reaches your phone the same way, with its title, its model, its
working-or-idle state, and approvals you can answer from the island or the app.
There’s no separate install for the desktop app: what
Installation describes covers both. So does the restart —
plugins are imported once when the server starts and there’s no hot reload, so
an app that was already open when you installed has to be quit and reopened.
Open on Mac is the one thing that doesn’t change: it stays absent on
OpenCode sessions, the desktop app included — see below.
The OpenCode desktop app is still in beta. If sessions started in it don’t
reach your phone, the restart above is the first thing to check.
Commands have no prefix
Claude Code namespaces Nomo’s commands asnomo-cc:, and Codex runs them as $
skills. OpenCode does neither: its command names are flat and global, so Nomo’s
five are just /nomo-pair, /nomo-status, /nomo-approvals, /nomo-reset and
/nomo-unpair. Nothing to prefix, and no menu to find them under.
/nomo-pair works on its own from OpenCode — a machine that has never been
paired can be paired from here. If you already paired it from Claude Code or
Codex, there’s nothing to do: your OpenCode sessions simply appear.
They’re all in Commands.
/nomo-approvals is the machine’s switch, shared with Claude Code and Codex.
Turning it off from OpenCode turns it off for all three.Restart after pairing
The plugin reads the pairing once, when OpenCode’s server starts. Pair a computer that was previously unpaired and the running OpenCode already decided to stay quiet — quit and reopen it, and sessions start mirroring. This is the same restart the install asks for, and it’s the first thing to check when a freshly paired machine shows nothing.Deny is a decision about the turn
OpenCode treats a rejected permission as an answer about what the agent is doing, not about one tool. So denying from your phone also rejects every other permission that session was waiting on — their cards resolve and drop from your phone on their own. Declining a question ends the turn rather than asking again. Allow and Always allow only ever resolve the card you tapped.No “Open on Mac”
The button doesn’t appear on OpenCode sessions. An OpenCode session belongs to the editor’s own server process rather than to a terminal window, so there’s no window for your phone to bring to the front — underopencode serve there may
be no window at all.
Everything else on the card works normally; there’s just no shortcut back to the
computer.
OpenCode asks for less
Approvals work. OpenCode simply asks for less than Claude Code does, so a quiet phone usually means nothing was asked, not that something is broken. Out of the box, four things prompt:- Touching a file outside the project folder.
- Reading a
.envfile. - OpenCode’s doom-loop guard, when it catches the agent going in circles.
- Questions the agent asks you.
ask in the project’s .opencode/opencode.json —
or in ~/.config/opencode/opencode.json for every project — puts it back in
front of you, and so on your phone:
Auto-approve isn’t shown
OpenCode handles--yolo inside its own interface and never tells a plugin
about it. So the app can’t show whether a session is running with approvals
turned off — it looks like any other session.
If prompts you expected never reach your phone, that’s the thing to check: a
session started in auto-approve mode isn’t asking anyone, including you.
Plan mode
Switch to the plan agent — Tab in OpenCode — and your phone marks the session as planning for as long as it holds there. The plan itself stays on your computer. OpenCode only writes plan files whenOPENCODE_EXPERIMENTAL_PLAN_MODE is set, and that’s off by default, so there’s
usually no document for Nomo to send you. What the plan reader shows for an
OpenCode session is its todo list, exactly as in a normal turn.
Turn that variable on and one more thing reaches your phone: when the plan is
done, OpenCode’s own “switch to the build agent and start implementing?”
question arrives as an approval you can answer with a tap. It also starts
writing plan files into .opencode/plans/ in your repository, which you’ll
probably want to add to .gitignore.
Reset needs OpenCode closed
/nomo-reset clears rows whose process is gone. For OpenCode that process is
the server, not the terminal you typed in — so a row belonging to a running
OpenCode won’t be cleared, by design. Quit OpenCode first if a stale-looking row
refuses to go.

