Crush

为终端编程 Agent Crush 配置 OpenAI 兼容的 CoffeeRouter Provider。

接入前准备

  • 准备 CoffeeRouter API Key 和准确的模型 ID。
  • 选择 npm、Homebrew、Winget、Scoop 或官方二进制等安装方式。
  • 确认目标模型适合代理式编程并支持所需工具能力。

配置步骤

1. 安装 Crush

npm:

npm install -g @charmland/crush

macOS Homebrew:

brew install charmbracelet/tap/crush

Windows:

winget install charmbracelet.crush

安装完成后运行 crush --version

2. 设置 API Key

Linux / macOS:

export COFFEEROUTER_API_KEY="sk-your-api-key"

Windows PowerShell:

$env:COFFEEROUTER_API_KEY="sk-your-api-key"

3. 创建 Crush 配置

Crush 按以下优先级读取配置:

  1. 项目目录中的 .crush.json
  2. 项目目录中的 crush.json
  3. 全局 $HOME/.config/crush/crush.json

创建配置并填入:

{
    "$schema": "https://charm.land/crush.json",
    "providers": {
        "coffeerouter": {
            "type": "openai-compat",
            "base_url": "https://www.coffeerouter.ai/v1",
            "api_key": "$COFFEEROUTER_API_KEY",
            "models": [
                {
                    "id": "your-model-id",
                    "name": "CoffeeRouter Model",
                    "context_window": 128000,
                    "default_max_tokens": 8192,
                    "can_reason": false
                }
            ]
        }
    }
}

将模型 ID、上下文窗口、最大输出和推理能力调整为实际模型值。

4. 启动并选择模型

cd /path/to/your-project
crush

Ctrl+L 打开模型选择器,选择 coffeerouter Provider 和目标模型。

验证接入

发送一个需要读取文件并提出修改建议的测试任务。模型能够正常响应且工具调用没有协议错误,即表示接入成功。

常见问题

看不到 coffeerouter Provider

检查配置文件位置、JSON 格式以及当前项目是否存在优先级更高的 .crush.jsoncrush.json

返回 401 Unauthorized

确认 COFFEEROUTER_API_KEY 已导出到启动 Crush 的环境中,并检查令牌状态和访问限制。

模型不存在

models[].id 必须与 CoffeeRouter 中显示的模型 ID 完全一致。保存配置后退出并重新启动 Crush。

是否可以自动获取模型

新版 Crush 支持部分 OpenAI Compatible Provider 的模型发现,但是否可用取决于服务的 /models 接口。手动列出模型最明确,也便于控制可用范围。

安全提示

  • crush.json 是受信任配置,Crush 会展开其中的环境变量,并可能执行 $(...) 表达式。不要运行来源不明的配置文件。
  • 不要把真实 API Key 直接写入或提交到项目配置。
  • 建议为 Crush 创建独立令牌并限制模型、额度和有效期。
  • Crush 会向 CoffeeRouter 发送任务描述、代码上下文和工具调用数据。

官方资料