全部文章
博客版本发布集成工程

三款新的智能体 CLI:MiMo Code、PenguinHarness 和 ZCode

三款新的智能体 CLI,是三个完全不同的程序:一个是我们已支持的 CLI 的分支,一个是客户端/服务器平台,还有一个是桌面智能体的运行时搬进了终端。每一个都需要自己的接入方式。

阅读约 6 分钟0.1.281 带来了什么

NeuroSquad 0.1.281 新增三款智能体 CLI:小米的 MiMo Code、PrismShadow 团队的 PenguinHarness,以及 Z.ai 的 ZCode。加上它们,应用支持 22 款智能体 CLI,而“支持”对每一款仍然意味着同样的事:卡片知道智能体何时在工作、何时在等你、何时已完成;会话在重启后继续;应用的工具通过箭头到达;用量精确到每个 token;还可以把卡片切换到另一款 CLI 再切回来,而不丢失对话。本次发布仅限 Windows;Mac 版暂时停留在 0.1.230,将在下一次构建中获得这三款 CLI。

和之前的 CLI 一样,应用为 Claude Code 提供的每项能力都被写成一张清单中的一行,每款新 CLI 都有自己的文档逐行对照:CLI 本身具备什么,应用在它周围构建了什么,哪些做不到以及为什么。MiMo Code 共 42 行,PenguinHarness 48 行,ZCode 43 行。这一轮之所以有意思,是因为这三个程序几乎没有共同点。

MiMo Code:一个分支,以及它自己的部分

MiMo Code 是小米的终端编程智能体,以 MIT 协议开源,是 OpenCode 的分支:同样的配置合并、插件 API、事件和数据库结构,只是改了名字。NeuroSquad 早已通过一套共享实现运行 OpenCode 及其另一个分支 Kilo Code,因此 MiMo 成了这个家族的第三位成员,而不是第四套集成——卡片通过 MiMo 的环境变量获得自己的配置、NeuroSquad 插件和应用的 MCP 服务器。

有意思的是 MiMo 在此之上增加的东西。在界面出现之前,它会询问你是否信任这个文件夹;卡片启动它时带上一个只对本次启动跳过该问题的参数,因此不会向 MiMo 自己的信任列表写入任何内容。它会在父会话内部运行子智能体——“actors”——现在它们运行期间卡片保持“工作中”,它们的请求在“用量”、Run Stats 和 Agent Pulse 中只计一次。它还允许通过自身的 API 回答权限询问,危险模式因此可以实时生效:打开后,下一个询问就会自动作答,无需重启,和 Claude Code 一样。

展开的 MiMo Code 卡片:提示词“阅读 README,并提出三个可以快速完成的改进”,智能体读取 README.md 并给出三条编号建议;MiMo 侧栏显示上下文、已连接的 MCP 服务器 neurosquad 和 ns-connected,以及版本 0.1.15
一轮对话后的 MiMo Code 卡片。这里的模型是按脚本应答的测试服务器。

PenguinHarness:一台服务器,每张卡片一个智能体

PenguinHarness 不是一个终端程序,而是一个平台:一台拥有数据目录(项目、智能体和会话)的服务器、一个 Web 应用,以及终端里的聊天客户端。智能体的工具、钩子和指令都存放在这个目录中,而不是命令行参数里。而且第一个聊天会自行在后台启动服务器,带着最先启动的那张卡片的环境——这样一张卡片的密钥可能出现在每个智能体的 shell 里。

因此 NeuroSquad 为自己的数据目录运行独立的 Penguin 服务器,从干净的环境启动,应用退出时停止;每张卡片在其中成为自己的 Penguin 智能体,带有 NeuroSquad 的钩子、应用的 MCP 服务器和它的指令。你自己的 ~/.penguin 只会被读取:你在那里配置的模型和密钥会在每次启动时复制到应用的项目配置中,因此卡片使用的就是你在终端里运行 penguin 时用的那些。权限请求经过一个由卡片应答的钩子,这带来了实时生效的危险模式,以及即使在危险模式下也依然有效的卡片模式;中断通过服务器进行,因为在空闲的 Penguin 聊天中按 Ctrl+C 会询问是否退出。

展开的 PenguinHarness 卡片:聊天头部显示版本 0.2.13、智能体和工作区,提示词,MCP 服务器连接,被 NeuroSquad 钩子批准的 read_file 调用,三条建议的回答和一行统计信息
PenguinHarness 卡片:read_file 调用由卡片的钩子批准。

有两个限制来自 Penguin 当前的发布版本,而非应用。0.2.13 还没有在每个提示词上运行的钩子,因此 Caveman、记忆、Context7 和 Graphify 无法注入它们的上下文(它们通过箭头提供的工具仍然可用);也无法更换正在进行的会话的模型,所以切换模型会开启一个指向旧会话的新会话。这两者在 Penguin 的主分支上无需改动即可工作——我们从源码构建验证过。实际运行还发现了我们这边的一个真实问题:应用创建的提供商分组被 0.2.13 忽略,请求被发往默认的 OpenAI 地址;现在每个分组都带有自己的客户端类型和地址。

ZCode:一个设置文件,和一个预加载

ZCode 是 Z.ai 面向其 GLM 模型的智能体编程环境。Z.ai 在 2026 年 9 月公开了源码,驱动其桌面应用的同一个智能体运行时也可以构建成 zcode 命令。Z.ai 没有提供现成的 CLI 下载,所以如今在 Windows 上安装的是一个非官方 npm 包,它原样携带 Z.ai 的运行时——设置向导安装的就是它,我们测试的也是它。

ZCode 几乎不从命令行接收任何参数,而它的设置文件——钩子、MCP 服务器、工具权限——在主目录中只有一个固定路径,没有开关可以改变。把我们的钩子写进你的文件是不可接受的。因此 ZCode 卡片用一个小小的预加载来启动 ZCode 自己的启动器:仅在 ZCode 的进程内部,对这个文件的读写会被导向卡片的副本——也就是你的设置加上卡片的钩子和服务器。令牌和密钥在其中只以占位符形式存在,ZCode 读取时从环境变量填入,随后从 ZCode 运行命令的环境中移除——在卡片里 echo 令牌变量,输出为空。

展开的 ZCode 卡片:带有工作区路径和分支的 ZCODE 欢迎框,提示词,“Read 1 file README.md”,三条编号建议的回答,以及显示模型、build 模式和会话 token 的 ZCode 状态栏
ZCode 卡片:状态栏显示的是卡片为它配置的提供商。

有一个决定值得说明。ZCode 有一个自动项目记忆,每轮结束后都会调用模型,而这些调用没有任何记录——既不在它的用量账本里,也不在可读的日志里。NeuroSquad 的“用量”要么精确,要么说明不知道,因此在卡片中这个记忆默认关闭,除非你自己在 ZCode 设置中开启过。开启了的话它会照常工作,但这些调用不会出现在“用量”中。ZCode 的危险模式是一种启动模式,所以切换它会重启卡片并继续同一个会话。

如何测试

每款 CLI 都安装在各自的临时目录中,从不全局安装,由一份独立的应用副本驱动——它有自己的配置文件、临时主目录,以及一台在回环接口上按脚本应答的模型服务器。因此不会读取任何人的真实配置或登录,每种状态、权限询问、中断和子智能体都可以按需触发。用量与模型服务器自己的日志核对:每张卡片统计的请求(按主智能体和子智能体拆分)必须与之完全一致。本文中的截图也来自同样的环境。

有些行仍然是空的,文档中说明了原因:这三款目前都不能在 WSL 和 SSH 工作区中运行;Penguin 无法在 shell 命令执行前改写它(它的钩子只能允许或拒绝);按下 Escape 后,ZCode 的终端界面会吞掉下一个按键,和 pi、omp 一样。

neurosquad.ai 上的智能体 CLI 页面:标题“22 款智能体 CLI,一块画布”,简短介绍,“下载 Windows 版”和“文档中的支持列表”按钮,以及两排智能体 CLI 图标
智能体 CLI 页面现在列出 22 款,每款都有自己的页面。

每款 CLI 都有自己的页面:MiMo Code、PenguinHarness 和 ZCode,设置细节见文档。完整的变更列表见 0.1.281 更新日志。NeuroSquad 会自动更新;全新安装请从下载页面开始。