全部智能体 CLI
NeuroSquad 中的 OpenCode

OpenCode,外加一整块画布

需要多少个 OpenCode 会话就运行多少个,每个都在自己的卡片里,配有真实终端。一个小小的 NeuroSquad 插件报告 OpenCode 正在做什么,所以卡片知道它何时在工作、在提问或已完成;箭头则为它连接浏览器、终端、笔记和其他智能体。

官方网站opencode.ai
  • 真实的 opencode CLI,用你自己的提供商
  • 不写入 ~/.config/opencode
  • Zen 免费模型无需密钥
插件事件

它知道 OpenCode 何时完成——以及何时在提问

OpenCode 用光标定位绘制界面,读取终端只能靠猜。因此每张卡片都会加载一个 NeuroSquad 插件,转发 OpenCode 关于主会话的原生事件。

session.status: busy插件事件
工作中

主会话进入 busy。卡片图标开始旋转,“团队状态”卡片把它算作工作中。子智能体的会话不算作一轮。

permission.asked插件事件
等你处理

OpenCode 请求权限或向你提问。通知以它开头——“bash — rm -rf dist”。被 --auto 在 700 毫秒内自动批准的请求根本不会上报。

session.status: idle插件事件
已完成

主会话进入 idle:这一轮结束了。队列里的下一条提示词发出,回答写入工作日志,通知告诉你已完成。

通知里是它自己的话

权限请求显示为工具及其命令、路径或 URL;提问则显示问题本身。

处处同一个状态

卡片、侧边栏、“团队状态”卡片、自定义卡片和手机读取的都是同一个状态。

所有卡片共用一个插件文件

插件放在 NeuroSquad 自己的数据文件夹里,由卡片配置通过 URL 加载。你自己的插件照常运行。

看它如何工作

你每天都会做的三件事

应用界面的复刻,一步步演示。当 OpenCode 请求权限时,由你来决定。

OpenCode 在连接的终端里修好失败的测试,删除文件夹前先征求同意,然后进入 idle——工作日志自动写好。

它能得到的一切

OpenCode 在 NeuroSquad 中的全部能力

OpenCode 的支持与 Claude Code 同一级别:精确状态、箭头、卡片模式、可继续的会话。它做不到的,也都列在这里。

  • 01

    清楚自己的状态

    NeuroSquad 插件转发 OpenCode 的原生事件,不靠安静的终端去猜。

  • “已完成”和“在等你”是两回事

    插件报告主会话的 session.status busy 与 idle,以及 permission.asked / question.asked。回答请求后卡片回到工作中。

    文档: “已完成”和“在等你”是两回事
  • 通知说清楚它需要什么

    通知以 OpenCode 的请求开头——OpenCode needs your permission: bash — rm -rf dist 或 OpenCode is asking: …。点击即可飞到该卡片。

    文档: 通知说清楚它需要什么
  • 可以继续的会话

    插件每一轮都报告会话 id;下次启动用 --session 打开它。如果会话已被删除,卡片会自己开始新会话。“重启会话”会给它一个全新的会话。

    文档: 可以继续的会话
  • “团队状态”卡片

    工作区里所有 AI 智能体都在一张卡片上,显示模型——来自最近一次请求、卡片设定的模型或你的 OpenCode 配置——以及本轮的实时用时。

    文档: “团队状态”卡片
  • 自定义卡片也能跟踪它

    用 Card SDK 构建的卡片能看到同样的状态和轮次事件,并从 OpenCode 自己的数据库读取它的回答。

    文档: 自定义卡片也能跟踪它
  • 02

    通过画布工作

    从卡片引出的箭头就是一组工具。画上它,OpenCode 在下一轮就能看到——无需重启。

  • 箭头即工具,即时生效

    画一条箭头连到浏览器、终端、笔记或另一个智能体,OpenCode 就获得 neurosquad_browser_*、terminal_*、note_* 或 agent_*。OpenCode 会重新读取工具列表,新箭头在下一轮即可使用。

    文档: 箭头即工具,即时生效
  • 它能自己添加卡片

    canvas_spawn_card 能打开终端、浏览器、笔记或另一个 OpenCode 助手(附带首条提示词),并自动连好箭头。

    文档: 它能自己添加卡片
  • 牢靠的卡片模式

    配置禁止 bash、webfetch 和 websearch,这会把它们从模型那里隐藏。--auto 只批准未被禁止的操作,所以在危险模式下也依然有效。

    文档: 牢靠的卡片模式
  • 来自注册表的 MCP 服务器

    你安装的服务器通过第二个服务器 ns-connected 提供给 OpenCode,其工具设为“询问”——每次调用 OpenCode 都会先确认。

    文档: 来自注册表的 MCP 服务器
  • 来自 skills.sh 的技能

    画一条箭头连到技能卡片,OpenCode 无需重启就能获得 neurosquad_skill_load,附带每个技能及其适用场景。

    文档: 来自 skills.sh 的技能
  • 03

    为长时间运行而生

    上下文、上限和后续工作都在卡片上处理,回答直接从 OpenCode 自己的数据库读取。

  • 上下文指示与压缩

    圆环显示最近一次请求的 token 数,对照 OpenCode 自己 models.dev 缓存中的模型窗口。“压缩”会发送 /compact。

    文档: 上下文指示与压缩
  • 达到用量上限后自动继续

    短暂的 429 由 OpenCode 自己挺过去。真正的账户或免费额度上限会显示在卡片上:倒计时到重置时间,然后发送“continue”。

    文档: 达到用量上限后自动继续
  • 提示词队列

    把接下来的消息排好队:主会话进入 idle 时才发出下一条——精确无误,不会在思考中途的停顿时发出。

    文档: 提示词队列
  • 交接给新的智能体

    会话占满时,在旁边启动一个新智能体——OpenCode 或任何其他 CLI——工作摘要已经填好,由你来发送。

    文档: 交接给新的智能体
  • 工作日志

    每个完成的回答都从 OpenCode 的数据库读取,并追加到连接的笔记里:一份无需让智能体动手的持续记录。

    文档: 工作日志
  • 04

    团队协作

    多个 OpenCode 智能体——或多种 CLI 混用——在同一个项目上互不干扰。

  • 隔离的 worktree

    给智能体一个独立的 git worktree,并行的智能体就不会改到同一批文件。设置命令和要复制的文件会在 OpenCode 启动前把它准备好。

    文档: 隔离的 worktree
  • 添加审查者

    一键在同一个 worktree 中启动另一种 CLI 的智能体,带有从作者引出的箭头,以及“只审查、不修改”的提示词。

    文档: 添加审查者
  • 危险模式,按卡片设置

    对你信任的任务,卡片可以用 --auto 启动 OpenCode:权限请求会被自动批准。默认关闭。

    文档: 危险模式,按卡片设置
  • 一份指令文件

    OpenCode 自己读取 AGENTS.md。NeuroSquad 把它镜像到其他 CLI 的文件,不会在未展示差异的情况下覆盖已修改的文件。

    文档: 一份指令文件
  • 在手机上操作

    扫一下二维码,整块画布就在手机浏览器里打开:查看 OpenCode 的终端、回答它的请求、发送下一条提示词。

    文档: 在手机上操作
  • 05

    模型、费用与控制

    它运行在哪个模型上、花了多少、最多能花多少。

  • 免费模型,无需密钥

    OpenCode Zen 的免费模型(例如 big-pickle)在卡片里无需任何密钥即可运行——试用智能体团队的好方法。

    文档: 免费模型,无需密钥
  • OpenRouter 模型

    卡片可以通过 --model openrouter/<slug> 运行在 OpenRouter 模型上。密钥只进入这张卡片的环境变量,绝不出现在参数或日志中。

    文档: OpenRouter 模型
  • 按卡片统计用量与费用

    从 OpenCode 自己的数据库读取,费用以它记录的为准。子智能体的会话并入其根会话,每个会话归属于由其插件报告它的卡片。

    文档: 按卡片统计用量与费用
  • 预算刹车

    每个工作区一个上限。超出后本轮被中断——会话保留——自动提示词停止发送。提高上限即可解除;你自己手动输入从不受限。

    文档: 预算刹车
  • 语音输入到提示词

    按住快捷键说话。语音在你的电脑上识别,并输入到当前智能体的提示词里。

    文档: 语音输入到提示词
  • 06

    与 Claude Code 的不同

    OpenCode 本身不允许的事,以及 NeuroSquad 如何应对。没有任何隐瞒。

  • 无法预先指定会话 id

    OpenCode 自己生成 ses_… 形式的 id,不能用你指定的 id 开始会话。所以卡片在第一轮从插件得知 id;从未运行过一轮的卡片会从头开始。

    文档: 无法预先指定会话 id
  • 用 Escape 中断,而不是 Ctrl+C

    在 OpenCode 的空输入框里按 Ctrl+C 会退出程序。所以预算刹车改为连按两次 Escape——本轮停止,OpenCode 保持打开。

    文档: 用 Escape 中断,而不是 Ctrl+C
  • Zen 免费额度可能拒绝

    Zen 有时会对免费模型返回 403 “free tier can only be used from within OpenCode”。这是他们的限流,不是卡片配置的问题——换个模型即可。

    文档: Zen 免费额度可能拒绝
  • OpenCode 会自动更新

    除非你关闭了该功能,OpenCode 会自行安装补丁版本。NeuroSquad 把这个选择留给你。

    文档: OpenCode 会自动更新
  • 在 Windows 上稳定运行

    以前的说明称 OpenCode 会在 Windows 终端中崩溃。在 1.18.32 上连续使用一小时——五张卡片、子智能体、连续 60 次调整大小、多次重启——一次也没有崩溃。

    文档: 在 Windows 上稳定运行
一目了然

谁在等你,花了多少

同时运行多个 OpenCode 会话时,这两张卡片回答你最常问的问题。

“团队状态”卡片

工作区里每个智能体的状态、模型和本轮用时。在等你的排在最前面,并显示它在问什么。点击状态即可筛选。

  • coupon-fixOpenCodebig-pickleOpenCode needs your permission: bash — rm -rf dist等你处理2:34
  • refundsOpenCodeclaude-sonnet-4.5把退款迁移到新客户端工作中11:07
  • refund-testsOpenCodebig-pickle编写退款测试工作中5:25
  • docs-passOpenCodeqwen3-coder更新 README已完成3分钟前

用量与费用

从你磁盘上 OpenCode 自己的数据库读取,并按其插件报告的会话匹配到卡片。各行之和始终等于总计。

智能体令牌费用
refunds912,466US$2.41
docs-pass204,318US$0.19
coupon-fix583,902US$0.00
总计1,700,686US$2.60
精确到皮美元,仅在显示时四舍五入。费用以 OpenCode 的记录为准:Zen 免费模型显示 $0.00。
幕后原理

真实的 OpenCode,外加一个配置文件

NeuroSquad 启动的就是你自己运行的那个 OpenCode,在卡片里的真实终端中。它添加的全部内容如下:

NeuroSquad 为命令添加的参数
❯ opencode
--session <ses_… id>之后的启动重新打开插件最近报告的会话
OPENCODE_CONFIG=<this card’s config>每次启动这张卡片的配置:NeuroSquad 的 MCP 服务器、它们的权限、插件
OPENCODE_PURE=false每次启动即使 NeuroSquad 是从 `opencode --pure` 启动的,插件也能加载
permission: bash, webfetch, websearch → deny卡片模式写入同一个配置:禁止它自带的 shell 和网络
--auto危险模式自动批准权限请求

不写入 ~/.config/opencode

配置是 NeuroSquad 数据文件夹里每张卡片独立的文件,由 OPENCODE_CONFIG 指定。你的全局和项目配置照常生效。

文件里没有密钥

MCP 令牌写作 {env:NEUROSQUAD_MCP_TOKEN};OpenCode 从卡片的环境变量中填入。

装在哪里都能找到

优先使用真实的 opencode.exe;如果是 npm 的 opencode.cmd,则直接启动它包装的那个 exe,停止卡片就会停止 OpenCode。

常见问题

关于 NeuroSquad 中的 OpenCode

给 OpenCode 一块画布

Windows 10 和 11 免费使用。你的代码、你的提供商和你的费用都留在你的电脑上。