# nsq：开源的终端版 NeuroSquad

> nsq 0.1.0（预览版）是开源的终端版 NeuroSquad：一个面板管理多个编程智能体，状态直接来自各 CLI 自己的钩子，智能体需要你时马上通知。MIT 许可。

- URL: https://neurosquad.ai/zh/blog/nsq-neurosquad-in-your-terminal/
- Published: 2026-10-09
- Publisher: NeuroSquad (https://neurosquad.ai/)

今天我们发布 **nsq 0.1.0**，这是 NeuroSquad 终端版的预览版。它做的正是桌面应用最首要的那件事——同时运行多个 AI 编程智能体，并告诉你哪一个需要你——但不需要窗口、画布或账号。它以 MIT 许可开源，支持 Windows、macOS 和 Linux，通过 npm 安装：`npm i -g neurosquad`，然后运行 `nsq`。

```
npm i -g neurosquad          # 或直接试用：npx neurosquad
nsq run claude "fix the flaky checkout test" --worktree
nsq run codex --name reviewer
nsq run -- npm run dev       # 任意命令
nsq                          # 面板
```

![nsq 面板的录屏：开始时为空，随后工作区 demo-shop 中出现三个智能体，Claude Code 完成，Codex 询问“Would you like to run the following command?”，顶栏显示 1 needs you，直接在网格中按 y 作答，Codex 执行命令并完成](https://neurosquad.ai/blog/nsq-neurosquad-in-your-terminal/recording-zh.webp)

*macOS 上的 nsq 0.1.0，录制自我们的端到端测试：Codex 请求运行一条命令，无需打开它就用 y 作答。智能体连接的是按脚本应答的测试模型。*

## 为什么要做终端版

很多使用编程智能体的人整天待在终端里：在 Linux 机器上、通过 SSH 连到服务器、在开发容器里，或者只是更喜欢终端。桌面应用跟不过去。而他们需要的东西和桌面版一样——知道哪个智能体在工作、哪个在等你以及它在问什么、哪个已经完成——就在他们本来所在的地方。

所以 nsq 刻意保持小巧。它不是文字模式的画布，而是 NeuroSquad 中回答“现在有没有智能体需要我？”的那一部分，再加上让同时运行多个智能体变得可行的几样东西：守护进程、worktree、费用统计和通知。

## 它能做什么

- **智能体归守护进程管理。** `nsq` 会按需启动它。关掉面板甚至整个终端窗口，智能体照样运行；再次打开 `nsq`，一切都在原处。执行 `nsq down` 或重启电脑后，`nsq up` 会恢复之前在运行的智能体，并接续它们的会话。
- **实时终端面板。** 侧栏列出工作区及其智能体，右侧以网格显示所选工作区中各智能体的实时终端。按 Enter 将某个智能体全屏打开，所有按键都发给它；按 Ctrl+] 回到网格。
- **状态精确，来自各 CLI 自己的钩子。** 工作中、**需要你**（附带 CLI 自己的问题，例如“Would you like to run the following command?”）、已完成——这些由 Claude Code 的钩子、Codex 的钩子和 OpenCode 插件报告，而不是从屏幕上猜测。对于 Claude Code，钩子没有报告的情况（例如中断或 API 错误）会通过会话记录来确认。
- **无需切换即可回答。** 在网格中直接按 `y`、`a`、`n` 回答所选智能体的权限请求——是、始终、否；`i` 用该 CLI 实际使用的按键中断它；`s` 发送提示词，`S` 则把提示词排队，等当前这一轮结束后再发送。
- **通知与声音。** 智能体需要你或完成时弹出系统通知——每个智能体只保留一条，它重新开始工作时自动撤回。无法显示系统通知时（例如通过 SSH），面板会在自己的终端里发出提醒。
- **每个智能体一个 git worktree。** 加上 `--worktree`，智能体就有自己的检出目录和分支，两个智能体永远不会改同一批文件；`nsq diff` 显示它改了什么。
- **按智能体统计费用。** `nsq cost` 读取各 CLI 自己的日志：token 一律是整数；没有价格的模型显示“无价格”，绝不会显示 $0。
- **内置 OpenRouter。** `nsq openrouter set-key` 将密钥存入操作系统的密钥库；`--provider openrouter --model <id>` 让智能体通过它运行。密钥只会进入该智能体的环境变量，请求会带上 NeuroSquad 的 OpenRouter 归属标识。
- **本地语音输入。** 按 `v`（或全局快捷键）开始说话；识别在你的电脑上用一次性下载的开放模型完成。文字会粘贴到智能体的输入框，但绝不会自动发送——由你按 Enter。

![nsq 在网格上方打开的“New agent”对话框：Claude Code、Codex、OpenCode 和 Command 选项卡，下面是名称、提示词、文件夹，以及独立 worktree、OpenRouter 和危险模式的复选框，还有 Start 按钮](https://neurosquad.ai/blog/nsq-neurosquad-in-your-terminal/new-agent-zh.webp)

*在面板中启动智能体（按 c）。这些截图中的智能体连接的是按脚本应答的测试模型。*

**Claude Code**、**Codex** 和 **OpenCode**（1.x 与 2.x 均可）支持完整的状态；此外，**任意命令**都可以作为智能体运行：开发服务器、测试监视器、其他 CLI。普通命令没有钩子，所以 nsq 只在它输出时显示为工作中、安静下来后显示为已完成，并且从不声称这样的命令需要你。

## 它怎么知道，以及它从不碰什么

每个智能体都有自己的一层命令行参数、环境变量和文件，放在 nsq 的文件夹里。你的 `~/.claude`、`~/.codex` 和 `opencode.json` 永远不会被写入。钩子把事件发到回环地址，每个智能体有自己的令牌；这些事实经过与桌面应用相同的状态机：钩子是事实，你在等待中的智能体里按下的键会立即生效，静默只是兜底手段。

这个状态机并不是新的。它连同钩子配置、Claude Code 会话记录读取和用量解析，现在都放在 **@neurosquad/core** 里——一个开源包，nsq 就构建在它之上。NeuroSquad 桌面应用也使用同一个核心：两者原本相同的模块，如今是同一份以 MIT 发布的代码。我们修正某个 CLI 报告状态的方式时，两边都会得到修复。

## 自己绘制单元格的面板

每个图块都是由守护进程供给数据的真实终端模拟器，面板只重绘发生变化的单元格——最多每秒约 30 次，而且只在有变化时才绘制。装饰性动画（工作中的旋转图标、“需要你”的脉动）在智能体全屏打开时和终端失去焦点时暂停，设置 `NSQ_NO_ANIMATION=1` 可完全关闭。在能显示图片的终端（kitty、iTerm2、sixel）里，图块上显示各 CLI 的标志；其他终端里则是小巧的字符徽标。

> **实测** 在 Windows 10 的 ConPTY 下，九个实时图块输出类似智能体的内容，200 × 50 个单元格、每秒 30 帧，持续 8 秒：面板渲染平均每帧 1.2 毫秒（第 95 百分位 1.9 毫秒）。只是一台机器上的一次运行——用来确认直接绘制单元格的开销很低，并不是基准测试。

## 手机（实验性）

`nsq phone on --lan` 让同一网络中的手机查看智能体、阅读它们的屏幕、发送提示词、回答权限请求以及中断智能体。`nsq phone pair` 会输出一个链接和二维码；链接中带有配对令牌，请像对待密码一样保管它，`nsq phone rotate` 会让所有手机退出。已配对的手机不能启动智能体、修改设置或输入任意按键。手机访问（连同其移动端页面）默认关闭，在这个预览版中标记为**实验性**。

## 选 nsq 还是桌面应用

两者解决的是同一个首要问题，用的也是同一个核心，所以按你工作的地方来选。**nsq** 适合终端、Linux、服务器和 SSH 会话：免费、开源、无需账号、没有遥测。适用于 Windows 和 macOS 的**桌面应用**则是完整的工作台：画布上的智能体卡片、多得多的智能体 CLI、通过箭头相互协作的智能体、插件卡片、模板和录制。这些功能 nsq 都没有，也不打算加入——nsq 会保持小巧。

## “预览版”意味着什么

- 这是 0.1.0 版本：在 1.0 之前，命令、参数和配置文件仍可能变化。
- 需要 Node.js 22.13 或更高版本。原生组件（终端、密钥库、语音输入）以预编译二进制安装，CI 会在 Windows、macOS 和 Linux 上用打包好的 npm 包进行检查；Windows arm64 上暂不提供语音输入。
- 目前有三个 CLI 支持完整状态。更多 CLI 按需求加入——仓库里有专门的表单可以申请。
- 没有遥测，也不需要账号。`nsq login` 用于可选的 NeuroSquad 账号，nsq 的任何功能都不依赖它。

## 开源

代码在 GitHub 上：[glmn-ai/neurosquad-cli](https://github.com/glmn-ai/neurosquad-cli)，MIT 许可，包括 CLI 本身、共享核心以及周边的各个包（终端图块、通知、语音输入、手机 API）。欢迎提交问题报告、CLI 支持请求和拉取请求——贡献指南说明了我们的工作方式。关于安装和使用 nsq 的一切，请看[它的页面](https://neurosquad.ai/zh/cli/)。
