Crush 命令速查表 - Charmbracelet 终端多模型编码代理
终端 AI 代理的分量越来越取决于分发方式和可诊断性。Crush 是 Charmbracelet 用 Rust 写的单二进制,从 macOS、Linux 到 Windows 下的 WSL 与 BSD 都能直接跑,拷一个文件就走。它的 TUI 完成度在同类里少见,同时内置 LSP 增强让回答能落到真实的符号与诊断上,而不是纯文本猜测。这张表按安装与启动、会话与模式、配置、会话与诊断分组,讲清 provider 怎么配、日志怎么读、以及什么时候可以放开确认门禁。判断依据是「我是否信任当前目录」:信任的项目里 --yolo 能省掉大量交互,不熟悉或含敏感数据的仓库则该用 allowed_tools 白名单精确放行。什么时候翻它:想要一个能跨平台随手带走的代理、遇到行为异常需要靠日志定位、或者想给特定命令开免确认而不是全部放行。
安装与启动 6
brew install charmbracelet/tap/crushmacOS 用 Homebrew 安装
npm install -g @charmland/crush用 npm 全局安装
winget install charmbracelet.crushWindows 用 Winget 安装
go install github.com/charmbracelet/crush@latest用 Go 工具链安装
crush启动首个会话
export ANTHROPIC_API_KEY="sk-..."设置 Provider API Key(或 OPENAI/GEMINI 等)
会话与模式 4
crush --yolo跳过所有确认直接执行(慎用)
/model claude-sonnet-4会话内切换模型
crush logs --follow实时跟踪日志
crush --help查看全部命令与参数
配置 4
./.crush.json项目级配置(优先级最高)
./crush.json项目配置(另一候选位置)
$HOME/.config/crush/crush.json全局用户配置
"permissions": { "allowed_tools": ["ls", "rg", "cargo check"] }白名单工具,避免每次确认
会话与诊断 9
crush ask "..."非交互地提交一次提问
crush edit <file>让 Agent 编辑指定文件
crush config set model <model>设置默认模型
crush history list列出历史会话
crush init初始化项目配置
crush --version查看已安装版本
crush --debug开启调试日志
/clear清空当前对话上下文
/compact压缩对话历史释放上下文
提示
- Crush 是单二进制、跨平台(含 Windows PowerShell/WSL、BSD),首次启动会提示输入 Provider API Key,也可直接设环境变量。
crush --yolo一键跳过所有确认,适合信任环境快速跑;日常用allowed_tools白名单更稳,只对特定命令免确认。- Crush 内置 LSP 增强(gopls/rust-analyzer/pyright)与 MCP 扩展,问代码时能拿到真实符号表与诊断,比纯文本检索更准。
- 排查异常先开 verbose 日志级别再看 crush logs 输出,猜配置通常不如读一次实际调用记录来得快。
- API Key 用环境变量注入比写进配置文件安全,配置文件往往会被不小心提交进版本库。
- allowed_tools 用精确命令名而不是通配,逐条放行能保留对破坏性操作的拦截能力。
常见问题
Crush 支持哪些模型提供商?
支持 OpenAI、Anthropic、Groq、Gemini、Bedrock、Azure 以及任意 OpenAI/Anthropic 兼容端点,且会话内可随时 /model 切换而不丢上下文;默认自动探测你设置的环境变量。
Crush 的 LSP 和 MCP 有什么用?
LSP 让 Crush 能像你一样调用 gopls/rust-analyzer/pyright 拿实时符号表和诊断;MCP 则把 Stripe 文档、Docker、内部 wiki 等作为第一类上下文来源接入,扩展能力。
由 巧匠 维护
公开更新于 2026年8月26日,内容持续校对官方文档。