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)服务器(如 goplsniltypescript-language-server),使模型更深入地理解您的代码。
  • 通过 MCP 扩展 – 可通过 stdiohttpsse 添加 Model Context Protocol 服务器,提供自定义工具、数据或实时更新。
  • 跨平台 – 支持 macOS、Linux、Windows(PowerShell/WSL)、Android 和 BSD 系列。
  • 通过 crushrc 配置 – 一个 Bash 风格的配置文件,可按项目或全局放置;可添加提供者、模型、LSP、MCP、权限等。
  • 全局上下文文件 – Markdown 文件(CRUSH.mdAGENTS.md)会自动注入系统提示,用于个人指令。
  • 权限系统 – 工具(如 lsgrep、GitHub 操作)需要显式允许/拒绝,防止意外副作用。
  • 工作区共享 – 指向同一工作目录的多个 TUI 客户端通过 SSE 共享相同的会话列表、历史记录和工具状态。

快速入门(启动步骤)

  1. 安装 – 使用 Homebrew、NPM、Arch 的 AUR、Nix、Winget、Scoop,或下载适用于您操作系统的二进制包/安装包。有 Go 工具链的用户也可使用 go install
  2. 选择模型 – 按下 Ctrl + L 打开模型选择器,选择提供者(例如内置的 Hyper 服务、OpenAI、Anthropic 等),粘贴 API 密钥或设置相应的环境变量(OPENAI_API_KEYANTHROPIC_API_KEY 等)。
  3. 启动会话 – 在项目目录中运行 crush。TUI 将出现;您可以输入自然语言提示,请求代码生成,或请求执行工具。
  4. 配置(可选) – 创建 crushrc(Bash 语法)或 JSON 配置文件,添加 LSP、MCP 服务器或预批准的工具。README 中提供了示例片段。

配置亮点

  • 提供者定义 – 在 crushrc 或 JSON 中,使用 provider add <name> --type <type> --base-url <url> 添加提供者,然后注册模型(model add …)。
  • LSPlsp 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_CONFIGCRUSH_GLOBAL_DATA 以移动配置/状态目录。

适合谁使用

  • 希望在终端中工作且不离开 shell 就能获得 AI 协助的开发者。
  • 需要在多种操作系统和 CI 环境中保持一致、可配置 AI 助手的团队。
  • 使用自托管 LLM(Ollama、本地 Hugging Face 推理)并希望拥有简单前端的用户。
  • 希望通过 LLM 编写或自动化工具调用,同时保留细粒度权限控制的任何人。

README 中的链接


总结

Crush 是一个功能完整的、原生支持终端的 LLM 助手,可与现有开发工具(LSP、版本控制、自定义 MCP 服务)集成,并与几乎所有 LLM 后端兼容。专为偏好命令行、需要可配置、权限感知 AI 合作伙伴的开发者设计。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目