开发与工程 terminal-codingmulti-modelmodel-context-protocollanguage-server-protocolagent-skillssession-management

Crush 终端编程助手

在终端中连接模型、代码与开发工具的多模型编程助手。

FollowAgents 评估 · FARS-2.1
不推荐
43/ 100 五分制 2.2 / 5
1 2 3 4 5 6
按维度查看评分与理由
1信任安全10 / 29 · 1.7/5

证据显示默认要求权限确认(permissions allow 需显式配置),但存在 --yolo 跳过所有提示,且 crushrc 作为可信代码可执行任意命令,未提供最小权限隔离。数据流透明度有限,未详细说明哪些数据发送给 LLM 或第三方。敏感数据处理方面,API 密钥通过环境变量或配置存储,但未说明加密存储。依赖安全方面,go.mod 中依赖众多,但未提供漏洞扫描或安全审计证据。外部影响方面,工具可执行 shell 命令、修改文件、创建提交,但默认需确认。回滚机制未提及。来源归属方面,有 attribution 设置,但未验证。

2可靠稳定5 / 14 · 1.8/5

自一致性方面,README 描述的功能与配置示例基本一致,但部分细节(如 JSON 配置弃用)未完全展开。依赖可用性方面,依赖众多且版本固定,但未提供依赖可用性保证。失败消息方面,未提供错误处理或用户提示的示例。

3适用触发10 / 18 · 2.8/5

受众与场景明确,面向开发者,支持多种平台和 LLM。能力边界清晰,支持 LSP、MCP、技能等,但未明确限制。触发精度方面,技能可配置 user-invocable 和 disable-model-invocation,但默认行为未详细说明。环境适配方面,支持多平台,但未提供特定环境配置的详细说明。

4规范维护8 / 18 · 2.2/5

信息架构清晰,README 结构良好,有配置、安装、使用等章节。安装说明详细,覆盖多种包管理器。命名稳定性方面,项目名和命令名稳定,但未提供 API 稳定性保证。示例和 FAQ 丰富,但缺少 FAQ 部分。已知限制方面,未明确列出。许可证为 FSL-1.1-MIT,但元数据为 NOASSERTION,且许可证文本包含 MIT 未来许可,但未明确版本化。版本化变更日志未提供。维护责任方面,有 CLA 和 CI,但未明确维护者。

5有效结果7 / 13 · 2.7/5

输出可用性方面,提供 TUI 和多种输出格式,但未详细说明。边际价值方面,提供多模型、LSP、MCP 等特性,但未与现有工具对比。成本效益方面,免费开源,但未提供性能或资源消耗数据。

6证据核验3 / 8 · 1.9/5

声明可追溯性方面,README 中的特性声明未提供具体实现证据。跨来源佐证方面,未提供第三方验证。事实与推断分离方面,未明确区分事实和推断。

证据充分度: 评估于 2026年8月9日 审查版本 75791b8883df
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
源码中未见的安全控制:回滚或恢复路径
使用前请注意
  • --yolo 模式会跳过所有权限确认,存在高风险,需谨慎使用。
  • crushrc 和 crush.json 被视为可信代码,可执行任意命令,需确保来源可信。
  • 许可证元数据为 NOASSERTION,实际为 FSL-1.1-MIT,需确认是否符合使用场景。
  • 未提供回滚机制,操作可能不可逆。
  • 依赖众多,未提供安全审计证据。
评估证据 [1][2][3][4][5]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Crush 是 Charm 开发的终端式编程助手,以交互式终端界面连接项目代码、LLM 和开发工作流。它支持在同一会话中切换模型,并为每个项目保留多个工作会话与上下文。Crush 可通过 LSP 获取额外代码上下文,并可连接 stdio、HTTP 与 SSE 三种 MCP 服务器。它以本地 CLI 形式安装和运行,支持 macOS、Linux、Windows、Android 及多种 BSD 系统;模型调用则通过 Hyper、API 密钥或自定义兼容接口完成。默认情况下,工具调用需要用户许可,项目配置还能限制、隐藏或完全跳过工具权限提示。

启动 crush 后,用户可用 ctrl+l 打开模型选择器并认证提供商。程序读取 .crush.jsoncrush.json 或全局 crush.json,加载提供商、LSP、MCP、工具许可和技能设置;也会读取项目及全局上下文文件。它可调用已配置的 LSP,为代码任务补充上下文,并连接 stdiohttpsse MCP 服务执行其可用能力。会话、消息历史、权限队列、LSP 与 MCP 状态可在相同 --cwd 的多个客户端之间共享;日志写入 ./.crush/logs/crush.log,可用 crush logs 查看。

  1. 使用 OpenAI、Anthropic、Gemini 或其他已配置模型的开发者,希望在同一终端编程会话中切换模型而不丢失上下文。
  2. 维护多项目代码库的工程师,需要为每个项目保留多个独立会话,并在另一个终端客户端中继续查看同一工作区。
  3. 依赖 goplstypescript-language-servernil 的开发者,希望让编程助手获得语言服务器提供的额外上下文。
  4. 已部署内部 MCP 服务的团队,需要通过 stdio、HTTP 或 SSE 将文件系统、GitHub 等能力接入终端助手。
  5. 需要使用 Ollama、llama.cpp、LM Studio、LiteLLM 或其他自定义兼容端点的用户,希望自动发现或手动定义本地模型。

这个 Agent 有哪些优点和局限?

优点
  • 可在会话中切换 LLM,同时保留上下文,而非绑定单一模型。
  • 同时支持 LSP 和三种 MCP 传输方式,可将语言服务与外部工具接入同一终端工作流。
  • 支持项目级、全局及自定义提供商配置,并明确支持 OpenAI 兼容、Anthropic 兼容和多种本地模型服务。
  • 相同 --cwd 的多个客户端可共享会话、消息历史、权限队列、LSP 与 MCP 状态。
局限
  • 需要自行选择和认证模型提供商;除 Hyper 外,外部提供商的费用与账户条件并不由项目说明统一覆盖。
  • crush.json 中的 $(...) 会在加载时以当前 shell 权限执行,因此不可信目录中的配置存在明确安全风险。
  • 默认权限机制与 MCP、LSP、模型服务配置增加了部署和治理工作;--yolo 会跳过所有工具许可提示。
  • 仓库元数据标示为 NOASSERTION,而 README 指向 FSL-1.1-MIT,采用前应核实适用许可。

如何安装或部署这个 Agent?

任选一种受支持方式安装,例如 macOS/Linux 可运行 brew install charmbracelet/tap/crush,或运行 npm install -g @charmland/crush;也可运行 go install github.com/charmbracelet/crush@latest。首次启动运行 crush,按 ctrl+l 打开模型选择器并完成所选提供商的认证。若使用环境变量配置 OpenAI,可先设置 OPENAI_API_KEY;使用 Anthropic 则设置 ANTHROPIC_API_KEY

如何使用这个 Agent?

在项目目录运行 crush。若需项目配置,创建 .crush.json,例如配置 LSP:{"$schema":"https://charm.land/crush.json","lsp":{"go":{"command":"gopls"}}}。要接入 HTTP MCP,可在 mcp 中配置名称、"type":"http"url;静态凭据可放在 headers。默认工具调用会请求许可;可通过 permissions.allowed_tools 只放行指定工具,或谨慎使用 crush --yolo 跳过全部提示。

常见问题

能否使用自己的模型或本地模型?
可以。README 记录了 OpenAI 兼容和 Anthropic 兼容的自定义提供商配置,并可自动发现 Ollama、llama.cpp、LM Studio、LiteLLM 与 omlx 的模型。
工具会未经确认直接执行吗?
默认会请求许可。可用 permissions.allowed_tools 配置允许的工具;--yolo 会跳过所有权限提示,文档明确建议谨慎使用。
MCP 支持哪些连接方式?
支持 stdio 命令行服务器、http 端点和 sse Server-Sent Events 服务;HTTP 和 SSE 服务还可配置 OAuth。
Crush 会收集我的提示词和回复吗?
README 表示其会记录与设备特定哈希关联的伪匿名使用元数据,但不会收集提示词和回复;可设置 CRUSH_DISABLE_METRICS=1 或配置 disable_metrics 退出。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents