ByteNoteByteNote

字节笔记本

2026年2月22日

Claude Code Router:灵活的 AI 模型路由工具

API中转
¥120

Claude Code Router 是一个开源工具,用来把 Claude Code 的请求路由到不同的 AI 模型。项目在 GitHub 上已获得 35,000+ stars,它让你能自己决定用哪个模型干活,同时还能用上 Anthropic 的更新。

项目简介

Claude Code Router 由 musistudio 开发维护,基于 TypeScript 构建。它充当 Claude Code 和各种 LLM 提供商之间的中间层,提供路由、转换和管理功能。你可以根据任务类型把请求分给不同模型——背景任务用便宜的,复杂推理用强的,长上下文用窗口大的。

核心特性

  • 模型路由:按任务类型(背景、思考、长上下文等)路由到不同模型
  • 多提供商支持:支持 OpenRouter、DeepSeek、Ollama、Gemini、Volcengine、SiliconFlow 等
  • 请求/响应转换:用转换器适配不同提供商的 API 格式
  • 动态模型切换:Claude Code 里用 /model 命令随时换模型
  • CLI 模型管理ccr model 终端命令管理配置
  • GitHub Actions 集成:CI/CD 工作流里跑 Claude Code 任务
  • 插件系统:自定义转换器扩展功能
  • 预设系统:配置导出、分享、安装
  • 子代理路由:子代理任务指定特定模型
  • 运行时状态监控:Status Line 实时查看路由状态

技术栈

  • TypeScript:主要开发语言
  • Fastify:Web 框架
  • pnpm:包管理 + Monorepo

安装指南

前置要求

  • Node.js >= 18
  • Claude Code 已安装

安装步骤

bash
npm install -g @anthropic-ai/claude-code
npm install -g @musistudio/claude-code-router

快速开始

1. 配置

创建 ~/.claude-code-router/config.json

json
{
  "APIKEY": "your-secret-key",
  "API_TIMEOUT_MS": 600000,
  "Providers": [
    {
      "name": "deepseek",
      "api_base_url": "https://api.deepseek.com/chat/completions",
      "api_key": "sk-xxx",
      "models": ["deepseek-chat", "deepseek-reasoner"]
    },
    {
      "name": "openrouter",
      "api_base_url": "https://openrouter.ai/api/v1/chat/completions",
      "api_key": "sk-xxx",
      "models": ["anthropic/claude-sonnet-4"]
    }
  ],
  "Router": {
    "default": "deepseek,deepseek-chat",
    "think": "deepseek,deepseek-reasoner",
    "longContext": "openrouter,anthropic/claude-sonnet-4"
  }
}

2. 启动

bash
ccr code        # 启动 Claude Code with Router
ccr ui          # Web 界面管理配置
ccr model       # CLI 交互式模型选择
ccr restart     # 修改配置后重启

路由配置

Router 定义不同场景用的模型:

路由类型说明示例
default默认模型deepseek,deepseek-chat
background后台任务(省成本)ollama,qwen2.5-coder:latest
think推理任务deepseek,deepseek-reasoner
longContext长上下文(>60K tokens)openrouter,google/gemini-2.5-pro-preview
webSearch联网搜索gemini,gemini-2.5-flash
image (beta)图片处理需模型支持工具调用

动态切换:Claude Code 里输入 /model provider_name,model_name

转换器(Transformers)

转换器负责把请求/响应改成目标提供商能理解的格式。可以全局应用,也可以按模型单独配置。

内置转换器

转换器用途
Anthropic保留原始参数,直连 Anthropic 端点
deepseek适配 DeepSeek API
gemini适配 Gemini API
openrouter适配 OpenRouter,可指定底层提供商
groq适配 Groq API
maxtoken设置 max_tokens 上限
tooluse优化工具调用
reasoning处理 reasoning_content 字段
sampling处理 temperature、top_p 等采样参数
enhancetool给工具调用参数加容错(会关闭流式)
cleancache移除 cache_control 字段
vertex-gemini通过 Vertex 认证调用 Gemini
chutes-glm非官方 GLM 4.5 支持
qwen-cli实验性 Qwen CLI 支持
rovo-cli实验性 GPT-5 支持

带参数的转换器

json
{
  "transformer": {
    "use": [
      ["maxtoken", { "max_tokens": 16384 }]
    ]
  }
}

按模型单独配置

json
{
  "transformer": {
    "use": ["deepseek"],
    "deepseek-chat": { "use": ["tooluse"] }
  }
}

预设管理(Presets)

配置可以导出为预设,方便分享和复用。导出时 API Key 会自动脱敏。

bash
ccr preset export my-preset --description "我的配置" --author "Your Name"
ccr preset install /path/to/preset
ccr preset list
ccr preset info my-preset
ccr preset delete my-preset

预设文件结构:

text
~/.claude-code-router/presets/
└── my-preset/
    └── manifest.json

环境变量激活

eval "$(ccr activate)" 设置全局环境变量,之后可以直接用 claude 命令,路由自动生效:

  • ANTHROPIC_AUTH_TOKEN — API Key
  • ANTHROPIC_BASE_URL — 本地路由端点(默认 http://127.0.0.1:3456
  • NO_PROXY — 设为 127.0.0.1 防止代理干扰
  • DISABLE_TELEMETRY / DISABLE_COST_WARNINGS

子代理路由

子代理任务可以指定用哪个模型,在 prompt 开头嵌入标签即可:

text
<CCR-SUBAGENT-MODEL>openrouter,anthropic/claude-sonnet-4</CCR-SUBAGENT-MODEL>
请分析这段代码的优化空间...

自定义路由脚本

需要更复杂的路由逻辑时,可以写一个 JavaScript 模块:

javascript
module.exports = async function router(req, config) {
  const userMessage = req.body.messages.find(m => m.role === "user")?.content;
  if (userMessage?.includes("explain this code")) {
    return "openrouter,anthropic/claude-sonnet-4";
  }
  return null; // 走默认路由
};

config.json 中指定路径:"CUSTOM_ROUTER_PATH": "/path/to/custom-router.js"

环境变量插值

API Key 等敏感信息可以用环境变量引用,不用硬编码:

json
{
  "OPENAI_API_KEY": "$OPENAI_API_KEY",
  "Providers": [{
    "api_key": "$OPENAI_API_KEY"
  }]
}

支持 $VAR_NAME${VAR_NAME} 两种语法,递归生效。

状态监控(Status Line)

v1.0.40+ 内置状态栏工具,可在 UI 中开启,实时查看路由运行状态。

GitHub Actions 集成

在 CI/CD 中使用:

yaml
steps:
  - name: Prepare Environment
    run: |
      curl -fsSL https://bun.sh/install | bash
      mkdir -p $HOME/.claude-code-router
      cat << 'EOF' > $HOME/.claude-code-router/config.json
      { "NON_INTERACTIVE_MODE": true, "LOG": true }
      EOF

  - name: Start Router
    run: nohup ~/.bun/bin/bunx @musistudio/claude-code-router start &

  - name: Run Claude Code
    uses: anthropics/claude-code-action@beta
    env:
      ANTHROPIC_BASE_URL: http://localhost:3456
    with:
      anthropic_api_key: "any-string-is-ok"

注意设置 NON_INTERACTIVE_MODE: true 防止进程挂起。

注意事项

  • 修改配置后重启:ccr restart
  • 未设 APIKEY 时主机强制绑定 127.0.0.1
  • 非交互模式适用于 GitHub Actions、Docker 等自动化环境
  • 日志分两套:服务器日志(ccr-*.log)和应用日志(claude-code-router.log

项目链接

分享: