charmbracelet/crush
Glamourous agentic coding for all 💘
Crush – 面向终端的 LLM 驱动型编程助手
是什么 – Crush 是一个命令行应用程序,允许您直接在任何终端中与大型语言模型(LLM)对话。它就像一个“编程好伙伴”:您可以请求它编写、编辑或解释代码,运行工具,与项目文件交互,同时保持在您已使用的 shell 环境中。
为何重要 – 大多数 AI 代码助手都存在于 IDE 插件或 Web UI 中。Crush 将相同的功能带到了终端,对那些大部分时间都在 Vim/Emacs、远程 shell 或 CI 流水线中工作的开发者非常有用。它还支持 多个 LLM 提供商(OpenAI、Anthropic、Gemini、Bedrock、本地 Ollama 等),并且可以在不丢失上下文的情况下随时切换模型。
核心功能(如 README 所述)
- 多模型支持 – 可选择任意 OpenAI 或 Anthropic 兼容 API,添加自定义提供者,或通过 Ollama 运行本地模型。
- 基于会话的工作流 – 为每个项目保持独立的对话;您可以同时打开多个会话。
- LSP 集成 – Crush 可以启动语言服务器协议(LSP)服务器(如
gopls、nil、typescript-language-server),使模型更深入地理解您的代码。 - 通过 MCP 扩展 – 可通过
stdio、http或sse添加 Model Context Protocol 服务器,提供自定义工具、数据或实时更新。 - 跨平台 – 支持 macOS、Linux、Windows(PowerShell/WSL)、Android 和 BSD 系列。
- 通过
crushrc配置 – 一个 Bash 风格的配置文件,可按项目或全局放置;可添加提供者、模型、LSP、MCP、权限等。 - 全局上下文文件 – Markdown 文件(
CRUSH.md、AGENTS.md)会自动注入系统提示,用于个人指令。 - 权限系统 – 工具(如
ls、grep、GitHub 操作)需要显式允许/拒绝,防止意外副作用。 - 工作区共享 – 指向同一工作目录的多个 TUI 客户端通过 SSE 共享相同的会话列表、历史记录和工具状态。
快速入门(启动步骤)
- 安装 – 使用 Homebrew、NPM、Arch 的 AUR、Nix、Winget、Scoop,或下载适用于您操作系统的二进制包/安装包。有 Go 工具链的用户也可使用
go install。 - 选择模型 – 按下 Ctrl + L 打开模型选择器,选择提供者(例如内置的 Hyper 服务、OpenAI、Anthropic 等),粘贴 API 密钥或设置相应的环境变量(
OPENAI_API_KEY、ANTHROPIC_API_KEY等)。 - 启动会话 – 在项目目录中运行
crush。TUI 将出现;您可以输入自然语言提示,请求代码生成,或请求执行工具。 - 配置(可选) – 创建
crushrc(Bash 语法)或 JSON 配置文件,添加 LSP、MCP 服务器或预批准的工具。README 中提供了示例片段。
配置亮点
- 提供者定义 – 在
crushrc或 JSON 中,使用provider add <name> --type <type> --base-url <url>添加提供者,然后注册模型(model add …)。 - LSP –
lsp add go --command "gopls" --enabled true使 Go 语言服务器可供模型使用。 - MCP 服务器 – 添加自定义工具后端,例如本地 Node 脚本(
mcp add filesystem --command node …)或基于 GitHub 的 MCP(mcp add github --type http …)。 - 权限 –
permissions allow view edit预批准安全工具;permissions deny bash阻止高风险工具。 - 全局上下文 – 将个人指令 Markdown 文件放在
~/.config/crush/CRUSH.md(或通过option global-context-path设置自定义路径)。 - 环境覆盖 – 设置
CRUSH_GLOBAL_CONFIG或CRUSH_GLOBAL_DATA以移动配置/状态目录。
适合谁使用
- 希望在终端中工作且不离开 shell 就能获得 AI 协助的开发者。
- 需要在多种操作系统和 CI 环境中保持一致、可配置 AI 助手的团队。
- 使用自托管 LLM(Ollama、本地 Hugging Face 推理)并希望拥有简单前端的用户。
- 希望通过 LLM 编写或自动化工具调用,同时保留细粒度权限控制的任何人。
README 中的链接
- 发布页面 – https://github.com/charmbracelet/crush/releases
- 模型目录(Catwalk) – https://github.com/charmbracelet/catwalk
- 官方提供者(Hyper) – https://hyper.charm.land
- 社区聊天 – Slack / Discord 链接(警告框中提及)
总结
Crush 是一个功能完整的、原生支持终端的 LLM 助手,可与现有开发工具(LSP、版本控制、自定义 MCP 服务)集成,并与几乎所有 LLM 后端兼容。专为偏好命令行、需要可配置、权限感知 AI 合作伙伴的开发者设计。
相关
- 项目
- 项目
- 项目
- 项目
- 项目