OpenCode 没有单独的配对。同一台电脑上的三个智能体读的是同一份配置——你只需从其中任意一个配对这台机器一次。在传输层面上,唯一的差别是一个标明它属于哪个智能体的标签。
与其他智能体相同的部分
- 会话、状态、文件夹,以及灵动岛。
- 权限请求——shell 命令、文件编辑、读取、抓取和网页搜索——可以在灵动岛或 App 里允许、始终允许和拒绝。
- 提问连同选项一起送达,点一个就能回答。
- 会话的待办清单,在计划阅读界面里。
CLI 和桌面应用
两边都能用,Nomo 在两边的表现也一样。桌面应用把 OpenCode 自己的服务器跑在自己内部,而那个服务器读取~/.config/opencode/plugins/ 里的插件,和 CLI 完全一样——所以你在应用里开的会话同样会到达手机,带着标题、模型、正在忙还是空闲的状态,权限请求也照样能在灵动岛或 App 里答复。
桌面应用没有单独的安装,安装里写的那一套两边通用。重启也一样:插件只在服务器启动时导入一次,没有热重载,所以安装时已经开着的那个应用,也得退出再重新打开。
唯一不变的是“在 Mac 上打开”——它在 OpenCode 的会话上依然不出现,桌面应用也一样,原因就在下面。
OpenCode 桌面应用仍处于 beta 阶段。如果你在应用里开的会话没有到达手机,先检查上面那次重启。
命令没有前缀
Claude Code 把 Nomo 的命令放进nomo-cc: 命名空间,Codex 则把它们当作 $ skill 运行。OpenCode 两样都不做:它的命令名是扁平且全局的,所以 Nomo 的这五条就是 /nomo-pair、/nomo-status、/nomo-approvals、/nomo-reset 和 /nomo-unpair。没有前缀要加,也没有菜单要翻。
/nomo-pair 在 OpenCode 里可以独立使用——一台从未配对过的机器可以从这里完成配对。如果你已经在 Claude Code 或 Codex 里配对过它,那就什么都不用做:你的 OpenCode 会话会直接出现。
五条命令全都列在命令里。
/nomo-approvals 是这台机器的开关,和 Claude Code、Codex 共用。从 OpenCode 里把它关掉,三个智能体就一起关掉了。配对之后要重启
插件只在 OpenCode 的服务器启动时读一次配对。给一台此前未配对的电脑做完配对,正在运行的那个 OpenCode 早已认定自己该保持沉默——退出再重开,会话就会开始镜像过来。这就是安装里要求的那次重启,也是一台刚配对好的机器什么都不显示时第一个该检查的地方。拒绝针对的是整轮对话
OpenCode 把一次被驳回的权限当作对智能体正在做的这件事的答复,而不是对某一个工具的答复。所以你在手机上拒绝,也会一并驳回这个会话正在等待的其他每一个权限——它们的卡片会自行了结,并从你手机上消失。 回绝一个提问会结束这一轮,而不是再问你一遍。 允许和始终允许则只会了结你点的那一张卡片。没有“在 Mac 上打开”
这个按钮不会出现在 OpenCode 的会话上。OpenCode 的会话属于编辑器自己的服务器进程,而不是某个终端窗口,所以没有窗口可以让你的手机调到最前——在opencode serve 下甚至可能根本没有窗口。
卡片上的其他一切照常工作,只是少了一条回到电脑的捷径。
OpenCode 本来就问得少
审批是通的。OpenCode 只是比 Claude Code 问得少,所以手机安静,通常意味着根本没人问过,而不是哪里坏了。 默认设置下,会来问你的只有四件事:- 碰项目文件夹之外的文件。
- 读
.env文件。 - OpenCode 自己的死循环防护,当它认定智能体在原地打转时。
- 智能体向你提的问题。
.opencode/opencode.json 里、或者要对所有项目生效就在 ~/.config/opencode/opencode.json 里,把某个工具设成 ask,它就重新回到你面前,也就回到你手机上:
自动批准不会显示
OpenCode 在自己的界面里处理--yolo,从不把这件事告诉插件。所以 App 没法显示某个会话是不是在关闭审批的情况下跑的——它看起来和别的会话没有区别。
如果你预期会来的请求始终没到手机上,那就该查这一点:一个以自动批准模式启动的会话谁也不问,包括你。
计划模式
切换到 plan 智能体——在 OpenCode 里按 Tab——你的手机就会把这个会话标记为正在规划,只要它还停在那个模式里。 计划本身留在你的电脑上。只有设置了OPENCODE_EXPERIMENTAL_PLAN_MODE,OpenCode 才会写出计划文件,而它默认是关的,所以通常没有文档可以发给你。对 OpenCode 会话来说,计划阅读界面显示的就是它的待办清单,和普通的一轮完全一样。
把这个变量打开,还会多一样东西到达你的手机:计划写完时,OpenCode 自己那句*“切换到 build 智能体并开始实现?”*的提问会作为一条审批送来,你点一下就能回答。它同时也会开始把计划文件写进你存储库里的 .opencode/plans/,那个目录你多半会想加进 .gitignore。
重置前需要关闭 OpenCode
/nomo-reset 清理的是进程已经不在的会话行。对 OpenCode 来说,那个进程是服务器,不是你敲命令的那个终端——所以属于一个正在运行的 OpenCode 的会话行不会被清掉,这是有意为之。如果某一行看着陈旧却怎么都不肯走,先退出 OpenCode。

