
如果你一天大部分时间都在终端里:那最顺手的 AI,不该把你拖进新 UI,而是直接住进你的命令行。
Crush 是什么?
Crush 是 Charmbracelet 出品的终端 AI 编程代理(CLI/TUI)。核心思路是: 把 你的工具、代码、工作流 直接“接”到你选择的 LLM 上,让它在终端里跟你一起干活。
它的几个关键卖点:
多模型 + 可中途切换:同一会话里换模型,不丢上下文。
会话制(Session-Based):一个项目可以维护多个工作会话/上下文。
LSP 加持:像你在编辑器里那样,用 LSP 给它“更懂代码”的上下文(诊断/符号等)。
MCP 扩展:用 Model Context Protocol 把外部能力接进来(stdio/http/sse)。
跨平台终端一等公民:macOS / Linux / Windows(PowerShell & WSL)/ 多种 BSD 都支持。



适合谁?
- 终端重度用户:SSH、Docker、Git、脚本、CI 都在命令行完成
- 不想被绑定在某个 IDE/插件生态里的人
- 独立开发者:想要“轻量但能扩展”的 AI 助手(尤其 MCP + 自定义 Provider 这块)
3 分钟上手
1)安装
官方 README 给了很多包管理器方式,常用的就这俩:
# macOS / Linux
brew install charmbracelet/tap/crush
# 全平台(有 Node 的环境)
npm install -g @charmland/crush
Windows 也可以用 winget / scoop。
2)准备一个模型 Key,然后启动
最快方式:拿到你常用提供商的 API Key(比如 OpenAI / Anthropic / Groq / OpenRouter 等),直接运行 crush ,它会提示你输入。
或者提前用环境变量(部分示例):
OPENAI_API_KEY (OpenAI)
ANTHROPIC_API_KEY (Anthropic)
OPENROUTER_API_KEY (OpenRouter)
GEMINI_API_KEY (Gemini)
进阶玩法
1)让它“像 IDE 一样懂你的项目”:接入 LSP
Crush 可以配置多个语言的 LSP,用来补充上下文。示例里就有 Go / TS / Nix 的配置方式。
你可以这样理解其价值:
LSP = 把“代码智能”(诊断、符号、跳转信息)喂给 Agent ,它更容易给出靠谱修改。
2)把外部能力接进来:MCP(重点推荐给开发者)
Crush 支持 MCP Server,三种传输:stdio (本地命令行服务)、http 、sse ,并支持环境变量展开。
这在实际开发中如何应用?可以设想以下场景:
- 接一个“文件系统/知识库/内部 API”的 MCP
- 接 GitHub / 工单系统 / 文档检索
- 让它不只是聊天,而是能调用你团队的工具链
3)权限与安全:默认会问你“要不要执行”
Crush 默认在运行工具调用前会征求许可;你也可以配置允许的工具白名单。 另外有一个需要谨慎使用的选项:--yolo 可以跳过所有权限提示(务必强调风险)。
再加两条对用户友好的安全措施:
- 默认尊重
.gitignore
- 还能额外写
.crushignore 排除你不想被它读取/作为上下文的文件。
4)多模型生态:自定义 Provider + 本地模型
Crush 支持自定义 Provider,兼容 OpenAI-compatible 与 Anthropic-compatible API,并明确区分 openai vs openai-compat 两种类型。
例如,接入 DeepSeek 这类 OpenAI-compatible 模型,思路就是更换 base_url 和 key 即可。
更实用的是支持本地模型:
- Ollama、LM Studio 都可以通过 OpenAI-compatible 方式接入。
5)可观测性:日志 & 调试
日志默认在项目相对路径:./.crush/logs/crush.log ,并提供 crush logs 、--tail 、--follow 等命令方便查看;还可以开启 --debug 模式或进行相应配置。
6)团队协作细节:提交信息署名(Attribution)
Crush 默认会在它创建的 Git commit / PR 里加 attribution 信息;你可以配置 trailer 风格(assisted-by / co-authored-by / none)以及是否添加 “Generated with Crush”。
“我该怎么用?”
开新需求:让它先把改动拆成任务清单,再按步骤执行(会话制 + 上下文保留)
重构/排错:LSP + 工具调用(grep/edit 等),减少“只会建议不会改”的尴尬
把你的工作流变成能力:用 MCP 接内部系统/脚手架/文档库,让它变成真正的“工具人”
总结
对于终端党、Vim/Neovim 用户,或者不希望被特定 IDE 生态捆绑的开发者,Crush 这款命令行工具值得尝试:
- 先装起来跑一跑
- 再加 LSP(让它更懂你的代码)
- 最后接 MCP(让它真正融入你的工具链)
项目地址
https://github.com/charmbracelet/crush
欢迎在 云栈社区 分享你的使用体验或发现更多开发者工具。