Crush 接入

把 QCode.cc 配成 Charm Crush 的自定义 provider:crush.json 里 type=anthropic + base_url,终端里用 Claude

Crush 接入

Crush 是 Charm 出品的终端 AI 编程 Agent(Go 编写,TUI 优先)。它支持自定义 provider,可以把 QCode.cc 配成上游。

命名提示:Crush 最初叫 "Open Code",后来改名以避免与 OpenCode 混淆。两者是不同的项目。

走哪条腿

Crush 的自定义 provider 支持 anthropicopenai-compat 两种 type要用 Claude 就选 anthropic——QCode 的 OpenAI 端点不接受 Claude 模型(见 接入点与 API 格式)。

你想用的模型 type base_url
Claude anthropic https://api.qcode.cc/api
GPT 系 / 国产四家族 openai-compat https://api.qcode.cc/openai/v1

安装

# Homebrew
brew install charmbracelet/tap/crush

# 或从 Releases 下载预编译二进制
# https://github.com/charmbracelet/crush/releases

验证(以实际输出为准,不要对照文档里的版本号):

crush --version

配置

在项目根目录建 crush.json(或放到用户级配置目录,路径以官方文档为准):

{
  "$schema": "https://charm.land/crush.json",
  "providers": {
    "qcode": {
      "type": "anthropic",
      "base_url": "https://api.qcode.cc/api",
      "api_key": "$QCODE_KEY",
      "extra_headers": { "anthropic-version": "2023-06-01" },
      "models": [
        {
          "id": "claude-sonnet-5",
          "name": "QCode Sonnet 5",
          "cost_per_1m_in": 2,
          "cost_per_1m_out": 10,
          "context_window": 1000000,
          "default_max_tokens": 8192
        },
        {
          "id": "claude-haiku-4-5",
          "name": "QCode Haiku 4.5",
          "cost_per_1m_in": 1,
          "cost_per_1m_out": 5,
          "context_window": 200000,
          "default_max_tokens": 4096
        }
      ]
    }
  }
}

密钥用环境变量注入,不写进配置文件:

export QCODE_KEY="cr_你的QCode密钥"

字段说明:

字段 说明
type anthropic = 走 Anthropic 原生 Messages 协议
base_url 填到 /api 为止。Crush 会自己拼 /v1/messages
api_key 支持 $变量名 形式的环境变量展开
extra_headers Anthropic 协议需要 anthropic-version
models[] 必须显式列出可用模型;id 要与 qcode.cc/models 上的 id 逐字符一致

国内用户把域名换成 https://asia.qcode.cc/api(香港节点),Key 不变。 cost_per_1m_* 只影响 Crush 自己的用量估算显示,不影响实际计费。

验证

crush run "reply with exactly: OK"

返回 OK 即接通。

判断是不是真的走到了 QCode:故意把 base_url 改成一个不存在的路径再跑一次, 应当看到明确的 404 并回显完整 URL,例如:

404 Not Found {"error":"Not Found","message":"Route /api/xxx/v1/messages not found"}

看到这个报错说明 Crush 确实在拼 base_url + /v1/messages,配置生效了。 (这一步是阴性对照:只看到成功不能证明配置生效,可能是走了别的 provider。)

常用用法

# 交互模式
crush

# 非交互
crush run "把这个函数改成异步的"

# 管道
cat README.md | crush run "把它写得更清楚" > README.new.md

# 指定工作目录 + 调试日志
crush --debug --cwd /path/to/project

# 自动接受全部权限(谨慎)
crush --yolo

常见问题

model_not_available_on_endpoint

type 写成了 openai-compat 而模型是 Claude。改成 type: "anthropic"base_urlhttps://api.qcode.cc/api

401 Invalid API key

环境变量没注入,或密钥带了空格。确认 echo $QCODE_KEY 输出以 cr_ 开头。

模型下拉里看不到

Crush 只显示 models[] 里显式列出的模型。加一条记录再重启。

相关文档

相关文档

SillyTavern 接入 QCode
在 SillyTavern 中用 QCode.cc 的 Claude / GPT 模型聊天;关于 gpt-image-2 出图能否接入的诚实说明与替代方案
Cursor 编辑器接入
在 Cursor IDE 中通过自定义 Anthropic / OpenAI Base URL + API Key 接入 QCode.cc,含模型配置、自定义端点限制说明与排错
Devin Desktop(原 Windsurf)接入
Windsurf 已更名 Devin Desktop 并改为 ACP 架构:把 Claude Code 当 ACP agent 挂进去,环境变量指向 QCode
🚀
开始使用 QCode — Claude Code & Codex
一份套餐同时加速 Claude Code 和 Codex,亚太低延迟
查看套餐定价 → 注册账号
团队 3 人以上?
企业团队版:独立域名 + 子Key管理 + 封号保障,人均低至 ¥250/月
了解企业版 →