1. 项目定位与用途
Claude Code Router 是一个基于 Claude Code 构建的开源路由工具,作为本地代理服务器运行。它拦截 Claude Code 客户端的 API 请求,根据配置将请求转发至多种 LLM 提供商(如 OpenRouter、DeepSeek、Ollama 等),从而实现无需 Anthropic 账户即可使用 Claude Code 生态。项目定位为编码基础设施的路由层,旨在提供灵活、成本可控的 LLM 接入方案,同时支持动态模型切换和深度自定义转换逻辑。其核心价值在于打破地理限制并赋予用户对 LLM 选择的完全控制权。
2. 解决的问题
项目主要解决三类问题:地理限制问题,由于 Anthropic 服务屏蔽中国大陆等地区,开发者无法正常使用 Claude Code,本工具通过请求路由绕过此限制;模型锁定与成本问题,避免被单一提供商绑定,允许根据任务类型(背景任务、长上下文、思考模式)选择性价比最优的模型;定制化需求,通过请求/响应转换器和插件系统,支持开发者自定义 LLM 交互逻辑,适配特定工作流或内部工具,例如统一不同提供商的 API 格式或注入自定义业务逻辑。
3. 适用场景
适用于以下场景:在受限网络环境下(如中国大陆)使用 Claude Code 功能;根据任务类型动态切换模型以优化成本与性能;在 CI/CD 流水线(如 GitHub Actions)中自动化代码生成、审查等任务,通过设置 NON_INTERACTIVE_MODE=true 实现非交互式运行;通过 ccr model 等 CLI 命令管理多 LLM 提供商配置;开发自定义 transformers 插件扩展请求/响应处理逻辑,满足企业级定制需求。项目特别适合需要稳定、低成本 LLM 服务的开发团队。
4. 安装方式
安装分为两步:首先确保已安装官方 Claude Code:npm install -g @anthropic-ai/claude-code;然后安装 Claude Code Router:npm install -g @musistudio/claude-code-router。安装后需创建配置文件 ~/.claude-code-router/config.json,参考 config.example.json 设置 Providers、Router 等参数。可选配置包括代理(PROXY_URL)、API 密钥(APIKEY)、监听地址(HOST)、非交互模式(NON_INTERACTIVE_MODE)及日志选项(LOG、LOG_LEVEL)。仓库中未明确给出 Windows 系统的配置文件路径差异,但路径格式应与类 Unix 系统类似。
5. 使用方式
基本使用流程:启动路由器服务 ccr start,然后运行 ccr code 进入 Claude Code 会话,所有请求将自动路由。在会话中使用 /model 命令可动态切换当前模型。使用 ccr model 系列命令管理模型配置,包括 set(设置默认)、list(列出)、add(添加)、remove(移除)等子命令。对于 CI/CD 环境,设置环境变量 NON_INTERACTIVE_MODE=true 以确保进程不挂起。高级用法包括开发自定义 transformers 插件,通过实现特定接口修改请求/响应;仓库中未明确给出插件开发的详细 API 文档,但提供了 custom-router.example.js 示例供参考。
6. 补充说明或实现特点
项目采用多包 monorepo 结构,使用 pnpm workspaces 管理,核心模块包括 @CCR/shared(共享类型)、@CCR/cli(命令行)、@CCR/server(代理服务器与路由引擎)、@CCR/ui(状态栏等 UI 组件)以及 @musistudio/llms(LLM 提供商抽象层)。架构上,客户端-服务器模式,Claude Code 客户端连接本地服务器,服务器通过 @musistudio/llms 统一处理不同提供商的 API 格式转换、认证和流式响应。支持插件式变压器系统,允许自定义转换逻辑。日志系统分离为服务器级(pino,~/.claude-code-router/logs/ccr-*.log)和应用级(~/.claude-code-router/claude-code-router.log)。项目要求 Node.js >=20.0.0 和 pnpm >=8.0.0。