Claude Code Router:一键接入多种AI模型的智能路由器

Claude Code Router

什么是Claude Code Router?

Claude Code Router是一款革命性的开源代理工具,专为解决AI模型平台锁定问题而生。它作为Claude Code CLI与各大AI模型供应商之间的智能中介,让开发者无需Anthropic官方API即可享受Claude Code的优秀体验。支持Gemini、Ollama、Deepseek、OpenRouter等多种模型,提供智能路由、成本优化和高度可定制化功能,真正实现AI模型的自由切换与灵活部署。

核心优势:

  • 模型自由: 打破平台锁定,无缝接入Gemini, Ollama, Deepseek, OpenRouter等多种模型。
  • 成本效益: 可根据任务需求选择不同成本的模型,例如使用本地免费的Ollama模型或性价比高的 API服务。
  • 功能强大: 支持基于任务类型的智能路由,为不同操作(如代码生成、后台索引)分配最合适的模型。
  • 高度可定制: 通过自定义转换器(Transformers),可以适配任意遵循OpenAI API格式的提供商。

GitHub:https://github.com/musistudio/claude-code-router

安装

安装Node.js 18+版本

进入Node.JS 官网,选择对应的操作系统和版本下载

安装claude code

bash 复制代码
npm install -g @anthropic-ai/claude-code

安装Claude Code Router:

装完成后,系统中将拥有 ccr 命令。

bash 复制代码
npm install -g @musistudio/claude-code-router

使用

启动CCR

bash 复制代码
ccr code

首次运行时,CCR会引导完成交互式配置,让你设置第一个AI提供商和模型。只需按照提示输入提供商名称、API Base URL、API 密钥、模型命令即可。

bash 复制代码
C:\Users\Administrator>ccr code
Enter Provider Name: Gemini
Enter Provider API KEY: 123456
Enter Provider URL: https://xxx.com
Enter MODEL Name: gemini-2.5-pro

授权信任Claude在当前目录中进行操作,建议在新建且安全的目录下启动Claude Code 授权同意后,就可以像使用官方 claude-code 一样与CCR互动了。

ccr命令参考

以下是 ccr CLI 的主要命令:

命令 (Command) 描述 (Description)
ccr code 启动CCR代理会话。这是最常用的命令
ccr start 启动CCR服务
ccr stop 停止CCR服务
ccr restart 重启CCR服务
ccr status 显示CCR服务状态
ccr ui 在浏览器中打开Web UI管理界面
ccr help 显示所有可用命令和选项的帮助信息
ccr version 显示当前安装的 Claude Code Router 的版本号

动态切换模型

如果在config.json配置有多个模型供应商,此时可以在使用过程中动态切换模型

  • 使用/model命令,动态切换模型命令格式: /model provider_name,model_name

示例:

bash 复制代码
/model openrouter,anthropic/claude-3.5-sonnet

配置示例说明

CCR的所有配置都存储在 ~/.claude-code-router/config.json 文件中。可以直接编辑此文件以进行高级设置。
除开CCR引导的交互式配置自动生成外,还可以手动创建config.json配置文件进行手动配置,不同操作系统创建方式不同

Linux、Mac:

bash 复制代码
 ~/.claude-code-router/config.json

Wondows:

bash 复制代码
C:\Users\用户名\.claude-code-router/config.json

config.json文件如何配置可以参考开源项目的config.example.json文件。关键部分如下:

vbnet 复制代码
PROXY_URL (可选): 为 API 请求设置代理,例如:"PROXY_URL": "http://127.0.0.1:7890"

LOG (可选): 通过将其设置为true来启用日志记录。日志文件将位于$HOME/.claude-code-router.log

APIKEY (可选): 设置一个密钥来进行身份验证。设置后,客户端请求必须在Authorization 请求头 (例如, Bearer your-secret-key) 或 x-api-key 请求头中提供此密钥。例如:"APIKEY": "your-secret-key"

HOST (可选): 设置服务的主机地址。如果未设置APIKEY,出于安全考虑,主机地址将强制设置为 127.0.0.1,以防止未经授权的访问。例如:"HOST": "0.0.0.0"

NON_INTERACTIVE_MODE (可选): 当设置为 true 时,启用与非交互式环境(如GitHub Actions、Docker容器或其他CI/CD系统)的兼容性。这会设置适当的环境变量(CI=true、FORCE_COLOR=0 等)并配置stdin 处理,以防止进程在自动化环境中挂起。例如:"NON_INTERACTIVE_MODE": true

Providers: 用于配置不同的模型提供商

Router: 用于设置路由规则。default 指定默认模型,如果未配置其他路由,则该模型将用于所有请求

API_TIMEOUT_MS: API 请求超时时间,单位为毫秒

配置示例说明:

bash 复制代码
{
  // 全局 API 密钥,用于访问此应用程序自身的主要服务。
  "APIKEY": "your-secret-key",

  // 配置代理服务器的 URL,所有的网络请求都将通过这个代理发出。
  // "http://127.0.0.1:5555" 指向本地运行的代理服务。
  "PROXY_URL": "http://127.0.0.1:5555", 

  // 日志记录开关。如果设置为 true,应用程序将生成并记录运行日志。
  "LOG": true,

  // API 请求的超时时间,单位为毫秒。
  // 这里的 600000 毫秒等于 600 秒(10分钟)。
  "API_TIMEOUT_MS": 600000,

  // 非交互模式开关。如果设置为 false,应用程序可以与用户进行交互(例如,请求输入)。
  // 设置为 true 时,它将在没有用户干预的情况下运行。
  "NON_INTERACTIVE_MODE": false,

  // "提供者"列表,定义了可以使用的不同 AI 模型服务。
  "Providers": [
    {
      // 提供商的唯一名称
      "name": "gemini",
      // 该提供者 API 的基础 URL 地址
      "api_base_url": "https://generativelanguage.googleapis.com/v1beta/models/",
      // 提供商的 API 密钥
      "api_key": "AIzaSyxxxxxxEfZDzBs1lC0Ac08",
      // 提供商可用的模型名称列表
      "models": ["gemini-2.5-flash", "gemini-2.5-pro"],
      // 指定用于处理请求和响应的转换器
      "transformer": {
        // 指定要使用的转换器名称
        "use": ["gemini"]
      }
    }
  ],

  // "路由器"配置,用于根据不同的任务类型,智能地选择使用哪个"提供者"和"模型"。
  "Router": {
    // 默认模型提供商 默认使用模型
    "default": "gemini,gemini-2.5-pro",
    // 用于处理后台任务的模型。可以是一个较小的本地模型以节省成本。
    "background": "gemini,gemini-2.5-flash",
    // 用于需要深度思考或推理任务的模型。
    "think": "gemini,gemini-2.5-flash",
    // 用于处理长文本上下文任务的模型。
    "longContext": "gemini,gemini-2.5-flash",
    // 定义长文本的阈值(可能是字符数或 token 数)。当输入超过此阈值时,将启用 "longContext" 路由。
    "longContextThreshold": 60000,
    // 用于处理网络搜索任务,需要模型本身支持
    "webSearch": "gemini,gemini-2.5-flash"
  }
}

核心配置说明

providers - 定义AI提供商

此部分是一个数组,用于定义要使用的所有AI模型提供商。

  • name: 提供商的唯一标识符(例如 "gemini", "ollama")
  • api_base: API 的基础 URL
  • api_key: API 密钥
  • models:提供商可用的模型名称列表
  • transformer:(可选): 指定用于处理请求和响应的转换器

示例配置:

bash 复制代码
  "Providers": [
    {
      "name": "gemini1",
      "api_base_url": "https://generativelanguage.googleapis.com/v1beta/models/",
      "api_key": "AIzaSyCvmL0_gwkJOH9d8jFlDFe3_9rZA1GO8OQ",
      "models": ["gemini-2.5-flash", "gemini-2.5-pro"],
      "transformer": {
        "use": ["gemini"]
      }
    }
   ]

routing - 智能路由规则

这是CCR的核心功能之一。可以为Claude Code的不同内部操作指定不同的模型,以实现性能和成本的最佳平衡。

  • default: 默认模型,用于常规任务的默认模型。
  • background: 后台模型,用于后台任务的模型。这可以是一个较小的本地模型以节省成本。
  • think: 思考模型,用于在执行任务前进行规划和推理。
  • longContext: 长上下文模型,用于处理和分析大型文件或长篇对话。
  • longContextThreshold : 触发长上下文模型的令牌数阈值。如果未指定,默认为 60000。
  • webSearch: 用于处理网络搜索任务,需要模型本身支持。如果使用openrouter需要在模型后面加上:online后缀。

示例配置:

bash 复制代码
  // "路由器"配置,用于根据不同的任务类型,智能地选择使用哪个"提供者"和"模型"。
  "Router": {
    // 默认模型提供商 默认使用模型
    "default": "gemini,gemini-2.5-pro",
    // 用于处理后台任务的模型。可以是一个较小的本地模型以节省成本。
    "background": "gemini,gemini-2.5-flash",
    // 用于需要深度思考或推理任务的模型。
    "think": "gemini,gemini-2.5-flash",
    // 用于处理长文本上下文任务的模型。
    "longContext": "gemini,gemini-2.5-flash",
    // 定义长文本的阈值(可能是字符数或 token 数)。当输入超过此阈值时,将启用 "longContext" 路由。
    "longContextThreshold": 60000,
    // 用于处理网络搜索任务,需要模型本身支持
    "webSearch": "gemini,gemini-2.5-flash"
  }

transformers - 高级自定义

Transformers允许修改请求和响应负载,以确保与不同提供商API的兼容性。

内置Transformer:

makefile 复制代码
Anthropic: 如果只使用这一个转换器,则会直接透传请求和响应(可以用它来接入其他支持Anthropic端点的服务商)

deepseek: 适配 DeepSeek API 的请求/响应

gemini: 适配 Gemini API 的请求/响应

openrouter: 适配OpenRouter API 的请求/响应。它还可以接受一个provider路由参数,以指定OpenRouter应使用哪些底层提供商

全局Transformer: 将转换器应用于提供商的所有模型。

openrouter转换器将应用于openrouter提供商下的所有模型。

bash 复制代码
 {
   "name": "openrouter",
   "api_base_url": "https://openrouter.ai/api/v1/chat/completions",
   "api_key": "sk-xxx",
   "models": [
     "google/gemini-2.5-pro-preview",
     "anthropic/claude-sonnet-4",
     "anthropic/claude-3.5-sonnet"
   ],
   "transformer": { "use": ["openrouter"] }
 }

特定于模型的Transformer: 将转换器应用于特定模型。

deepseek转换器应用于所有模型,而额外的openrouter转换器仅应用于deepseek-chat模型。

bash 复制代码
 {
   "name": "deepseek",
   "api_base_url": "https://api.deepseek.com/chat/completions",
   "api_key": "sk-xxx",
   "models": ["deepseek-chat", "deepseek-reasoner"],
   "transformer": {
     "use": ["deepseek"],
     "deepseek-chat": { "use": ["openrouter"] }
   }
 }

向Transformer 传递选项: 某些转换器(如 maxtoken)接受选项。

要传递选项,使用嵌套数组,其中第一个元素是转换器名称,第二个元素是选项对象。

bash 复制代码
{
  "name": "siliconflow",
  "api_base_url": "https://api.siliconflow.cn/v1/chat/completions",
  "api_key": "sk-xxx",
  "models": ["moonshotai/Kimi-K2-Instruct"],
  "transformer": {
    "use": [
      [
        "maxtoken",
        {
          "max_tokens": 16384
        }
      ]
    ]
  }
}

UI模式

为了获得更直观的体验,可以使用UI模式来管理配置,在终端输入以下命令

bash 复制代码
ccr ui

将打开一个基于Web的界面,输入配置文件中的APIKEY进行认证登录 然后可以在其中轻松查看和编辑config.json文件

异常

异常1:

执行ccr code命令后可能会像执行claude命令一样出现登录界面的提示操作,此时可以尝试删除.claude.json

Linux、Mac:

bash 复制代码
~/.claude.json

Windows:

bash 复制代码
C:\Users\用户名\.claude.json

异常2:

如果使用Gemini,有可能出现400错误,可以查看C:\Users\用户名\.claude-code-router\claude-code-router.log日志文件进行异常排除,例如这里遇到:User location is not supported for the API use.,此时意味着你所处国家不支持访问

bash 复制代码
 "error": {
    "code": 400,
    "message": "User location is not supported for the API use.",
    "status": "FAILED_PRECONDITION"
  }
相关推荐
火山引擎开发者社区8 分钟前
豆包・图像创作模型 Seedream 4.0 正式发布!
llm
算家计算31 分钟前
多年AI顽疾被攻克!OpenAI前CTO团队破解AI随机性难题,大模型可靠性迎来飞跃
人工智能·llm·资讯
Java中文社群1 小时前
炸裂:SpringAI新版发布,终于支持断线重连了!
java·后端·ai编程
Hello 0 11 小时前
用计算思维“破解”复杂Excel考勤表的自动化之旅
自动化·excel·ai编程·计算思维
Jagger_3 小时前
SonarQube:提升代码质量的前后端解决方案
前端·后端·ai编程
程序员X小鹿5 小时前
腾讯发布自研AI CLI工具CodeBuddy Code,限时免费,国产Claude Code来了!居然还有个隐藏入口(附教程)
ai编程·codebuddy
CoderJia程序员甲6 小时前
GitHub 热榜项目 - 日榜(2025-09-10)
ai·开源·github·ai编程·github热榜
小鑫同学7 小时前
M4 MacBook Pro + Qwen 模型:企业问答机器人原型微调实战方案
人工智能·llm
用户4099322502128 小时前
需求驱动测试:你的代码真的在按需行事吗?
后端·ai编程·trae
Asort9 小时前
AI驱动的研发效率提升:高级开发者的实战指南
aigc·ai编程