OpenCode permission prompts on your phone

OpenCode asks for permission through its plugin system rather than a shell hook, so Reins ships as a plugin. Install it once per user and every OpenCode session, in the TUI or from opencode run, asks your phone.

Install the plugin

reins setup writes it along with the Claude Code, Codex and Pi hooks, whether or not OpenCode looks installed. To do it alone, or to see the change first:

reins install-hooks --agent opencode --dry-run
reins install-hooks --agent opencode

The plugin lands at ~/.config/opencode/plugins/reins.js, per user rather than per project, so a fresh checkout is not silently unwired. If a file of that name exists and is not ours, install-hooks refuses rather than overwriting it; uninstall-hooks is just as careful in the other direction. Restart OpenCode afterwards.

How the round trip works

Each OpenCode process carries its own local server, so there is no single endpoint the daemon could post a verdict to. The plugin therefore owns the round trip: on permission.asked it blocks on the reins binary, which asks the daemon, which asks your phone; when the answer comes back the plugin replies to its own server and the command runs or does not. If the daemon is not running, no phone is attached, or nobody answers in time, the plugin gets nothing and OpenCode prompts you as usual.

Once or reject, never always

OpenCode lets a permission be granted once, rejected, or granted for good. From the phone, Reins offers the first two only. A standing grant is a decision about everything that follows, not about the request in front of you, and the app has no surface for it. If you want one, give it at the desk.

OmO

OmO runs inside OpenCode, and the plugin reports its sessions as OmO’s, so --agent omo wires OpenCode and nothing more is needed.

What you do not get

OpenCode keeps its messages in its own store rather than a file the daemon can read, so the chat view on the phone has no transcript for it; the live transcript is Claude Code only. The terminal on the phone still opens a real shell on the machine, and OpenCode under herdr, tmux or zellij can be typed to from there.

Check it

reins doctor
reins agents