Crush,拥有自己的画布
想开多少张卡片运行 Crush 都行,每张都是真正的 `crush` TUI,运行在自己的终端里。Crush 会把自己的状态——工作中、受阻、空闲——直接报告给卡片;箭头为它连接浏览器、终端和笔记;重启后每张卡片都会继续自己的会话。
官方网站github.com/charmbracelet/crush- 真正的
crushTUI,用你自己的提供商 - 不会改写你的 Crush 配置
- 免费,支持 Windows 10 和 11
它知道 Crush 何时完成——何时在提问
Crush 的钩子只有一个事件:工具运行之前。但 Crush 还会把智能体状态报告给终端复用器 herdr——而 NeuroSquad 为每张 Crush 卡片扮演 herdr。
working状态一次运行出现第一段输出时报告 working。卡片图标开始旋转,“团队状态”卡片把它计为工作中。只统计协调者的运行,子智能体不会改变状态。
blocked状态请求授权时报告 blocked。卡片从 Crush 的数据库读取待处理的调用,通知写着 Crush needs your permission: bash — rm -rf dist。
idle状态运行完成、被取消或失败时报告 idle。队列里的下一条提示发出,回答写入工作日志,通知告诉你已完成。
它的提问也算
Crush 的 question 工具不是 herdr 状态,所以在一轮进行中,卡片每秒查看一次 Crush 的数据库:未回答的问题显示为 Crush is asking: Tabs or spaces?。
无法伪造
每张卡片的窗格 id 都带有本次应用运行的签名;没有签名的报告会被丢弃。
Windows 上也可以
Crush 通过 Unix 套接字发送报告,而 Windows 下的 Node 无法监听它——所以由一个小型 PowerShell 监听器来接收。没有它时,卡片会退回到观察终端的方式。
Crush 在 NeuroSquad 中做的三件事
应用界面的逐步回放。Crush 请求授权时,由你来回答。
Crush 通过连接的终端修复一个失败的测试,删除文件夹前停在它的授权对话框上,然后完成——工作日志自动写好。
Crush 在 NeuroSquad 中的全部能力
Claude Code 能得到的,Crush 几乎都有。以下是全部内容——包括 Crush 工作方式不同的地方,以及做不到的事。
- 01
清楚自己的状态
Crush 自己的状态报告告诉卡片每一轮,无需猜测。
“已完成”和“在等你”是两回事
设置了
文档: “已完成”和“在等你”是两回事HERDR_ENV后,Crush 会报告working、blocked和idle,每次都附带会话 id。NeuroSquad 为每张卡片监听——精确的开始、等待授权和结束。通知说清楚它需要什么
通知写明待处理的调用——
文档: 通知说清楚它需要什么Crush needs your permission: bash — rm -rf dist——或 Crush 提出的问题。每个智能体一条;等你的通知会一直保留到你回答。取消和失败的运行也会结束
在 Crush 中按两次 Escape 会取消运行;随后报告
文档: 取消和失败的运行也会结束idle,卡片将其标记为已完成,而 Crush 仍在运行。失败的运行也以同样方式结束。
- 02
通过画布工作
从卡片引出的箭头就是一组工具,经由 NeuroSquad 的 MCP 服务器提供。
箭头就是工具
画一条箭头连到浏览器、终端、笔记或另一个智能体,Crush 就能使用
文档: 箭头就是工具mcp_neurosquad_browser_*、terminal_*、note_*或agent_*——由PreToolUse钩子预先放行,NeuroSquad 自己的工具从不弹出询问。新箭头:工具一开始就列出
Crush 0.92 不会得知服务器的工具列表已变化。所以所有内置工具从一开始就全部列出,由箭头在调用时决定。新的技能和已安装服务器的箭头在卡片下次启动时生效。
文档: 新箭头:工具一开始就列出卡片模式
文档: 卡片模式bash、job_output、job_kill、download、fetch、agentic_fetch和sourcegraph会从 Crush 的工具中完全移除——不是被拒绝,而是不存在——所以--yolo也无法让它们回来。
- 03
为长时间运行而生
上下文、Summarize Session、速率限制和实时工作日志——都在卡片上处理。
“压缩”就是 Summarize Session
卡片上的“压缩”按钮会打开 Crush 的命令面板,替你运行 Summarize Session。
文档: “压缩”就是 Summarize Session工作日志与交接
Crush 的最后一条回答读取自卡片的
文档: 工作日志与交接crush.db:工作日志笔记、交接给新智能体、agent_wait、自定义卡片和 Telegram 都能拿到 Crush 真正的回答。
- 04
团队协作
每张卡片都有自己的 Crush 数据文件夹,因此任意多张卡片可以共用一个项目。
每张卡片一个数据文件夹
Crush 会锁定自己的数据文件夹,所以同一项目里的两张卡片无法同时使用
文档: 每张卡片一个数据文件夹.crush/。每张卡片都有自己的文件夹,存放它的配置层和会话——不会改写你的任何 Crush 文件。
- 05
费用、控制与访问
它花了多少、最多能花多少、运行在哪个模型上,以及你如何找到它。
费用和请求数——没有令牌
每张卡片的费用是 Crush 自己的总计,包括子智能体,每次模型请求都会计入。Crush 每次请求都会覆盖令牌计数器,所以无法得知每次请求的令牌——该列显示短横线,而不是猜测值。
文档: 费用和请求数——没有令牌OpenRouter 模型
在卡片自己的配置中使用 Crush 内置的
文档: OpenRouter 模型openrouter提供商,密钥来自只有这张卡片可见的变量,并附带 NeuroSquad 的归属标头。由安装向导安装
安装向导可以替你安装 Crush(
文档: 由安装向导安装npm install -g @charmland/crush)。NeuroSquad 直接运行它的crush.exe,不经过 npm 垫片。
谁在等你,花了多少
同时运行多个 Crush 智能体时,这两张卡片回答你最常问的问题。
“团队状态”卡片
工作区里每个智能体的状态、模型和本轮用时。在等你的排在最前面,并显示 Crush 在问什么。
coupon-fixCrushclaude-sonnet-4.5Crush needs your permission: bash — rm -rf dist等你处理2:34
api-migrationCrushclaude-sonnet-4.5把路由迁移到新客户端工作中9:33
lint-setupCrushopenrouter/autoCrush is asking: Tabs or spaces?等你处理1:17
docs-passCrushopenrouter/auto更新 README已完成5分钟前
用量与费用
读取自每张卡片自己的 `crush.db`。费用和请求数精确,各行之和等于总计——不显示令牌,因为 Crush 不按请求保存令牌。
| 智能体 | 令牌 | 费用 | ||
|---|---|---|---|---|
| coupon-fix | — | US$2.33 | ||
| api-migration | — | US$1.41 | ||
| docs-pass | — | US$0.18 | ||
| 总计 | 86 | — | US$3.92 |
真正的 Crush,外加它自己的文件夹
NeuroSquad 启动的就是你自己运行的那个 `crush`,运行在卡片内的真实终端中。它添加的全部内容如下:
磁盘上没有密钥
配置中写的是 $NEUROSQUAD_MCP_TOKEN;Crush 从卡片的环境变量中展开它。
直接打开到输入框
全新的数据文件夹会先打开 Crush 的“初始化此项目?”界面并吞掉第一条提示,所以预先作答。AGENTS.md 无论如何都会被读取。
装在哪里都能找到
优先使用发布版 crush.exe(winget、scoop、go install),其次是 npm 包里的二进制文件,直接运行。
关于 NeuroSquad 中的 Crush
给 Crush 一块画布
免费支持 Windows 10 和 11。你的代码、提供商和费用都留在你的电脑上。