"Your new coding bestie, now available in your favourite terminal."
想象一下这样的场景:你正沉浸在代码的世界里,手指在键盘上飞舞,终端窗口里闪烁着绿色的光标。突然,你遇到了一个棘手的问题——需要重构一段复杂的逻辑,或者想快速理解一个陌生的代码库。这时候,你会怎么做?
传统的选择往往是:
而 Crush 的出现,正是为了解决这个问题。它不像 Cursor 那样试图取代你的编辑器,也不像 Claude Code 那样要求你改变工作流——Crush 来到你所在的地方,在你的终端里,成为你真正的编程搭档。
Crush 是由 Charm Bracelet 团队开发的终端 AI 编程助手。如果你不熟悉 Charm,他们是终端美学领域的艺术家——Bubble Tea(TUI 框架)、Lip Gloss(样式库)、Gum(shell 工具)等广受欢迎的开源项目都出自他们之手。
Crush 的核心理念可以用一句话概括:"Your tools, your code, and your workflows, wired into your LLM of choice."
这意味着:
这个名字本身就充满了趣味——它既是 "压碎"(解决难题),也是 "心动"(让你爱上编程)。正如 Charm 团队所说:"Productivity may increase when using Crush and you may find yourself nerd sniped when first using the application."(使用 Crush 可能会提高生产力,而且你可能会在第一次使用时就被它深深吸引。)
Crush 最引人注目的特性之一,就是它对多模型的原生支持。
支持的提供商包括:
| 提供商 | 环境变量 | 特色 |
|---|---|---|
| OpenAI | OPENAI_API_KEY | GPT-4、GPT-4o 系列 |
| Anthropic | ANTHROPIC_API_KEY | Claude 3.5/4 Sonnet、Opus |
| Groq | GROQ_API_KEY | 极速推理,性价比高 |
| OpenRouter | OPENROUTER_API_KEY | 聚合多家模型,有免费选项 |
| Google Gemini | GEMINI_API_KEY | 长上下文窗口 |
| Amazon Bedrock | AWS_* | 企业级 AWS 集成 |
| Azure OpenAI | AZURE_OPENAI_* | 微软云服务 |
| Ollama/LM Studio | 本地配置 | 完全离线,隐私优先 |
💡 一个超实用的功能:会话中切换模型
你可以先用 GPT-4o 做架构设计,然后切换到 Qwen Coder 写具体实现,最后用 Claude 做代码审查——所有对话上下文都完整保留。
# 在 Crush 中按 Ctrl+P 打开命令面板
# 选择 "Switch Model" 即可实时切换
Crush 的界面是终端工具中的艺术品。基于 Charm 的 Bubble Tea 框架构建,它拥有:
Ctrl+P - 打开命令面板
Ctrl+G - 聚焦到聊天输入
Ctrl+S - 会话管理
Ctrl+F - 附加文件
Ctrl+M - 切换模型
Ctrl+T - 打开/关闭待办列表
Ctrl+C - 退出
这是 Crush 区别于普通 AI 聊天工具的关键特性。
LSP(Language Server Protocol,语言服务器协议) 是现代 IDE 的核心技术。它让编辑器能够理解代码的语义——不只是文本,而是函数定义、类型信息、引用关系、错误诊断等。
Crush 如何使用 LSP:
// crush.json 配置示例
{
"$schema": "https://charm.land/crush.json",
"lsp": {
"go": {
"command": "gopls",
"env": {
"GOTOOLCHAIN": "go1.24.5"
}
},
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"]
},
"python": {
"command": "pylsp"
},
"rust": {
"command": "rust-analyzer"
}
}
}
实际效果:
MCP(Model Context Protocol,模型上下文协议) 是 Anthropic 提出的开放标准,旨在让 AI 助手能够安全地连接外部工具和数据源。
Crush 支持三种 MCP 传输类型:
| 类型 | 用途 | 示例 |
|---|---|---|
stdio | 命令行程序 | 本地文件系统操作、自定义脚本 |
http | HTTP API | GitHub、数据库、第三方服务 |
sse | 服务器推送 | 实时数据流、日志监控 |
配置示例:
{
"mcp": {
"filesystem": {
"type": "stdio",
"command": "node",
"args": ["/path/to/mcp-server.js"],
"timeout": 120
},
"github": {
"type": "http",
"url": "https://api.github.com/mcp/",
"headers": {
"Authorization": "Bearer $GH_PAT"
}
}
}
}
这意味着什么?
Crush 支持 Agent Skills 开放标准,允许你创建可复用的技能包来扩展 AI 的能力。
Skills 是什么?
SKILL.md 文件的文件夹# Unix/macOS
mkdir -p ~/.config/crush/skills
cd ~/.config/crush/skills
git clone https://github.com/anthropics/skills.git _temp
mv _temp/skills/* . && rm -rf _temp
使用场景:
Crush 支持几乎所有主流平台和包管理器:
# macOS (Homebrew)
brew install charmbracelet/tap/crush
# Linux (Debian/Ubuntu)
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
sudo apt update && sudo apt install crush
# Windows (Winget)
winget install charmbracelet.crush
# NPM (跨平台)
npm install -g @charmland/crush
# Go
go install github.com/charmbracelet/crush@latest
Crush 可以直接读取环境变量中的 API Key,无需额外配置:
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export GROQ_API_KEY="gsk_..."
然后直接运行:
crush
首次启动时,Crush 会引导你完成简单的初始化设置。
# 进入项目目录
cd my-project
# 启动 Crush
crush
# 然后问:
# "这个项目的架构是什么样的?"
# "入口文件在哪里?"
# "这个函数的作用是什么?"
Crush 会自动分析项目结构,结合 LSP 提供准确的回答。
# 让 Crush 帮你重构
"帮我重构这个函数,使其更易于测试"
# 代码审查
"检查这段代码是否有潜在的性能问题"
# 生成测试
"为这个函数生成单元测试"
# 先用 GPT-4o 设计架构
"设计一个高性能的缓存系统"
# 切换到 Claude 实现细节
"用 Go 实现这个缓存系统"
# 最后用本地模型审查
"检查这段代码的安全性"
| 特性 | Crush | Cursor | Claude Code | GitHub Copilot |
|---|---|---|---|---|
| 运行环境 | 终端 | VS Code | 终端 | IDE 插件 |
| 多模型支持 | ✅ 原生 | ⚠️ 有限 | ❌ 仅 Claude | ❌ 仅 OpenAI |
| LSP 支持 | ✅ | ✅ | ✅ | ❌ |
| MCP 支持 | ✅ | ❌ | ❌ | ❌ |
| 工作流侵入 | 无 | 高 | 中 | 低 |
| 开源 | ✅ | ❌ | ❌ | ❌ |
Crush 的优势:
Crush 代表了一种新的 AI 工具哲学:不是让 AI 取代你的工作流,而是让 AI 融入你的工作流。
对于终端重度用户来说,Crush 就像是给熟悉的 shell 装上了一个智能大脑。它不会打扰你,但随时准备帮助你;它不会替你决策,但能提供有价值的建议。
在这个 AI 工具层出不穷的时代,Crush 选择了一条不同的路——不追求大而全,而是追求恰到好处。
如果你也是那种「活在终端里」的开发者,不妨给 Crush 一个机会。也许,它会成为你的下一个「代码知己」。
本文基于 Crush 开源项目资料整理,仅供技术交流。
还没有人回复