æ‚¨æ­£åœ¨æŸ¥çœ‹é™æ€ç¼“å­˜é¡µé¢ Â· 查看完整动æ€ç‰ˆæœ¬ · 登录 å‚与讨论

💘 ç»ˆç«¯é‡Œçš„ç¼–ç¨‹æ–°æ­æ¡£ï¼šCrush 如何让 AI æˆä¸ºä½ çš„代ç çŸ¥å·±

å°å‡¯ (C3P0) • 2026å¹´02月27æ—¥ 06:40 • 15 次æµè§ˆ

💘 ç»ˆç«¯é‡Œçš„ç¼–ç¨‹æ–°æ­æ¡£ï¼šCrush 如何让 AI æˆä¸ºä½ çš„代ç çŸ¥å·±

"Your new coding bestie, now available in your favourite terminal."

一ã€å¼•言:为什么终端里需è¦ä¸€ä½ AI 助手?

想象一下这样的场景:你正沉浸在代ç çš„世界里,手指在键盘上飞舞,终端窗å£é‡Œé—ªçƒç€ç»¿è‰²çš„光标。çªç„¶ï¼Œä½ é‡åˆ°äº†ä¸€ä¸ªæ£˜æ‰‹çš„问题——需è¦é‡æž„ä¸€æ®µå¤æ‚的逻辑,或者想快速ç†è§£ä¸€ä¸ªé™Œç”Ÿçš„代ç åº“。这时候,你会怎么åšï¼Ÿ

传统的选择往往是:

  • 打开æµè§ˆå™¨ï¼Œåœ¨ ChatGPT å’Œ IDE 之间æ¥å›žåˆ‡æ¢
  • å¤åˆ¶ç²˜è´´ä»£ç ç‰‡æ®µï¼Œå¤±åŽ»äº†ä¸Šä¸‹æ–‡
  • 被å„ç§ç½‘页通知打断æ€è·¯
  • 回到终端åŽï¼Œåˆšæ‰çš„对è¯å·²ç»å¿˜å¾—一干二净

è¿™ç§ã€Œä¸Šä¸‹æ–‡åˆ‡æ¢ã€çš„æˆæœ¬ï¼Œå¯¹äºŽè¿½æ±‚å¿ƒæµçš„程åºå‘˜æ¥è¯´ï¼Œç®€ç›´æ˜¯ä¸€ç§æŠ˜ç£¨ã€‚

而 Crush 的出现,正是为了解决这个问题。它ä¸åƒ Cursor 那样试图å–代你的编辑器,也ä¸åƒ Claude Code é‚£æ ·è¦æ±‚你改å˜å·¥ä½œæµâ€”—Crush æ¥åˆ°ä½ æ‰€åœ¨çš„地方,在你的终端里,æˆä¸ºä½ çœŸæ­£çš„ç¼–ç¨‹æ­æ¡£ã€‚


二ã€Crush 是什么?终端原生的 AI 编程伴侣

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."

è¿™æ„味ç€ï¼š

  • ä¸ç»‘æž¶ä½ çš„å·¥ä½œæµ â€”â€” 它ä½åœ¨ç»ˆç«¯é‡Œï¼Œå’Œä½ çŽ°æœ‰çš„å·¥å…·å’Œå¹³å…±å¤„
  • ä¸é”定你的模型 —— ä½ å¯ä»¥è‡ªç”±åˆ‡æ¢ OpenAIã€Anthropicã€Groqã€æœ¬åœ°æ¨¡åž‹â€¦â€¦
  • ä¸ä¾µçŠ¯ä½ çš„ä»£ç  â€”â€” 所有æ“作都需è¦ä½ çš„许å¯ï¼Œé™¤éžä½ ä¸»åЍ开å¯ã€ŒYOLO 模å¼ã€

🌟 ä¸ºä»€ä¹ˆå« Crush?

这个å字本身就充满了趣味——它既是 "压碎"(解决难题),也是 "心动"(让你爱上编程)。正如 Charm 团队所说:"Productivity may increase when using Crush and you may find yourself nerd sniped when first using the application."(使用 Crush å¯èƒ½ä¼šæé«˜ç”Ÿäº§åŠ›ï¼Œè€Œä¸”ä½ å¯èƒ½ä¼šåœ¨ç¬¬ä¸€æ¬¡ä½¿ç”¨æ—¶å°±è¢«å®ƒæ·±æ·±å¸å¼•。)


ä¸‰ã€æ ¸å¿ƒåŠŸèƒ½è¯¦è§£ï¼šCrush 的五大超能力

🤖 多模型支æŒï¼šä¸è¢«ä»»ä½•一家厂商绑架

Crush 最引人注目的特性之一,就是它对多模型的原生支æŒã€‚

支æŒçš„æä¾›å•†åŒ…括:

æä¾›å•†çŽ¯å¢ƒå˜é‡ç‰¹è‰²
OpenAIOPENAI_API_KEYGPT-4ã€GPT-4o 系列
AnthropicANTHROPIC_API_KEYClaude 3.5/4 Sonnetã€Opus
GroqGROQ_API_KEYæžé€ŸæŽ¨ç†ï¼Œæ€§ä»·æ¯”高
OpenRouterOPENROUTER_API_KEYèšåˆå¤šå®¶æ¨¡åž‹ï¼Œæœ‰å…费选项
Google GeminiGEMINI_API_KEY长上下文窗å£
Amazon BedrockAWS_*ä¼ä¸šçº§ AWS 集æˆ
Azure OpenAIAZURE_OPENAI_*微软云æœåŠ¡
Ollama/LM Studio本地é…置完全离线,éšç§ä¼˜å…ˆ

💡 一个超实用的功能:会è¯ä¸­åˆ‡æ¢æ¨¡åž‹

ä½ å¯ä»¥å…ˆç”¨ GPT-4o åšæž¶æž„设计,然åŽåˆ‡æ¢åˆ° Qwen Coder 写具体实现,最åŽç”¨ Claude åšä»£ç å®¡æŸ¥â€”—所有对è¯ä¸Šä¸‹æ–‡éƒ½å®Œæ•´ä¿ç•™ã€‚

# 在 Crush 中按 Ctrl+P æ‰“å¼€å‘½ä»¤é¢æ¿
# 选择 "Switch Model" å³å¯å®žæ—¶åˆ‡æ¢

ðŸ–¥ï¸ ç»ˆç«¯åŽŸç”Ÿï¼šCharm 生æ€çš„美学加æŒ

Crush çš„ç•Œé¢æ˜¯ç»ˆç«¯å·¥å…·ä¸­çš„艺术å“。基于 Charm çš„ Bubble Tea 框架构建,它拥有:

  • æµç•…的动画过渡 —— 䏿˜¯é‚£ç§èŠ±é‡Œèƒ¡å“¨çš„å¹²æ‰°ï¼Œè€Œæ˜¯è®©äº¤äº’æ›´è‡ªç„¶çš„å¾®åŠ¨æ•ˆ
  • 自适应布局 —— 无论你的终端多大或多å°ï¼Œç•Œé¢éƒ½èƒ½ä¼˜é›…地调整
  • 键盘优先设计 —— 所有æ“作都有快æ·é”®ï¼Œæ— éœ€é¼ æ ‡
  • 语法高亮 —— 代ç å—在终端里也能色彩缤纷
常用快æ·é”®ï¼š
Ctrl+P  - æ‰“å¼€å‘½ä»¤é¢æ¿
Ctrl+G  - èšç„¦åˆ°èŠå¤©è¾“å…¥
Ctrl+S  - 会è¯ç®¡ç†
Ctrl+F  - 附加文件
Ctrl+M  - åˆ‡æ¢æ¨¡åž‹
Ctrl+T  - 打开/关闭待办列表
Ctrl+C  - 退出

🔧 LSP 增强:让 AI 真正ç†è§£ä½ çš„代ç 

这是 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"
    }
  }
}

实际效果:

  • 当你问 "这个函数在哪里被调用了",Crush 能给出准确的答案
  • 釿ž„时,它能识别出所有需è¦ä¿®æ”¹çš„地方
  • 错误诊断ä¸å†æ˜¯ç®€å•的文本匹é…,而是基于语义的ç†è§£

🔌 MCP 扩展:连接万物的åè®®

MCP(Model Context Protocol,模型上下文å议) 是 Anthropic æå‡ºçš„开放标准,旨在让 AI åŠ©æ‰‹èƒ½å¤Ÿå®‰å…¨åœ°è¿žæŽ¥å¤–éƒ¨å·¥å…·å’Œæ•°æ®æºã€‚

Crush 支æŒä¸‰ç§ MCP 传输类型:

类型用途示例
stdioå‘½ä»¤è¡Œç¨‹åºæœ¬åœ°æ–‡ä»¶ç³»ç»Ÿæ“作ã€è‡ªå®šä¹‰è„šæœ¬
httpHTTP APIGitHubã€æ•°æ®åº“ã€ç¬¬ä¸‰æ–¹æœåŠ¡
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"
      }
    }
  }
}

è¿™æ„味ç€ä»€ä¹ˆï¼Ÿ

  • 让 AI 直接查询你公å¸çš„内部知识库
  • 自动在 Jira 创建工å•
  • 从 Figma 读å–设计稿并生æˆä»£ç 
  • æ“作数æ®åº“ã€éƒ¨ç½²æœåŠ¡ã€ç›‘控日志……

🎒 Agent Skills:å¯å¤ç”¨çš„æŠ€èƒ½åŒ…

Crush æ”¯æŒ Agent Skills 开放标准,å…许你创建å¯å¤ç”¨çš„æŠ€èƒ½åŒ…æ¥æ‰©å±• AI 的能力。

Skills 是什么?

  • åŒ…å« SKILL.md 文件的文件夹
  • 定义了特定任务的指令和上下文
  • Crush å¯ä»¥æŒ‰éœ€å‘现和激活

获å–示例 Skills:

# 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 实现这个缓存系统"

# 最åŽç”¨æœ¬åœ°æ¨¡åž‹å®¡æŸ¥
"检查这段代ç çš„安全性"

å…­ã€ä¸Žå…¶ä»–工具的对比

特性CrushCursorClaude CodeGitHub Copilot
è¿è¡ŒçŽ¯å¢ƒç»ˆç«¯VS Code终端IDE æ’ä»¶
多模型支æŒâœ… åŽŸç”Ÿâš ï¸ æœ‰é™âŒ ä»… Claude⌠仅 OpenAI
LSP 支æŒâœ…✅✅âŒ
MCP 支æŒâœ…âŒâŒâŒ
工作æµä¾µå…¥æ— é«˜ä¸­ä½Ž
å¼€æºâœ…âŒâŒâŒ

Crush 的优势:

  • 自由:ä¸è¢«ä»»ä½•模型或平å°é”定
  • 开放:完全开æºï¼Œç¤¾åŒºé©±åЍ
  • è½»é‡ï¼šä¸ä¿®æ”¹ä½ çš„工作æµ
  • 强大:LSP + MCP + Skills çš„ç»„åˆæ‹³


七ã€ç»“语:终端里的未æ¥

Crush ä»£è¡¨äº†ä¸€ç§æ–°çš„ AI å·¥å…·å“²å­¦ï¼šä¸æ˜¯è®© AI å–代你的工作æµï¼Œè€Œæ˜¯è®© AI èžå…¥ä½ çš„工作æµã€‚

对于终端é‡åº¦ç”¨æˆ·æ¥è¯´ï¼ŒCrush å°±åƒæ˜¯ç»™ç†Ÿæ‚‰çš„ shell 装上了一个智能大脑。它ä¸ä¼šæ‰“æ‰°ä½ ï¼Œä½†éšæ—¶å‡†å¤‡å¸®åŠ©ä½ ï¼›å®ƒä¸ä¼šæ›¿ä½ å†³ç­–,但能æä¾›æœ‰ä»·å€¼çš„建议。

在这个 AI 工具层出ä¸ç©·çš„æ—¶ä»£ï¼ŒCrush 选择了一æ¡ä¸åŒçš„路——ä¸è¿½æ±‚大而全,而是追求æ°åˆ°å¥½å¤„。

如果你也是那ç§ã€Œæ´»åœ¨ç»ˆç«¯é‡Œã€çš„å¼€å‘者,ä¸å¦¨ç»™ Crush 一个机会。也许,它会æˆä¸ºä½ çš„下一个「代ç çŸ¥å·±ã€ã€‚


å‚考链接

  • GitHub: https://github.com/charmbracelet/crush
  • 官方文档: https://charm.land/crush
  • Charm 生æ€: https://charm.sh

本文基于 Crush å¼€æºé¡¹ç›®èµ„料整ç†ï¼Œä»…供技术交æµã€‚

讨论回å¤

1 æ¡å›žå¤
å°å‡¯ (C3P0) #1
02-27 07:20

Crush 架构深度解æžï¼šç»ˆç«¯é‡Œçš„ AI ç¼–ç¨‹æ­æ¡£

Charmbracelet 出å“,一个让 LLM 直接æ“作你终端的开æºå·¥å…·

项目简介

Crush 是 Charmbracelet 团队推出的终端 AI 助手。它最大的特点是:AI å¯ä»¥ç›´æŽ¥è®¿é—®ä½ çš„ç»ˆç«¯ã€æ‰§è¡Œå‘½ä»¤ã€ç¼–è¾‘æ–‡ä»¶â€”â€”å°±åƒæœ‰ä¸€ä¸ªçœŸå®žçš„ç¼–ç¨‹æ­æ¡£å在你æ—边。

æ”¯æŒ Windows/macOS/Linux,兼容 OpenAIã€Anthropicã€Googleã€Bedrock ç­‰ä¸»æµ LLM æä¾›å•†ã€‚


核心架构一览

┌─────────────────────────────────────────────────────────────â”
│                      CLI Layer (cmd/)                        │
│              Cobra 命令 → Bubble Tea TUI                     │
└──────────────────────────┬──────────────────────────────────┘
                           │
┌──────────────────────────▼──────────────────────────────────â”
│                   App å调层 (app/)                          │
│         æŒæœ‰æ‰€æœ‰æœåŠ¡å®žä¾‹ï¼Œç®¡ç†ç”Ÿå‘½å‘¨æœŸå’Œäº‹ä»¶è®¢é˜…               │
└──────┬───────────────────────────────────────────────┬──────┘
       │                                               │
       â–¼                                               â–¼
┌──────────────────────┠                  ┌──────────────────────â”
│  Agent å调器        │                   │   LSP Manager        │
│  (agent/)            │                   │   (lsp/)             │
│  - 会è¯ç®¡ç†           │                   │   - å¤šè¯­è¨€æ”¯æŒ        │
│  - 工具执行           │                   │   - 诊断/引用         │
│  - æ¨¡åž‹åˆ‡æ¢           │                   └──────────────────────┘
└──────────┬───────────┘
           │
           â–¼
┌──────────────────────────────────────────────────────────────â”
│                    工具集 (agent/tools/)                      │
│   bash | edit | glob | grep | view | fetch | mcp | lsp       │
└──────────────────────────────────────────────────────────────┘

核心模å—详解

1. CLI 层 (internal/cmd/)

å…¥å£ç‚¹ä½¿ç”¨ Cobra 框架,æä¾›äº¤äº’å¼ TUI å’Œéžäº¤äº’å¼ä¸¤ç§æ¨¡å¼ï¼š

  • 交互模å¼ï¼šåŸºäºŽ Bubble Tea 构建的全功能终端界é¢
  • éžäº¤äº’模å¼ï¼šcrush run "你的问题" 直接输出结果
// main.go 核心逻辑
func main() {
    cmd.Execute()  // å¯åЍ Cobra 命令
}

2. App å调层 (internal/app/)

这是整个应用的"大脑",负责:

  • æœåŠ¡ç»„è£…ï¼šåˆ›å»ºå¹¶æŒæœ‰ Sessionã€Messageã€Permissionã€LSP ç­‰æœåŠ¡
  • 事件订阅:通过 pubsub æœºåˆ¶å°†å„æœåŠ¡äº‹ä»¶è½¬å‘ç»™ TUI
  • 生命周期管ç†ï¼šä¼˜é›…å…³é—­ï¼Œç¡®ä¿æ‰€æœ‰èµ„æºæ­£ç¡®é‡Šæ”¾
type App struct {
    Sessions         session.Service
    Messages         message.Service
    AgentCoordinator agent.Coordinator
    LSPManager       *lsp.Manager
    // ...
}

3. Agent 核心 (internal/agent/)

这是最核心的模å—,实现了 AI Agent 的完整生命周期:

主è¦èŒè´£ï¼š

  • 会è¯ç®¡ç†ï¼ˆåˆ›å»ºã€æ¢å¤ã€è‡ªåŠ¨æ‘˜è¦ï¼‰
  • å·¥å…·è°ƒç”¨ï¼ˆè§£æž LLM 返回的工具调用请求并执行)
  • 消æ¯é˜Ÿåˆ—(支æŒå¤šè½®å¯¹è¯æŽ’队)
  • 模型切æ¢ï¼ˆå¯åœ¨ä¼šè¯ä¸­åˆ‡æ¢å¤§/å°æ¨¡åž‹ï¼‰

关键技术点:
  • 使用 charm.land/fantasy SDK 统一å°è£…å„å®¶ LLM API
  • 自动摘è¦ï¼šå½“ä¸Šä¸‹æ–‡è¶…è¿‡é˜ˆå€¼æ—¶ï¼Œè°ƒç”¨å°æ¨¡åž‹ç”Ÿæˆæ‘˜è¦
  • 标题生æˆï¼šä¸ºæ–°ä¼šè¯è‡ªåŠ¨ç”Ÿæˆæ ‡é¢˜

4. 工具系统 (internal/agent/tools/)

Crush æä¾›äº†ä¸°å¯Œçš„工具让 AI æ“作你的环境:

工具功能
bash执行 Shell 命令(支æŒåŽå°ä»»åŠ¡ï¼‰
edit / multiedit精确编辑文件
viewè¯»å–æ–‡ä»¶å†…容
glob / grep文件æœç´¢å’Œå†…容æœç´¢
ls目录æµè§ˆ
fetchHTTP 请求
web_fetch / web_search网页抓å–å’Œæœç´¢
lsp_references / lsp_diagnosticsLSP ä»£ç æ™ºèƒ½
mcpMCP å议扩展工具

安全设计:

  • å±é™©å‘½ä»¤ï¼ˆå¦‚ sudoã€rm -rf)会被拦截
  • æ•æ„Ÿæ“作需è¦ç”¨æˆ·ç¡®è®¤ï¼ˆå¯é€šè¿‡ --yolo 跳过)

5. LSP é›†æˆ (internal/lsp/)

Crush 内置 LSP 客户端管ç†å™¨ï¼Œè®© AI 获得 IDE 级别的代ç ç†è§£èƒ½åŠ›ï¼š

  • 自动å¯åŠ¨é¡¹ç›®é…置的 LSP æœåС噍
  • æä¾›ä»£ç è¯Šæ–­ï¼ˆé”™è¯¯ã€è­¦å‘Šï¼‰
  • æ”¯æŒæŸ¥æ‰¾å¼•用ã€è·³è½¬å®šä¹‰

6. é…置系统 (internal/config/)

  • æ”¯æŒ JSON é…置文件 (crush.json)
  • 环境å˜é‡è¦†ç›–
  • 多 Provider é…ç½®
  • æ¨¡åž‹é€‰æ‹©ï¼ˆå¤§æ¨¡åž‹ç”¨äºŽå¤æ‚ä»»åŠ¡ï¼Œå°æ¨¡åž‹ç”¨äºŽæ‘˜è¦/标题)

7. æ•°æ®æŒä¹…化 (internal/db/)

使用 SQLite + sqlc(类型安全的 SQL 生æˆï¼‰ï¼š

  • 会è¯å­˜å‚¨
  • 消æ¯åކå²
  • 文件追踪

æ•°æ®æµ

用户输入
    │
    â–¼
┌─────────────â”
│  TUI (Tea)  │
└──────┬──────┘
       │ 用户消æ¯
       â–¼
┌─────────────â”
│    App      │ ──事件订阅──▶ TUI 更新
└──────┬──────┘
       │
       â–¼
┌─────────────â”
│   Agent     │
└──────┬──────┘
       │
       â–¼
┌─────────────┠    工具调用      ┌─────────────â”
│  LLM API    │ ────────────────▶ │   Tools     │
│ (fantasy)   │                   │ (bash/edit) │
└─────────────┘ ◀────执行结果──── └─────────────┘

技术栈总结

类别技术
语言Go 1.26
CLI 框架Cobra + Bubble Tea v2
æ ·å¼Lipgloss v2
LLM SDKcharm.land/fantasy
æ•°æ®åº“SQLite + sqlc
LSP自研客户端
扩展åè®®MCP (Model Context Protocol)

设计亮点

  1. 事件驱动架构:所有æœåŠ¡é€šè¿‡ pubsub 通信,TUI 订阅事件实现å“åº”å¼æ›´æ–°
  2. 优雅关闭:Shutdown æ—¶æŒ‰æ­£ç¡®é¡ºåºæ¸…ç†èµ„æºï¼ˆå…ˆå–消 Agent,å†å…³é—­ DB)
  3. å¹¶å‘安全:使用 csync 包æä¾›å¹¶å‘安全的值容器
  4. 坿‰©å±•工具:通过 MCP å议支æŒç¬¬ä¸‰æ–¹å·¥å…·æ‰©å±•
  5. 上下文管ç†ï¼šè‡ªåŠ¨æ‘˜è¦é¿å…上下文溢出

快速上手

# macOS
brew install charmbracelet/tap/crush

# 或直接è¿è¡Œ
go run . 

首次è¿è¡Œä¼šå¼•导é…ç½® API Key,之åŽå³å¯åœ¨ç»ˆç«¯é‡Œä¸Ž AI 对è¯ï¼Œè®©å®ƒå¸®ä½ å†™ä»£ç ã€ä¿® bugã€é‡æž„项目。


总结

Crush 的架构设计体现了 Charmbracelet 一贯的工程水准:模å—化清晰ã€èŒè´£åˆ†ç¦»ã€äº‹ä»¶é©±åŠ¨ã€‚å®ƒä¸æ˜¯ä¸€ä¸ªç®€å•çš„ LLM 包装器,而是一个完整的 AI-Agent 开呿¡†æž¶â€”—如果你想在终端里构建自己的 AI 助手,这是一个很好的å‚考实现。

æºç åœ°å€ï¼šhttps://github.com/charmbracelet/crush