{"id":35154262,"url":"https://github.com/luwill/claude-code-model-router","last_synced_at":"2026-05-22T04:06:35.541Z","repository":{"id":327600130,"uuid":"1109730432","full_name":"luwill/Claude-Code-Model-Router","owner":"luwill","description":"A lightweight API gateway that lets you switch to third-party AI models when using Claude Code.","archived":false,"fork":false,"pushed_at":"2026-05-06T10:17:50.000Z","size":354,"stargazers_count":17,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-06T12:25:19.638Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luwill.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-04T07:52:08.000Z","updated_at":"2026-05-06T10:17:54.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/luwill/Claude-Code-Model-Router","commit_stats":null,"previous_names":["luwill/claude-code-model-router"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/luwill/Claude-Code-Model-Router","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luwill%2FClaude-Code-Model-Router","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luwill%2FClaude-Code-Model-Router/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luwill%2FClaude-Code-Model-Router/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luwill%2FClaude-Code-Model-Router/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luwill","download_url":"https://codeload.github.com/luwill/Claude-Code-Model-Router/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luwill%2FClaude-Code-Model-Router/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33328652,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T12:23:38.849Z","status":"online","status_checked_at":"2026-05-22T02:00:06.671Z","response_time":265,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-28T16:14:47.820Z","updated_at":"2026-05-22T04:06:35.535Z","avatar_url":"https://github.com/luwill.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![npm version](https://img.shields.io/npm/v/claude-code-model-router.svg)](https://www.npmjs.com/package/claude-code-model-router)\n[![npm downloads](https://img.shields.io/npm/dm/claude-code-model-router.svg)](https://www.npmjs.com/package/claude-code-model-router)\n\n\n# Claude Code Model Router\n\n一个轻量级 API 网关，让你在使用 Claude Code 时可以切换到第三方 AI 模型。\n\n支持 Windows、macOS、Linux 跨平台使用。\n\n## 快速开始\n\n### 方式一：使用 npx（推荐）\n\n```bash\n# 1. 初始化配置文件\nnpx claude-code-model-router init\n\n# 2. 编辑 .env 文件，填入 API Keys\n\n# 3. 启动网关\nnpx claude-code-model-router start\n\n# 4. 新开终端，启动 Claude Code\n# 第三方模型（网关模式）：\nnpx claude-code-model-router claude\n\n# 官方订阅（默认模式）：\nclaude\n```\n\n### 方式二：全局安装\n\n```bash\nnpm install -g claude-code-model-router\n\n# 然后使用 ccmr 命令\nccmr init\nccmr start\n\n# 启动 Claude Code\nccmr claude    # 第三方模型（网关模式）\nclaude         # 官方订阅（默认模式）\n```\n\n## 命令说明\n\n```bash\n# 初始化配置文件\nnpx claude-code-model-router init\n\n# 启动网关\nnpx claude-code-model-router start\nnpx claude-code-model-router start --port 9000  # 指定端口\n\n# 查看可用模型\nnpx claude-code-model-router models\n\n# 启动 Claude Code（网关模式，使用第三方模型）\nnpx claude-code-model-router claude\nnpx claude-code-model-router claude --gateway-port 9000  # 自定义网关端口\n\n# 启动 Claude Code（官方订阅）\nclaude\n```\n\n### Claude Code 原生参数支持\n\n`ccmr claude` 命令完整支持 Claude Code 的原生启动参数：\n\n```bash\n# YOLO 模式（跳过所有权限确认）\nccmr claude --dangerously-skip-permissions\n\n# 继续上一次会话\nccmr claude --continue\nccmr claude -c\n\n# YOLO 模式 + 继续上一次会话\nccmr claude --dangerously-skip-permissions --continue\n\n# 恢复指定会话（交互式选择）\nccmr claude --resume\nccmr claude -r\n\n# 恢复指定会话 ID\nccmr claude --resume \u003csession-id\u003e\n\n# 调试模式\nccmr claude --debug\nccmr claude --verbose\n\n# 连接 IDE\nccmr claude --ide\n\n# 指定权限模式\nccmr claude --permission-mode bypassPermissions\n\n# 打印模式（非交互式）\nccmr claude -p \"你的问题\"\nccmr claude --print --output-format json \"你的问题\"\n```\n\n**支持的完整参数列表：**\n\n| 参数 | 说明 |\n|------|------|\n| `-c, --continue` | 继续最近的会话 |\n| `-r, --resume [id]` | 恢复指定会话或打开会话选择器 |\n| `--fork-session` | 恢复时创建新会话 ID |\n| `--dangerously-skip-permissions` | 跳过所有权限检查（YOLO 模式） |\n| `--permission-mode \u003cmode\u003e` | 权限模式：acceptEdits, bypassPermissions, default, dontAsk, plan |\n| `-p, --print` | 打印模式（非交互式） |\n| `--output-format \u003cformat\u003e` | 输出格式：text, json, stream-json |\n| `--model \u003cmodel\u003e` | 指定模型（覆盖网关路由） |\n| `--system-prompt \u003cprompt\u003e` | 自定义系统提示 |\n| `--add-dir \u003cdirs...\u003e` | 添加额外目录权限 |\n| `-d, --debug` | 调试模式 |\n| `--verbose` | 详细输出 |\n| `--ide` | 自动连接 IDE |\n| `--gateway-port \u003cport\u003e` | 指定网关端口（默认 8080） |\n\n\u003e **提示：** 任何 Claude Code 原生支持的参数都可以直接传递给 `ccmr claude`\n\n`ccmr claude` 会为网关模式自动注入独立环境变量：\n\n- `CLAUDE_CONFIG_DIR=~/.claude-gateway`\n- `ANTHROPIC_BASE_URL=http://127.0.0.1:\u003cgateway-port\u003e`\n- `ANTHROPIC_AUTH_TOKEN=ccmr-local-gateway`\n- `ANTHROPIC_MODEL` 和 Claude 默认模型变量会指向当前 `default_model`\n\n这些变量只作用于 `ccmr claude` 启动的 Claude Code 子进程，不会修改你的官方 Claude Code 配置，也不会影响直接运行 `claude` 的官方订阅模式。\n\n## 支持的模型\n\n| 短名称 | 版本别名 | 模型 | 提供商 |\n|--------|----------|------|--------|\n| `deepseek-v4-pro` | `deepseek`, `deepseek-v4`, `deepseek-pro`, `ds` | DeepSeek V4 Pro | DeepSeek |\n| `deepseek-v4-flash` | `deepseek-flash`, `deepseek-chat` | DeepSeek V4 Flash | DeepSeek |\n| `kimi-k2.6` | `kimi`, `kimi-k2`, `moonshot` | Kimi K2.6 | Moonshot |\n| `minimax-m2.7` | `minimax`, `minimax-cn`, `minimax-m2`, `mm` | MiniMax M2.7 | MiniMax CN |\n| `minimax-m2.7-highspeed` | `minimax-highspeed`, `minimax-cn-highspeed` | MiniMax M2.7 Highspeed | MiniMax CN |\n| `minimax-global-m2.7` | `minimax-global`, `minimax-io` | MiniMax M2.7 | MiniMax Global |\n| `minimax-global-m2.7-highspeed` | `minimax-global-highspeed` | MiniMax M2.7 Highspeed | MiniMax Global |\n| `qwen3.5-plus` | `qwen`, `qwen3.5`, `tongyi` | Qwen3.5 Plus | 阿里云 |\n| `qwen3.5-flash` | - | Qwen3.5 Flash | 阿里云 |\n| `qwen3-max` | - | Qwen3 Max | 阿里云 |\n| `glm-5.1` | `glm`, `glm-5`, `zhipu`, `chatglm` | GLM-5.1 | 智谱 AI |\n| `mimo-v2.5-pro` | `mimo`, `mimo-pro`, `mimo-token-sgp`, `xiaomi` | MiMo V2.5 Pro | MiMo Token Plan SGP |\n| `mimo-v2.5` | `mimo-v2` | MiMo V2.5 | MiMo Token Plan SGP |\n| `mimo-token-cn-v2.5-pro` | `mimo-token-cn`, `mimo-cn` | MiMo V2.5 Pro | MiMo Token Plan CN |\n| `mimo-token-ams-v2.5-pro` | `mimo-token-ams`, `mimo-ams` | MiMo V2.5 Pro | MiMo Token Plan AMS |\n| `mimo-payg-v2.5-pro` | `mimo-payg`, `mimo-payg-pro` | MiMo V2.5 Pro | MiMo Pay-as-you-go |\n\n### 模型参数\n\n| 模型 | Context Window | Max Output Tokens |\n|------|----------------|-------------------|\n| DeepSeek V4 Pro | 1M | 384K |\n| DeepSeek V4 Flash | 1M | 384K |\n| Kimi K2.6 | 256K | 32K |\n| MiniMax M2.7 (CN / Global) | 200K | 192K |\n| MiniMax M2.7 Highspeed (CN / Global) | 200K | 192K |\n| Qwen3.5 Plus | 1M | 64K |\n| Qwen3.5 Flash | 1M | 64K |\n| Qwen3 Max | 1M | 64K |\n| GLM-5.1 | 200K | 128K |\n| MiMo V2.5 Pro | 1M | 128K |\n| MiMo V2.5 | 1M | 128K |\n\n## 配置\n\n### 环境变量 (.env)\n\n```bash\nDEEPSEEK_API_KEY=sk-xxx    # https://platform.deepseek.com/\nKIMI_API_KEY=sk-xxx        # https://platform.kimi.ai/\nMINIMAX_API_KEY=xxx        # MiniMax CN / Token Plan: https://platform.minimaxi.com/\nMINIMAX_GLOBAL_API_KEY=xxx # MiniMax Global: https://platform.minimax.io/\nQWEN_API_KEY=sk-xxx        # https://dashscope.console.aliyun.com/\nGLM_API_KEY=xxx            # https://open.bigmodel.cn/\nMIMO_API_KEY=tp-xxx        # MiMo Token Plan，默认 SGP 集群\nMIMO_TOKEN_CN_API_KEY=tp-xxx  # MiMo Token Plan CN 集群\nMIMO_TOKEN_AMS_API_KEY=tp-xxx # MiMo Token Plan AMS 集群\nMIMO_PAYG_API_KEY=sk-xxx   # MiMo Pay-as-you-go: https://platform.xiaomimimo.com/\n```\n\nMiMo Token Plan 的 Base URL 与购买套餐所在集群绑定。默认 `mimo` 使用 SGP 集群；如果订阅页显示 CN 或 AMS 集群，请分别配置 `MIMO_TOKEN_CN_API_KEY` / `MIMO_TOKEN_AMS_API_KEY`，并使用 `mimo-token-cn` 或 `mimo-token-ams`。`tp-*` Token Plan Key 不能用于按量付费接口，`sk-*` 按量付费 Key 也不能用于 Token Plan 接口。\n\n### 配置文件 (models.yaml)\n\n可以自定义供应商、模型变体、别名等。运行 `init` 命令会生成 `providers -\u003e variants` 结构的模板；旧版平铺 `models` 配置仍然兼容。\n\n## 使用场景\n\n### 双模式使用（配置完全隔离）\n\n本工具通过独立的配置目录实现完全隔离，让你可以同时使用官方订阅和第三方模型：\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│  模式1: 官方订阅（默认）                                          │\n│  命令: claude                                                    │\n│  配置: ~/.claude/settings.json                                  │\n│  用途: 使用 Claude 官方模型（订阅额度）                           │\n└─────────────────────────────────────────────────────────────────┘\n\n┌─────────────────────────────────────────────────────────────────┐\n│  模式2: 第三方模型（网关）                                        │\n│  命令: npx claude-code-model-router claude                      │\n│  配置: ~/.claude-gateway/settings.json                          │\n│  用途: 使用第三方 AI 模型（DeepSeek, GLM, Qwen 等）              │\n└─────────────────────────────────────────────────────────────────┘\n```\n\n#### 为什么配置是隔离的？\n\n- **官方模式**使用 `~/.claude/` 配置目录（Claude Code 默认）\n- **网关模式**使用 `~/.claude-gateway/` 配置目录（独立隔离）\n- 两个配置目录完全独立，互不干扰\n- 在网关模式切换模型不会影响官方模式\n\n#### 使用步骤\n\n**第一步：启动网关**\n```bash\nnpx claude-code-model-router start\n```\n\n**第二步：选择使用模式**\n\n**使用官方订阅（终端 A）：**\n```bash\nclaude\n```\n- 使用官方 Claude 模型（Sonnet, Opus, Haiku）\n- 消耗订阅额度\n- 配置存储在 `~/.claude/`\n\n**使用第三方模型（终端 B）：**\n```bash\nnpx claude-code-model-router claude\n```\n- 使用第三方 AI 模型（DeepSeek V4, GLM-5.1, Qwen3.5, Kimi K2.6, MiMo V2.5 等）\n- 按 API 使用量付费\n- 配置存储在 `~/.claude-gateway/`\n\n#### 跨平台支持\n\n所有命令在 Windows、macOS、Linux 上完全相同，无需修改。\n\n### 在 Claude Code 中切换模型\n\n#### 官方模式（直接 `claude` 启动）\n\n```\n/model sonnet     # Claude Sonnet 4.5\n/model opus       # Claude Opus 4.5\n/model haiku      # Claude Haiku 3.5\n```\n\n#### 网关模式（`npx ... claude` 启动）\n\n使用短名称或版本别名切换模型：\n\n```bash\n# 使用短名称（向后兼容）\n/model deepseek   # 切换到 DeepSeek V4 Pro\n/model qwen       # 切换到 Qwen3.5 Plus\n/model glm        # 切换到 GLM-5.1\n/model kimi       # 切换到 Kimi K2.6\n/model minimax    # 切换到 MiniMax M2.7（国内 Token Plan）\n/model minimax-global # 切换到 MiniMax M2.7（海外）\n/model mimo       # 切换到 MiMo V2.5 Pro（Token Plan SGP）\n/model mimo-token-cn  # 切换到 MiMo V2.5 Pro（Token Plan CN）\n/model mimo-payg      # 切换到 MiMo V2.5 Pro（按量付费）\n\n# 使用版本别名（明确指定版本）\n/model deepseek-v4-pro           # DeepSeek V4 Pro\n/model deepseek-v4-flash         # DeepSeek V4 Flash\n/model glm-5.1                   # GLM-5.1\n/model minimax-m2.7              # MiniMax M2.7\n/model minimax-m2.7-highspeed    # MiniMax M2.7 Highspeed\n/model minimax-global-m2.7       # MiniMax M2.7 Global\n/model minimax-global-m2.7-highspeed # MiniMax M2.7 Highspeed Global\n/model kimi-k2.6                 # Kimi K2.6\n/model qwen3.5-plus              # Qwen3.5 Plus\n/model qwen3.5-flash             # Qwen3.5 Flash\n/model qwen3-max                 # Qwen3 Max\n/model mimo-v2.5-pro             # MiMo V2.5 Pro\n/model mimo-v2.5                 # MiMo V2.5\n/model mimo-token-ams-v2.5-pro   # MiMo V2.5 Pro Token Plan AMS\n```\n\n**重要：** 两个模式的配置完全独立，在网关模式切换模型不会影响官方模式！\n\n## API 端点\n\n| 端点 | 方法 | 说明 |\n|------|------|------|\n| `/v1/messages` | POST | Anthropic Messages API |\n| `/v1/models` | GET | 列出可用模型 |\n| `/health` | GET | 健康检查 |\n\n## 开发\n\n```bash\n# 克隆项目\ngit clone https://github.com/luwill/Claude-Code-Model-Router.git\ncd Claude-Code-Model-Router\n\n# 安装依赖\nnpm install\n\n# 开发模式\nnpm run dev\n\n# 构建\nnpm run build\n\n# 本地测试\nnpm link\nccmr start\n```\n\n## 故障排除\n\n### 端口被占用\n\n```bash\n# 使用其他端口\nnpx claude-code-model-router start --port 9000\n```\n\n### API Key 错误\n\n1. 检查 .env 文件中的 Key 是否正确\n2. 确认账户有余额\n3. 运行 `npx claude-code-model-router models` 查看状态\n\n### 网关模式提示地区不支持\n\n请确认是用 `npx claude-code-model-router claude` 或 `ccmr claude` 启动第三方模型模式，而不是直接运行 `claude`。网关模式会自动设置本地 `ANTHROPIC_BASE_URL`、`ANTHROPIC_AUTH_TOKEN` 和默认模型，避免 Claude Code 走官方 Anthropic 登录/地区检查路径。\n\n### DeepSeek 报 `Invalid user_id`\n\nDeepSeek Anthropic 兼容接口会忽略 `metadata` 字段，但某些 Claude Code 会话会携带包含特殊字符的 `metadata.user_id`，导致 DeepSeek 在请求校验阶段返回 400。路由器会在转发 DeepSeek 请求前移除该元数据，不影响上下文、工具调用或模型输出。\n\n## 更新日志\n\n### v1.3.3\n- CLI 和健康检查版本号改为从 `package.json` 读取，避免发布后显示旧版本\n\n### v1.3.1\n- MiniMax 默认端点切换为国内 Token Plan 兼容的 `https://api.minimaxi.com/anthropic`\n- 新增 MiniMax Global 入口，海外 API Key 可使用 `MINIMAX_GLOBAL_API_KEY` 和 `minimax-global-*` 模型\n- MiMo 默认切换为 Claude Code 文档推荐的 `mimo-v2.5-pro`，并区分 Token Plan 集群与 Pay-as-you-go API\n- `ccmr claude` 自动注入本地网关认证 token 和默认模型，避免误走官方 Claude Code 地区检查\n- DeepSeek 转发前移除 Claude Code 会话元数据，避免 `metadata.user_id` 格式触发上游 400 校验错误\n\n### v1.3.0\n- 新增供应商级 `providers -\u003e variants` 配置结构，并兼容旧版平铺 `models` 配置\n- 移除 KAT-Coder-Pro V2\n- DeepSeek 更新为 DeepSeek V4 Pro / V4 Flash，并更新 Anthropic API 配置\n- Kimi 更新为 Kimi K2.6\n- GLM 更新为 GLM-5.1\n- MiniMax 新增 MiniMax M2.7 Highspeed\n- Qwen 新增 Qwen3.5 Flash 和 Qwen3 Max\n- 新增 MiMo V2.5\n\n### v1.2.0\n- 更新 GLM 模型至 GLM-5 版本\n- 更新 MiniMax 模型至 M2.7 版本\n- 更新 Qwen 模型至 Qwen3.5 Plus 版本\n- 更新 Kimi 模型至 K2.5 版本\n- 更新各模型的 context window 和 max tokens 参数\n- 新增版本别名支持（如 `glm-5`、`minimax-m2.7`、`qwen3.5-plus`、`kimi-k2.5`）\n\n### v1.1.0\n- 更新 MiniMax 模型至 M2.1 版本\n- 更新 GLM 模型至 4.7 版本\n- 更新 GLM API 端点至 `https://open.bigmodel.cn/api/anthropic`\n- 新增版本别名支持（如 `glm-4.7`、`minimax-m2.1`）\n- 优化日志显示，显示具体模型版本\n- 更新各模型的 context window 和 max tokens 参数\n\n### v1.0.1\n- 添加 Claude Code 原生参数支持\n\n### v1.0.0\n- 初始版本发布\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluwill%2Fclaude-code-model-router","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluwill%2Fclaude-code-model-router","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluwill%2Fclaude-code-model-router/lists"}