nsq · 开源0.2.1 · 1.0 之前

所有智能体,一个终端。只在卡住时才需要你。

nsq 把 Claude Code、Codex、OpenCode 或任意命令并排运行,组成一格格实时终端;你关掉它,它们照常工作;一旦某个智能体卡住,它会立刻叫你,并附上那个问题本身。下面这个可以直接上手操作。

  • MIT 许可
  • 无需账号,没有遥测
  • Windows、macOS、Linux、SSH
一个使用示例数据、可以操作的 nsq 仪表盘复刻。工作区 shop 中运行着四个智能体:运行 Claude Code 的 api-fix、运行 Codex 的 reviewer、运行 OpenCode 的 docs,以及只是 npm run dev 的 dev。聚焦复刻后:方向键选择智能体,y、a 或 n 回答等待你的智能体的权限请求,Enter 全屏打开智能体并可向它输入,Escape 或 Ctrl+] 返回网格,i 中断,q 关闭仪表盘——智能体会继续工作。
可以操作——点一下,然后按键
使用示例数据的复刻,直接在浏览器中运行。真正的仪表盘会在你的终端里画出同样的界面。
安装

一个 npm 包,一条命令。

nsq 就是 npm 包 neurosquad。用 npx 先试一次,或者直接安装,然后输入 nsq:仪表盘打开,后台守护进程随之启动。

Node.js 22.13 或更高版本 · x64 与 arm64 · 无需编译器,原生部分已预编译完整指南

  1. 01先试试,无需安装运行一次最新版本。
    npx neurosquad
  2. 02或者安装把 nsq 命令加入 PATH。
    npm i -g neurosquad
  3. 03打开仪表盘按 c 启动第一个智能体。
    nsq
更习惯用包管理器?它们跟随 npm 发布;Homebrew 可能晚一天。无论选哪种,之后 nsq 都会以同样的方式自动更新。
Homebrew
brew install glmn-ai/neurosquad/neurosquad-cli
安装脚本(使用你的 npm,无需管理员权限)
curl -fsSL https://raw.githubusercontent.com/glmn-ai/neurosquad-cli/main/packaging/install/install.sh | sh
功能

别再盯着智能体了。需要你时,它会叫你。

下面展示的都是 nsq 的真实行为。图中的数字是示例数据。

它会叫你,还带着问题。

状态来自每个 CLI 自己的钩子,而不是盯着屏幕去猜。智能体在等待时,你会收到一条说明它想做什么的通知——每个智能体一条,它一恢复工作就自动撤回。

  • Windows、macOS 和 Linux 原生通知
  • 通过 SSH 时:终端响铃和 OSC 9
  • 如果需要,可通过 ntfy 推送到手机

你的 CLI,任意模型。

Claude Code、Codex 和 OpenCode(1.x 和 2.x),状态完全来自它们的钩子——用的是你自己的登录和订阅。

内置 OpenRouter

系统钥匙串里一个密钥,任何智能体都能用任意模型。按 m 搜索模型目录。

自己的模型服务器

llama.cpp、Ollama、LM Studio、vLLM、SGLang、Unsloth Studio,或任何兼容 OpenAI 或 Anthropic 的 API。nsq provider add 先测试服务器,再把它提供给每个能与之对接的 CLI。按 P 管理。

关掉终端,什么都不会停。

一个小小的守护进程掌管所有终端。退出仪表盘、SSH 断线、关掉窗口——智能体照常工作。nsq 让一切回来;重启电脑后,nsq up 还能恢复它们各自的会话。

每个智能体一个 worktree

--worktree 给智能体独立的分支和工作副本,三个智能体改同一个仓库也互不干扰。nsq diff 显示每个智能体改了什么。

每个智能体花了多少

nsq cost 从每个 CLI 自己的日志里读取令牌数。价格未知的模型会写“无价格”,绝不显示假的 $0。

用说的,不用打字

按 v 开口说话。语音在你的电脑上识别,文字粘贴给智能体——但不会发送。你看一遍,你来按 Enter。

用手机回答实验性

扫二维码配对,躺在沙发上就能回答——加上 --online 还能通过 Cloudflare 隧道经 HTTPS 从任何地方回答。默认关闭;手机可以回答、发送提示词和中断,但不能启动智能体、发送任意按键或读取文件。

你的配置仍归你

nsq 从不写入 ~/.claude、~/.codex 或 opencode.json。钩子、设置和密钥都以单独一层交给每个智能体:命令行参数、环境变量和 nsq 自己的文件夹。

真实运行

不是效果图,是录屏。

这是在真实终端中运行的 nsq,由它的端到端测试在 macOS 上录制:真正的 Claude Code、Codex 和 OpenCode,对接一个按脚本应答的测试模型,所以每次运行都一模一样。

nsq 0.1.0,录制于 CI。智能体的回答来自测试模型,所以才这么无聊。

键盘优先

几个按键就能搞定一切。

鼠标也能用:单击选择,双击打开。

↑↓←→选择智能体(也可用 h j k l;Tab 遍历所有工作区)
把鼠标移到按键上,或用键盘聚焦
在任何 shell 中也能用,可写进脚本
  • # 在独立分支上启动智能体
    $ nsq run claude "fix the flaky test" --worktree
  • # 把任意命令作为智能体运行
    $ nsq run -- npm run dev
  • # 智能体及其状态
    $ nsq ls --json
  • # 回答权限请求
    $ nsq answer reviewer yes
  • # 在本轮结束后发送提示词
    $ nsq send api-fix "now add a test" --when-done
  • # 每个智能体的花费
    $ nsq cost --since 7d
底层实现

九个实时终端,每帧一毫秒。

实时终端本质上是字符单元格的网格,所以仪表盘直接绘制单元格,并且只把变化的单元格发给终端。我们先试过其他方案,并做了测量。

最多约每 33 毫秒一帧,且只在有变化时绘制。智能体全屏打开或终端失去焦点时,动画会暂停。

nsq · 自研单元格差分
帧时间,平均 / p951.2 / 1.9 ms8 秒内 CPU0.39 s内存84 MB写入终端的字节1.4 MB
OpenTUI (@opentui/core 0.5)
帧时间,平均 / p956.1 / 10.2 ms8 秒内 CPU1.9 s内存90 MB写入终端的字节4.2 MB
Ink 8 (React)
帧时间,平均 / p9539 / 71 ms8 秒内 CPU8.5 s内存267 MB写入终端的字节1.7 MB
Windows 10,ConPTY(Windows Terminal 使用的通道),9 个输出类似智能体的实时格子,200 × 50 单元格,30 帧/秒,8 秒。方法与数据:docs/tui.md
开源

MIT,每一行都能读。

CLI 以及它与 NeuroSquad 桌面应用共用的集成核心都在 GitHub 上,以 MIT 许可发布。看看每个 CLI 到底是怎么启动的,提交问题报告,或者发来拉取请求。

CLI 的名称和标志是其所有者的商标,仅用于表明智能体运行的是哪个 CLI。

无需账号不用注册,也不用登录。离开我们也一样能用。
没有遥测nsq 不向任何地方报告使用情况。它的状态保存在你电脑上的 ~/.neurosquad-cli。
密钥不进文件密钥保存在系统钥匙串中,只进入需要它的那个智能体的环境变量——绝不出现在参数、日志或文件里。
nsq 还是桌面应用

同一个理念,两种工作方式。

两者都运行你已经在用的 CLI,并在智能体需要你时告诉你。按你一天待得最多的地方来选。

nsq为终端而生
  • 有 Node.js 的地方就能运行:Windows、macOS、Linux、通过 SSH 连接的服务器
  • Claude Code、Codex、OpenCode 和任意命令
  • 开源(MIT),无需账号,没有遥测
  • 键盘优先的实时终端网格
安装 nsq
NeuroSquad 桌面应用为整支团队而生
  • 22 个智能体 CLI,以带实时终端的卡片排布在画布上
  • 用箭头连接智能体:工具、MCP 服务器、技能和插件
  • 笔记、浏览器、模板、工作区录制,以及从手机远程访问
  • Windows 和 macOS,使用免费的 NeuroSquad 账号
下载桌面应用

两者共用同一个集成核心,所以状态在两边的工作方式完全相同。

常见问题

nsq 是什么?

NeuroSquad 的开源终端版本。它启动多个 AI 编程 CLI,以实时终端网格展示它们,从 CLI 自己的钩子读取状态,并在某个智能体需要你时连同问题一起通知你。

真的免费吗?需要账号吗?

是的,免费且采用 MIT 许可。不需要账号,nsq 也不发送任何遥测。智能体使用你自己的 CLI 订阅和 API 密钥运行。

支持哪些 CLI?

Claude Code、Codex 和 OpenCode(1.x 和 2.x),状态完全来自它们的钩子。其他任何命令都可以用 nsq run -- <命令> 运行:有输出时显示“工作中”,安静下来就显示“已完成”,但它从不声称需要你。

关掉终端会怎样?

什么都不会停。智能体运行在后台守护进程中;再次打开 nsq,它们都还在。nsq down 会停止守护进程及其智能体,nsq up 则让它们回来并恢复各自的会话。

它会改动我的 Claude Code 或 Codex 设置吗?

不会。nsq 从不写入你自己的配置。钩子和设置通过命令行参数、环境变量以及 nsq 自己文件夹里的文件,逐个传给每个智能体。

能通过 SSH 和在 Windows 上使用吗?

可以。nsq 可在任何装有 Node.js 22.13 或更高版本的终端中运行:Windows(原生,通过 ConPTY)、macOS 和 Linux,x64 与 arm64。通过 SSH 时,通知会改用终端响铃和终端自己的通知序列。

手机访问如何保证安全?

它默认关闭,目前仍是实验性功能。nsq phone on 只监听本机;加上 --lan 才对局域网开放,加上 --online 则通过 Cloudflare 快速隧道对互联网开放(仅 HTTPS、需明确开启并有警告、错误令牌会被封锁、每次启动地址都会变化)。配对使用二维码中的令牌,nsq phone rotate 会断开所有已配对的手机。手机可以回答、发送提示词和中断,但不能启动智能体、发送任意按键或读取文件。

nsq 如何更新?

从 0.2.0 版起自动更新。它每六小时向 npm 仓库查询一次最新版本(只请求该包的公开元数据,不含任何关于你的信息),按你安装 nsq 的方式在后台安装,并在没有智能体忙碌时切换过去——而且只在新版本试启动成功之后,所以有问题的版本不会替换掉正在运行的旧版本。智能体会继续各自的会话。用 nsq config set autoUpdate false 或 NSQ_NO_UPDATE=1 关闭;手动更新用 nsq update。

智能体能用我自己的模型吗?

可以。除了 OpenRouter,nsq provider add <名称> --url <地址> 可以添加你自己的服务器——llama.cpp、Ollama、LM Studio、vLLM、SGLang、Unsloth Studio,或任何兼容 OpenAI 或 Anthropic 的 API。nsq 会先测试它,再提供给每个能使用其 API 的 CLI;然后运行 nsq run claude --provider <名称> --model <id>,或在仪表盘中按 P。如果服务器需要密钥,密钥保存在系统密钥库中。nsq 无法知道你的服务器怎么收费,所以这些请求显示为“无价格”,而不是 $0。

不在家时能访问我的智能体吗?

可以,只要你愿意。nsq phone on --online 通过 Cloudflare 快速隧道让手机页面在任何地方都能打开:无需账号,不用在路由器上开端口,使用 HTTPS。这是实验性功能,每次都需要你明确开启;任何拿到链接和令牌的人都能控制你的智能体,所以请像对待密码一样对待它。有 Cloudflare 账号的话,可以用命名隧道保持一个固定地址。

还没到 1.0,它有多粗糙?

每次发布都会在 CI 中用打包好的 npm 包在 Windows、macOS 和 Linux 上检查,但在 1.0 之前,命令、按键和配置仍可能变化。遇到问题,在 GitHub 上提交问题报告是最快的修复途径。

nsq 和 NeuroSquad 桌面应用是什么关系?

它们共用集成核心。桌面应用增加了画布、卡片、智能体之间的箭头以及更多 CLI;nsq 专注于终端。两者可以同时使用。

在终端里组建你的智能体团队。

一条命令,两个智能体,注意力重新属于你。

npx neurosquad
想要画布?试试桌面应用