Crush 终端编程助手

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

Star 数
★ 29k
最近更新
今天
License
NOASSERTION
主语言
Go

30 秒速览

运行形态
命令行工具
可在哪里用
通用 · 跨平台OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
低 · 几分钟可跑通
开始前需要
Shell / 命令行网络访问本地文件系统MCP Server
典型场景
使用 OpenAI、Anthropic、Gemini 或其他已配置模型的开发者,希望在同一终端编程会话中切换模型而不丢失上下文。
不适合
  • 不愿审查项目配置就启动 Crush 的用户(crushrc 与 crush.json 会执行 shell 命令)
  • 希望有单一官方定价与账号体系的团队,模型费用需自行向各供应商支付

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

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

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

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

如何安装或部署这个 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 跳过全部提示。

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

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

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Crush 终端编程助手 当前 43 · 缺口较多 命令行工具免费 + 模型费 ★ 29k 今天 Go OpenAI API · Claude API
Stripe AI 50 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 2k 1 天前 TypeScript Codex · Claude Code · OpenAI API · Claude API
MiniCode 50 · 缺口较多 命令行工具免费 + 模型费 ★ 1.2k 28 天前 TypeScript Claude API
Kode CLI 44 · 缺口较多 命令行工具免费 + 模型费 ★ 5.2k 3 天前 TypeScript OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
43/ 100 五分制 2.2 / 5
本评测基于 2026年8月9日 的源码;此后该项目发布了 19 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 10/29
可靠稳定 5/14
适用触发 10/18
规范维护 8/18
有效结果 7/13
证据核验 3/8
查看各维度的扣分理由
信任安全10 / 29 · 1.7/5

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

可靠稳定5 / 14 · 1.8/5

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

适用触发10 / 18 · 2.8/5

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

规范维护8 / 18 · 2.2/5

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

有效结果7 / 13 · 2.7/5

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

证据核验3 / 8 · 1.9/5

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

风险与缓解建议
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • --yolo 模式会跳过所有权限确认,存在高风险,需谨慎使用。
  • crushrc 和 crush.json 被视为可信代码,可执行任意命令,需确保来源可信。
  • 许可证元数据为 NOASSERTION,实际为 FSL-1.1-MIT,需确认是否符合使用场景。
  • 未提供回滚机制,操作可能不可逆。
  • 依赖众多,未提供安全审计证据。
证据充分度:低 评估于 2026年8月9日 审查版本 75791b8883df 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.100.0
    发布说明摘录
    Subagents, Sysadmin Mode, and PGP/SSH Prompts This is a big one! Crush can now run a team of subagents, permissions are much more flexible, and you can now do GPG and SSH auth right inside Crush! Read on for more. 👩🏼‍🐰‍👩🏽 Subagents At last, subagents. Crush can now spawn a little team of friendly subagents in the background, as well as check on them, send them mid-run follow-ups, stop them, or move them to a different model. <p><img width="600" alt="image" src="https://github.com/user-attachments/assets/a8f4f437-dd9a-46bb-ab31-65a14b84c07a" /></p> …
    在 GitHub 查看 ↗
  2. v0.99.0
    发布说明摘录
    Hooks, Catwalk v3! A big one! Crush now runs on Catwalk v3, hooks can see every part of a run, and editors that host Crush get a whole new set of tools to feel right at home. Hooks, everywhere 🪝 Hooks are no longer just about tools. They can now follow the whole run: sessions, turns, permissions and more! Hooks can now step in after a tool runs, too. Redact secrets from the output before the model sees them, add a note, or stop the turn. If the tool already did something it shouldn't have, your hook can tell the model "you committed without running the tests." ```bash …
    在 GitHub 查看 ↗
  3. v0.98.2
    发布说明摘录
    Keanu, OAuth re-sign-in and a crash fix This patch was brought to you by our team and our favorite contributors! The Keanu Theme > [!CAUTION] > This will make you feel like a hacker <img width="800" src="https://github.com/user-attachments/assets/061f5473-9f78-49a4-8aa5-dc54ae955189" /> A theme made by @andreynering 🎉 💻 Fixed! • Fixed a crash when parallel tool calls finish together, by @andreynering • Fixed OAuth sign-in and credential refresh, by @taciturnaxolotl • Ctrl+C now interrupts startup, and custom provider model discovery no longer stalls it, by @taciturnaxolotl …
    在 GitHub 查看 ↗

常见问题

能否使用自己的模型或本地模型?
可以。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 退出。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

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

相关 Agents