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 合作夥伴的開發者設計。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案