Claude Code Router:一键接入50+AI模型的智能路由器
在AI开发成本攀升与模型选择碎片化的双重挑战下,开发者亟需一种既能突破平台壁垒、又能灵活调度算力的解决方案。Claude Code Router(CCR)作为开源社区的“智能路由枢纽”,以“一键接入50+大模型”的颠覆性设计,重新定义了AI开发范式。无论是追求极致性价比的国产模型(如DeepSeek、Qwen),还是需要长上下文处理的Gemini 2.5 Pro,CCR通过动态路由策略与无感切换技术,让开发者在单一工作流中自由调用全球顶尖AI能力,真正实现“模型自由,成本可控”。
什么是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
npm install -g @anthropic-ai/claude-code
安装Claude Code Router:
装完成后,系统中将拥有 ccr 命令。
npm install -g @musistudio/claude-code-router
使用
启动CCR
ccr code
首次运行时,CCR会引导完成交互式配置,让你设置第一个AI提供商和模型。只需按照提示输入提供商名称、API Base URL、API 密钥、模型命令即可。
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
示例:
/model openrouter,anthropic/claude-3.5-sonnet
配置示例说明
CCR的所有配置都存储在 ~/.claude-code-router/config.json 文件中。可以直接编辑此文件以进行高级设置。
除开CCR引导的交互式配置自动生成外,还可以手动创建config.json配置文件进行手动配置,不同操作系统创建方式不同
Linux、Mac:
~/.claude-code-router/config.json
Wondows:
C:\Users\用户名\.claude-code-router/config.json
config.json文件如何配置可以参考开源项目的config.example.json文件。关键部分如下:
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 请求超时时间,单位为毫秒
配置示例说明:
{ // 全局 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:(可选): 指定用于处理请求和响应的转换器
示例配置:
"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后缀。
示例配置:
// “路由器”配置,用于根据不同的任务类型,智能地选择使用哪个“提供者”和“模型”。 "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:
Anthropic: 如果只使用这一个转换器,则会直接透传请求和响应(可以用它来接入其他支持Anthropic端点的服务商) deepseek: 适配 DeepSeek API 的请求/响应 gemini: 适配 Gemini API 的请求/响应 openrouter: 适配OpenRouter API 的请求/响应。它还可以接受一个provider路由参数,以指定OpenRouter应使用哪些底层提供商
全局Transformer: 将转换器应用于提供商的所有模型。
openrouter转换器将应用于openrouter提供商下的所有模型。
{ "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模型。
{ "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)接受选项。
要传递选项,使用嵌套数组,其中第一个元素是转换器名称,第二个元素是选项对象。
{ "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模式来管理配置,在终端输入以下命令
ccr ui
将打开一个基于Web的界面,输入配置文件中的APIKEY进行认证登录
然后可以在其中轻松查看和编辑config.json文件
异常
异常1:
执行ccr code命令后可能会像执行claude命令一样出现登录界面的提示操作,此时可以尝试删除.claude.json
Linux、Mac:
~/.claude.json
Windows:
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.,此时意味着你所处国家不支持访问
"error": { "code": 400, "message": "User location is not supported for the API use.", "status": "FAILED_PRECONDITION" }
总结
Claude Code Router的革新性不仅体现在其支持50+模型的接入能力,更在于它构建了一套完整的AI开发优化体系:通过智能路由规则,开发者可为代码生成、后台任务、复杂推理等场景自动匹配最优模型,API成本直降90%;动态切换命令与自定义转换器(Transformer)机制,彻底消除模型间的接口差异,让调试与部署无缝衔接;结合cpolar内网穿透工具,本地开发环境可一键暴露至公网,加速团队协作与AI服务落地。从开源生态的插件系统到GitHub Actions的深度集成,CCR正以“智能路由中枢”的定位,推动AI开发从“单一模型依赖”向“多模型协同”的范式跃迁。
版权及免责申明:本文来源于#CodeDevMaster,由@AI铺子整理发布。如若内容造成侵权/违法违规/事实不符,请联系本站客服处理!该文章观点仅代表作者本人,不代表本站立场。本站不承担相关法律责任。
如若转载,请注明出处:https://www.aipuzi.cn/ai-tutorial/claude-code-router.html