OpenCode,
就在刘海里。

Mac 上的 OpenCode 通知、权限批准和回复

Gnista 把每个 OpenCode 会话都显示在 MacBook 的刘海里。批准它的请求、给它回复,都在那里完成,不管它跑的是哪个模型,本地模型也算。

免费试用 7 天 无需账号和银行卡 · 之后一次性 €19
01概览

OpenCode 配 Gnista,一目了然。

运行环境
任意终端里的 OpenCode,包括 VS Code 的终端,以及通过 SSH 跑在 Linux 服务器上的 OpenCode。
设置
一个插件文件:~/.config/opencode/plugins/gnista.js;别的都不动。
需要你
权限请求,附带命令、文件或 diff;它的提问;还有写完的计划。
在刘海里回应
允许、“始终”或拒绝,对提问的回答,以及“批准”或“继续规划”,经由 OpenCode 里的 Gnista 插件发送。
在刘海里回复
可以,不管 OpenCode 在哪儿运行:它会显示为你的消息,会话的 Agent 和模型保持不变。
这一行显示
标题、Agent(build 或 plan)、你的提示词、回答、正在运行的工具和待办。
子 Agent
并进启动它们的那个会话的行里,显示它们在问什么。
费用与限额
OpenCode 自己统计的费用和 token 数,以及已用的上下文;没有套餐额度,因为 OpenCode 不记录。

回应,直达 OpenCode 内部。

Gnista 的插件运行在 OpenCode 内部,所以允许、“始终”和拒绝、对提问的回答,以及写完的计划的“批准”,走的是 OpenCode 自己的客户端,而不是往终端里模拟按键。OpenCode 自己的提示也照常显示,哪边先回应就算哪边。

回复,就像你亲手敲的。

会话空闲时,从刘海发出的回复会作为真正的提示词送进去,Agent 和模型都和会话原本用的一样,在 OpenCode 里显示为你的消息。任意终端都行,VS Code 的也算。

子 Agent,都在一行里。

OpenCode 把活交给子 Agent 时,那个会话会并进启动它的会话。它的请求显示在父会话那一行,你在同一个地方回应。

什么模型都行。你自己的也行。

OpenCode 什么都能跑,从 Claude 到 GLM,再到你自己 Mac 上的模型。这一行显示模型徽标和 OpenCode 自己统计的费用。Gnista 不认识的模型,写个小小的模型文件,给它上下文大小和图标。

OpenCode 上做不到的事,以及原因。

  • 写完的计划只能选“批准”或“继续规划”:要改什么,等会话停下后作为你的下一条提示词发过去。
  • 没有套餐额度:OpenCode 不记录。这一行改为显示它的费用。
  • Gnista 不认识的模型不显示上下文条,直到你写个模型文件描述它。
02设置

接入只需一分钟。

  1. 打开 Gnista,勾选 OpenCode。
  2. Gnista 只新建一个文件 ~/.config/opencode/plugins/gnista.js,不碰你的 OpenCode 配置,所以没什么需要备份。如果已有同名插件,Gnista 会停下来告诉你。
  3. 要在刘海里回应,打开“在 Gnista 中回应提示”(设置 ▸ 通用)。
  4. 启动 OpenCode。已经开着的 OpenCode 重启后才会加载插件。
03常见问题

OpenCode,有问必答。

能在刘海里批准 OpenCode 吗?

能:打开“在 Gnista 中回应提示”后,就能允许、“始终”或拒绝,回答它的提问,处理它写完的计划。OpenCode 只对它的权限配置要求询问的操作发出请求,默认要问的不多,所以你可能很少看到请求。

为什么我看不到 OpenCode 的任何请求?

OpenCode 默认放行大部分操作。在 OpenCode 配置里把某项权限设为 ask,它的请求就会出现在刘海里。

能在刘海里回复 OpenCode 吗?

能,等一轮结束后。回复会作为真正的提示词送进去,带着会话的 Agent 和模型,显示为你的消息。

支持本地模型吗?

支持。OpenCode 能接任何服务商,包括 Ollama 和 LM Studio,Gnista 会像其他会话一样显示它们。Gnista 不认识的模型,写个模型文件描述它。

Gnista 改了什么?怎么移除?

只有它的插件文件 ~/.config/opencode/plugins/gnista.js。设置 ▸ 智能体 ▸ OpenCode ▸ 断开连接会删掉它;你的 OpenCode 配置从来不碰。

它能用于服务器上、通过 SSH 跑的 OpenCode 吗?

能,Linux 服务器就行。在设置 ▸ 远程里用你 ssh 配置里的一个主机连接那台服务器:Gnista 把它的辅助程序放过去,把它的插件放进服务器上 OpenCode 的 plugins 文件夹。那边的会话会带着机器名显示,在刘海里的回应会送到那边的 OpenCode,点一下就回到你 ssh 登录的那个终端标签页,连 tmux 窗格也对得上,或者编辑器的 Remote-SSH 窗口。Gnista 暂时还读不到服务器上 OpenCode 的记录,所以这些行不显示标题和费用。分步说明:通过 SSH 使用 Agent。

Gnista 还照看着

自己写了个 Agent?一行 JSON 就能向 Gnista 汇报:自定义 Agent。