大家好,我是贝克街的捉虫师呀!
自从各种强大的大语言模型出现后,不少开发者都开始尝试将它们融入日常的开发流程中,特别是终端里的那些AI编码助手,用起来效率确实高。比如 Anthropic 推出的 claude-code
这个命令行工具,能在终端里直接问代码问题、改文件、甚至跑测试,感觉就像有个随时待命的助手一样。但是用着用着,大家可能也会遇到一些小烦恼,比如只能用 Claude 的模型,成本有时下不来,或者你想用其他 API 提供的模型(像 DeepSeek、OpenRouter 上的各种模型,甚至本地的 Ollama)来试试效果或者省钱。
今天,我就想给大家介绍一个特别有意思的开源小工具:Claude Code Router。正如它的名字一样,它就像一个智能的“路由器”,能帮你把 claude-code
发出的请求,导向你指定的其他大模型 API,这样你就不会被限制在 Claude API 上了。我觉得这个想法挺巧妙的,也很实用。
项目概述
Claude Code Router 的核心定位,就是作为 claude-code
官方工具的一个代理层或者说转发器。简单来说,当你运行 ccr code
(Router 提供的命令)时,它会启动一个本地服务,监听 claude-code
发来的请求。然后根据你的配置,它会把这些请求转发给 OpenAI API 兼容的其他 API 服务,可以是第三方的聚合服务(比如 OpenRouter),可以是国内的各种大模型服务(比如 DeepSeek),甚至是你在本地用 Ollama 启动的服务。
你可以把它想象成一个中间人,原本 claude-code
只认识 Anthropic API 这条路,现在通过这个中间人,它能认识更多、更灵活的路,通往不同的模型提供商。这个项目是完全开源的,主要使用 TypeScript 开发,体积小巧,部署和配置都比较方便。
项目数据
这个项目在 GitHub 上目前累计收获了 1592 个星标,最近一天就增加了 112 个星,说明关注度和活跃度都挺不错的。项目的核心开发语言是 TypeScript。从提交记录和版本更新来看(README 里提到了 v1.0.8),项目维护者 @musistudio 还在积极地更新和迭代,并且已经实现了一些核心功能并规划了后续的增强点,比如更强大的插件系统和图片、Web 搜索的支持。社区反馈方面,能看到不少用户在尝试并分享配置,这通常是一个健康开源项目的好迹象。
功能亮点
Claude Code Router 虽然是个“中间人”,但它做的事情可不止简单转发,它提供了一些非常实用的功能:
🌍 多模型API支持,突破限制
这是 Router 最核心的能力。通过配置,你可以让 claude-code
使用任何兼容 OpenAI API 的模型。这意味着你可以尝试 DeepSeek 的 Coding 模型,OpenRouter 上的各种前沿模型,甚至是你本地 Ollama 运行的小模型。这给了你极大的灵活性,不再受限于 Anthropic 提供的模型,对于追求性价比或者特定模型性能的开发者来说非常有吸引力。
🧠 智能路由配置,精细化任务分配
项目允许你在配置文件中指定不同的模型来处理 claude-code
的不同内部任务。比如,claude-code
在执行一些背景任务(background
)、进行思考规划(think
)或者处理长上下文(longContext
)时,可能会调用不同的模型或使用不同的提示词。Router 让你能针对这些不同的“任务类型”,分别指定使用哪个模型。比如,背景任务可以用便宜的本地模型,思考任务可以用性能更好的远程模型,处理超长代码时切换到长上下文模型。这种精细化控制能帮助你在成本和效率之间找到最佳平衡点。
🚀 /model 命令,实时切换模型
除了配置文件中的默认路由,Router 还支持在 claude-code
的对话过程中,通过输入 /model provider,model_name
这样的命令来实时切换当前使用的模型。比如,你正在讨论一个常规问题,突然遇到一个需要强大推理能力的问题,你可以直接输入命令切换到 DeepSeek Reasoner 或 Claude 3.5 Sonnet 等模型,非常方便,无需中断整个会话或修改配置文件。
🧩 基于插件系统的扩展能力
Router 设计了一个插件系统,允许通过中间件(middleware)的方式修改请求参数,比如重写提示词或者过滤工具调用。README 中提到了 notebook-tools-filter
(过滤 Jupyter notebook 相关工具调用)和 toolcall-improvement
(为不擅长工具调用的模型添加增强提示)这两个插件。这意味着社区或者你自己可以开发插件,来定制或优化特定模型在使用 claude-code
时的表现,这给项目带来了很大的可玩性和扩展性。
🤖 无缝集成 GitHub Actions,自动化潜力巨大
claude-code
有官方的 GitHub Actions,可以在 CI/CD 流程中自动化执行一些代码相关的任务。Claude Code Router 可以和这个 Actions 无缝配合。你只需要在 GitHub Actions 的工作流中,启动 Router,然后将 ANTHROPIC_BASE_URL
指向 Router 的本地地址 (http://localhost:3456
) 即可。这样,你的自动化任务就可以利用 Router 配置的任何模型来执行,结合 README 中提到的 DeepSeek 官方 API 在特定时段的折扣,想象空间很大,比如在低谷时段用低成本模型自动跑一些代码检查或优化任务。
安装与使用
Claude Code Router 的安装和使用相对直观。
首先,你需要 Node.js 环境(或者更快更推荐的 Bun)。然后,根据项目的要求,你需要先安装官方的 claude-code
工具:
bash
# 使用 npm 安装 claude-code
npm install -g @anthropic-ai/claude-code
# 或者使用 Bun 安装
bun install -g @anthropic-ai/claude-code
接着,安装 Claude Code Router:
bash
# 使用 npm 安装 claude-code-router
npm install -g @musistudio/claude-code-router
# 或者使用 Bun 安装
bun install -g @musistudio/claude-code-router
安装完成后,不再直接运行 claude-code code
,而是运行 Router 提供的命令:
bash
ccr code
第一次运行或需要自定义配置时,你需要在用户目录下创建或修改配置文件 ~/.claude-code-router/config.json
。这个文件是 Router 的核心,你在这里指定你的 API 密钥、API 地址以及路由规则。一个基础的配置可能像这样:
json
{
"OPENAI_API_KEY": "sk-xxx", // 用于默认提供商或某些特定集成
"OPENAI_BASE_URL": "https://api.deepseek.com", // 默认的 API 地址
"OPENAI_MODEL": "deepseek-chat", // 默认模型
"Providers": [ // 定义你可以使用的各种 API 提供商
{
"name": "openrouter",
"api_base_url": "https://openrouter.ai/api/v1",
"api_key": "sk-xxx",
"models": [
"google/gemini-2.5-pro-preview",
"anthropic/claude-3.5-sonnet" // 可以在 OpenRouter 使用 Claude
]
},
{
"name": "deepseek",
"api_base_url": "https://api.deepseek.com",
"api_key": "sk-xxx",
"models": ["deepseek-coder", "deepseek-reasoner"] // DeepSeek 模型
},
{
"name": "ollama",
"api_base_url": "http://localhost:11434/v1", // 本地 Ollama 服务地址
"api_key": "ollama", // Ollama API key 可以随便填
"models": ["qwen2.5-coder:latest", "llama3:8b"] // Ollama 里可用的模型
}
],
"Router": { // 定义不同任务使用哪个提供商和模型
"background": "ollama,qwen2.5-coder:latest",
"think": "deepseek,deepseek-reasoner",
"longContext": "openrouter,google/gemini-2.5-pro-preview"
},
"usePlugins": [] // 启用哪些插件,例如 ["toolcall-improvement"]
}
需要注意的是,不同的 API 提供商可能有不同的模型名称和 API 密钥格式,需要根据实际情况填写。README 里也提到了一些小技巧,比如 DeepSeek 官方 API 可能会有上下文窗口限制导致出错,可以考虑使用字节跳动提供的 DeepSeek API,它的上下文窗口更大且支持 KV cache。这些细节在实际使用中还是挺重要的。
使用场景与推荐理由
我觉得 Claude Code Router 适用于多种场景:
- 重度
claude-code
用户但想降成本: 如果你已经习惯了claude-code
提供的终端交互和工具使用能力,但觉得直接调用 Claude API 费用较高,那么通过 Router 切换到 DeepSeek 等更具性价比的模型,能在不改变使用习惯的前提下大幅降低使用成本。README 中提到的测试,用 DeepSeek 搞定 Claude 3/4 没搞定的 Flutter 问题,而且成本不到 1 块钱,这个对比很直观。 - 希望尝试不同模型进行终端编码: 你不局限于某个特定模型,想知道哪个模型在代码生成、Bug 修复、代码解释等方面表现更好?Router 让你无需切换工具,只需要简单配置或使用
/model
命令,就能在claude-code
的框架下快速对比不同模型的效果。 - AI 辅助的自动化流程探索者: 对 GitHub Actions 集成感兴趣的开发者,可以利用 Router 的灵活性,在 CI/CD 中调用除了 Claude 以外的其他模型来执行自动化代码任务,比如自动生成文档、代码格式化检查、简单的代码评审建议等,尤其是在有 API 优惠时段,潜力更大。
- 本地模型爱好者: 如果你在本地用 Ollama 部署了一些开源代码模型(如 Qwen Coder, Llama 3 等),想让
claude-code
这个工具也能使用它们,Router 提供了这个桥梁。
推荐这个项目,主要是因为它非常巧妙地解决了 claude-code
在模型选择上的局限性,赋予了这个强大的终端工具更多的可能性。它不是要取代 claude-code
,而是增强它、让它更开放。而且作者还考虑了插件系统和自动化集成,让整个工具链更加灵活。如果你正在寻找更灵活、更经济的终端 AI 编码解决方案,Claude Code Router 绝对值得你花时间去了解和尝试。
结语
总的来说,Claude Code Router 是一个很有价值的开源项目,它用一个简单而有效的方式,打破了 claude-code
原本的模型壁垒,让我们可以自由选择背后的 AI 能力提供者。这不仅能帮我们省钱,还能让我们根据不同的任务需求,灵活地切换和利用各种大模型的优势。对于经常在终端敲代码、和 AI 助手打交道的开发者来说,我觉得它是一个非常实用的工具,值得加入你的技术工具箱。
项目的 GitHub 地址在这里:
https://github.com/musistudio/claude-code-router
感兴趣的朋友,不妨去 GitHub 上给它点个星,下载下来自己配置试试看。如果你在使用过程中有什么心得或者遇到了什么问题,也欢迎在评论区或者去 GitHub 上和作者交流反馈呀!
我是贝克街的捉虫师,我们下期再见!