{"_id":"@andyzheung/ccmr","_rev":"6-53dd6c75b4583db7441622094395f194","name":"@andyzheung/ccmr","dist-tags":{"latest":"1.2.5"},"versions":{"1.2.0":{"name":"@andyzheung/ccmr","version":"1.2.0","keywords":["claude","claude-code","ai","llm","gateway","router","deepseek","glm","glm-5","minimax","minimax-m2.5","qwen","kimi","anthropic"],"author":{"name":"andyzheung"},"license":"MIT","_id":"@andyzheung/ccmr@1.2.0","maintainers":[{"name":"andyzheung","email":"andyzheung@aliyun.com"}],"homepage":"https://github.com/andyzheung/Claude-Code-Model-Router#readme","bugs":{"url":"https://github.com/andyzheung/Claude-Code-Model-Router/issues"},"bin":{"ccmr-plus":"dist/cli.js","claude-code-model-router":"dist/cli.js"},"dist":{"shasum":"6f8d933701e290af2f454cebce0a2f29481d4eec","tarball":"https://registry.npmjs.org/@andyzheung/ccmr/-/ccmr-1.2.0.tgz","fileCount":26,"integrity":"sha512-Gtt9XAuYfjhWZMYf5UfgMGs6f+mcgwPzXMEQNkMX3i8KR/C0CFsabVoIyKFBoA0l3ynIdYD4GDdF45TmwfxtGg==","signatures":[{"sig":"MEUCIGRwjIC6d9F5jS3FmKT80Mcz5wQPAlHlweyJ+J31O1MqAiEAgL3m0+8cAh4Ui0D/M95W4HJ6bcGqTVisb6fuHgNxZ8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87215},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d9f59b6f961d3a3b35e3fd2f257ed535d4e1b91b","scripts":{"dev":"ts-node src/cli.ts start","build":"tsc","clean":"rimraf dist","start":"node dist/cli.js start","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyzheung","email":"andyzheung@aliyun.com"},"repository":{"url":"git+https://github.com/andyzheung/Claude-Code-Model-Router.git","type":"git"},"_npmVersion":"11.5.1","description":"A lightweight API gateway for routing Claude Code requests to multiple AI models (Forked with GLM-5 and MiniMax M2.5 support)","directories":{},"_nodeVersion":"24.5.0","dependencies":{"chalk":"^5.3.0","dotenv":"^16.4.5","express":"^4.21.0","js-yaml":"^4.1.0","commander":"^12.1.0","node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.7","ts-node":"^10.9.2","typescript":"^5.4.5","@types/node":"^20.14.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/ccmr_1.2.0_1771171389130_0.41582137062283886","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@andyzheung/ccmr","version":"1.2.1","keywords":["claude","claude-code","ai","llm","gateway","router","deepseek","glm","glm-5","minimax","minimax-m2.5","qwen","kimi","anthropic"],"author":{"name":"andyzheung"},"license":"MIT","_id":"@andyzheung/ccmr@1.2.1","maintainers":[{"name":"andyzheung","email":"andyzheung@aliyun.com"}],"homepage":"https://github.com/andyzheung/Claude-Code-Model-Router#readme","bugs":{"url":"https://github.com/andyzheung/Claude-Code-Model-Router/issues"},"bin":{"ccmr-plus":"dist/cli.js"},"dist":{"shasum":"cd010929cf1e7e2dc5d941a7dba45ebca6609301","tarball":"https://registry.npmjs.org/@andyzheung/ccmr/-/ccmr-1.2.1.tgz","fileCount":26,"integrity":"sha512-+/Ba10Ui8oq9DpybpH/d153hp80UmEJIGBAYmVROnsJ0yfJdUVloMcwjeDDErQiK+GIgqdJgkYMIbAx1fB+HIw==","signatures":[{"sig":"MEUCIGxJG0ISHkBGnahcHHlcajK5+VgfaRj/YUKX435DSJ8bAiEAlEBY9iTQFqZJMBiKNzBr9e6jzDfBArEbwZmTYbzDNBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87168},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"318833fe6d2acee8f0396197a60e3cdcbb131465","scripts":{"dev":"ts-node src/cli.ts start","build":"tsc","clean":"rimraf dist","start":"node dist/cli.js start","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyzheung","email":"andyzheung@aliyun.com"},"repository":{"url":"git+https://github.com/andyzheung/Claude-Code-Model-Router.git","type":"git"},"_npmVersion":"11.5.1","description":"A lightweight API gateway for routing Claude Code requests to multiple AI models (Forked with GLM-5 and MiniMax M2.5 support)","directories":{},"_nodeVersion":"24.5.0","dependencies":{"chalk":"^5.3.0","dotenv":"^16.4.5","express":"^4.21.0","js-yaml":"^4.1.0","commander":"^12.1.0","node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.7","ts-node":"^10.9.2","typescript":"^5.4.5","@types/node":"^20.14.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/ccmr_1.2.1_1771172402120_0.8455578833539659","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@andyzheung/ccmr","version":"1.2.2","keywords":["claude","claude-code","ai","llm","gateway","router","deepseek","glm","glm-5","minimax","minimax-m2.5","qwen","kimi","anthropic"],"author":{"name":"andyzheung"},"license":"MIT","_id":"@andyzheung/ccmr@1.2.2","maintainers":[{"name":"andyzheung","email":"andyzheung@aliyun.com"}],"homepage":"https://github.com/andyzheung/Claude-Code-Model-Router#readme","bugs":{"url":"https://github.com/andyzheung/Claude-Code-Model-Router/issues"},"bin":{"ccmr-plus":"dist/cli.js"},"dist":{"shasum":"01f80d5d6673c5b2ad730a26f6e2aa5c35c05e21","tarball":"https://registry.npmjs.org/@andyzheung/ccmr/-/ccmr-1.2.2.tgz","fileCount":26,"integrity":"sha512-oz9w627y7VC7gxQlFHJwqr9z9ETvf5ydgLKqoaWJeZfCfNheSJIpnZvFse+C9PYXuuL/OOsrIZdeg2AsZFjMbg==","signatures":[{"sig":"MEUCIQDorAME+VGJn7Ph/t8ofwMvTOn3ZhnPBxYakHWWQXmLIgIgMNZnrvzJQtOjLmopBR5yXIiLrADvy4T0SHGobmbmxe4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87168},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"3856a1e8a8469d4c97d7516128eb9df9a7dc35b6","scripts":{"dev":"ts-node src/cli.ts start","build":"tsc","clean":"rimraf dist","start":"node dist/cli.js start","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyzheung","email":"andyzheung@aliyun.com"},"repository":{"url":"git+https://github.com/andyzheung/Claude-Code-Model-Router.git","type":"git"},"_npmVersion":"11.5.1","description":"A lightweight API gateway for routing Claude Code requests to multiple AI models (Forked with GLM-5 and MiniMax M2.5 support)","directories":{},"_nodeVersion":"24.5.0","dependencies":{"chalk":"^5.3.0","dotenv":"^16.4.5","express":"^4.21.0","js-yaml":"^4.1.0","commander":"^12.1.0","node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.7","ts-node":"^10.9.2","typescript":"^5.4.5","@types/node":"^20.14.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/ccmr_1.2.2_1771172702654_0.07853287933212294","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@andyzheung/ccmr","version":"1.2.3","keywords":["claude","claude-code","ai","llm","gateway","router","deepseek","glm","glm-5","minimax","minimax-m2.5","qwen","kimi","anthropic"],"author":{"name":"andyzheung"},"license":"MIT","_id":"@andyzheung/ccmr@1.2.3","maintainers":[{"name":"andyzheung","email":"andyzheung@aliyun.com"}],"homepage":"https://github.com/andyzheung/Claude-Code-Model-Router#readme","bugs":{"url":"https://github.com/andyzheung/Claude-Code-Model-Router/issues"},"bin":{"ccmr-plus":"dist/cli.js"},"dist":{"shasum":"6df801dd3ad875dd92cce4f7216757caa163569a","tarball":"https://registry.npmjs.org/@andyzheung/ccmr/-/ccmr-1.2.3.tgz","fileCount":26,"integrity":"sha512-56LzWtJv1grSxvg+1/Co0NUmvkFyglLfKdW39b67HCl2fmE23oVxJHXtpUSBsvYJxhtyMvPaQzG7T9aiDiuo0w==","signatures":[{"sig":"MEUCIQDtaoE60Trj6dlhXJu5mePA3vuNAvRDMeb3QBm9xB7lwQIgdz6im7HtCh/n4Lm4hOyLhqguvywExWgx669A6WEJfsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87108},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"3856a1e8a8469d4c97d7516128eb9df9a7dc35b6","scripts":{"dev":"ts-node src/cli.ts start","build":"tsc","clean":"rimraf dist","start":"node dist/cli.js start","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyzheung","email":"andyzheung@aliyun.com"},"repository":{"url":"git+https://github.com/andyzheung/Claude-Code-Model-Router.git","type":"git"},"_npmVersion":"11.5.1","description":"A lightweight API gateway for routing Claude Code requests to multiple AI models (Forked with GLM-5 and MiniMax M2.5 support)","directories":{},"_nodeVersion":"24.5.0","dependencies":{"chalk":"^5.3.0","dotenv":"^16.4.5","express":"^4.21.0","js-yaml":"^4.1.0","commander":"^12.1.0","node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.7","ts-node":"^10.9.2","typescript":"^5.4.5","@types/node":"^20.14.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/ccmr_1.2.3_1771173473761_0.2917623946180887","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@andyzheung/ccmr","version":"1.2.4","keywords":["claude","claude-code","ai","llm","gateway","router","deepseek","glm","glm-5","glm-5.2","minimax","minimax-m2.5","qwen","kimi","anthropic"],"author":{"name":"andyzheung"},"license":"MIT","_id":"@andyzheung/ccmr@1.2.4","maintainers":[{"name":"andyzheung","email":"andyzheung@aliyun.com"}],"homepage":"https://github.com/andyzheung/Claude-Code-Model-Router#readme","bugs":{"url":"https://github.com/andyzheung/Claude-Code-Model-Router/issues"},"bin":{"ccmr-plus":"dist/cli.js"},"dist":{"shasum":"3cdd9e1c38f5db4d353244da677e516678514491","tarball":"https://registry.npmjs.org/@andyzheung/ccmr/-/ccmr-1.2.4.tgz","fileCount":26,"integrity":"sha512-cqdVqhXb4uopy0SS1pTWSeszCRvCnS6eSpjB0101LOtHQk4Jtf/Bkj948HjDrWIiVpr7S9S9g+cu/uCAcUW2Zg==","signatures":[{"sig":"MEQCIH8VqRftqtupyUXz25prCeox0vyuVRBEksvj/1UFzL6DAiB8AxotxbNMoqgOILTa4LLUPWfjymTuGnNpyupJ+7C69g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87473},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e114eed1ff2ce29ec26dfa841150190f4a385e37","scripts":{"dev":"ts-node src/cli.ts start","build":"tsc","clean":"rimraf dist","start":"node dist/cli.js start","prepublishOnly":"npm run build"},"_npmUser":{"name":"andyzheung","email":"andyzheung@aliyun.com"},"repository":{"url":"git+https://github.com/andyzheung/Claude-Code-Model-Router.git","type":"git"},"_npmVersion":"11.5.1","description":"A lightweight API gateway for routing Claude Code requests to multiple AI models (Forked with GLM-5.2 and MiniMax M2.5 support)","directories":{},"_nodeVersion":"24.5.0","dependencies":{"chalk":"^5.3.0","dotenv":"^16.4.5","express":"^4.21.0","js-yaml":"^4.1.0","commander":"^12.1.0","node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.7","ts-node":"^10.9.2","typescript":"^5.4.5","@types/node":"^20.14.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/ccmr_1.2.4_1781972554466_0.2250114951969584","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@andyzheung/ccmr","version":"1.2.5","description":"A lightweight API gateway for routing Claude Code requests to multiple AI models (Forked with GLM-5.2 and MiniMax M2.5 support)","main":"dist/index.js","types":"dist/index.d.ts","bin":{"ccmr-plus":"dist/cli.js"},"scripts":{"build":"tsc","start":"node dist/cli.js start","dev":"ts-node src/cli.ts start","clean":"rimraf dist","prepublishOnly":"npm run build"},"keywords":["claude","claude-code","ai","llm","gateway","router","deepseek","glm","glm-5","glm-5.2","minimax","minimax-m2.5","qwen","kimi","anthropic"],"author":{"name":"andyzheung"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/andyzheung/Claude-Code-Model-Router.git"},"bugs":{"url":"https://github.com/andyzheung/Claude-Code-Model-Router/issues"},"homepage":"https://github.com/andyzheung/Claude-Code-Model-Router#readme","engines":{"node":">=18.0.0"},"dependencies":{"chalk":"^5.3.0","commander":"^12.1.0","dotenv":"^16.4.5","express":"^4.21.0","js-yaml":"^4.1.0","node-fetch":"^3.3.2"},"devDependencies":{"@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@types/node":"^20.14.0","rimraf":"^5.0.7","ts-node":"^10.9.2","typescript":"^5.4.5"},"_id":"@andyzheung/ccmr@1.2.5","gitHead":"85c62ebf0a107201e483e5cd9d11025d2cb3f7db","_nodeVersion":"24.5.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-/OceCY4/9h0iszS49+flPMvan/joerKjB2KPnqxH02MuIdmS9zdE1HNXqwYF/Xf1BL77ixgMCrE5nxbxKl+ycw==","shasum":"3aa12c48cb098d9b827ca6e15437c8e3cc51462e","tarball":"https://registry.npmjs.org/@andyzheung/ccmr/-/ccmr-1.2.5.tgz","fileCount":30,"unpackedSize":89915,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC1jn+tN8kDqVgUBbBgTC8HeB70vgNNdwzmiAI8DebqbwIgcugLHtUjvNkx9kn1nnGSqWBDiqaIgsALWqLWAfPDMxE="}]},"_npmUser":{"name":"andyzheung","email":"andyzheung@aliyun.com"},"directories":{},"maintainers":[{"name":"andyzheung","email":"andyzheung@aliyun.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ccmr_1.2.5_1782005998075_0.28953387058623115"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-15T16:03:09.059Z","modified":"2026-06-21T01:39:58.330Z","1.2.0":"2026-02-15T16:03:09.267Z","1.2.1":"2026-02-15T16:20:02.285Z","1.2.2":"2026-02-15T16:25:02.808Z","1.2.3":"2026-02-15T16:37:53.901Z","1.2.4":"2026-06-20T16:22:34.591Z","1.2.5":"2026-06-21T01:39:58.221Z"},"bugs":{"url":"https://github.com/andyzheung/Claude-Code-Model-Router/issues"},"author":{"name":"andyzheung"},"license":"MIT","homepage":"https://github.com/andyzheung/Claude-Code-Model-Router#readme","keywords":["claude","claude-code","ai","llm","gateway","router","deepseek","glm","glm-5","glm-5.2","minimax","minimax-m2.5","qwen","kimi","anthropic"],"repository":{"type":"git","url":"git+https://github.com/andyzheung/Claude-Code-Model-Router.git"},"description":"A lightweight API gateway for routing Claude Code requests to multiple AI models (Forked with GLM-5.2 and MiniMax M2.5 support)","maintainers":[{"name":"andyzheung","email":"andyzheung@aliyun.com"}],"readme":"[![npm version](https://img.shields.io/npm/v/@andyzheung/ccmr.svg)](https://www.npmjs.com/package/@andyzheung/ccmr)\n[![npm downloads](https://img.shields.io/npm/dm/@andyzheung/ccmr.svg)](https://www.npmjs.com/package/@andyzheung/ccmr)\n\n\n# CCMR-Plus (Claude Code Model Router Plus)\n\n一个轻量级 API 网关，让你在使用 Claude Code 时可以切换到第三方 AI 模型。\n\n> 这是 [claude-code-model-router](https://github.com/luwill/Claude-Code-Model-Router) 的增强版本，支持最新的 GLM-5.2 和 MiniMax M2.5 模型。\n\n支持 Windows、macOS、Linux 跨平台使用。\n\n## 快速开始\n\n### 方式一：使用 npx（推荐）\n\n```bash\n# 1. 初始化配置文件\nnpx @andyzheung/ccmr init\n\n# 2. 编辑 .env 文件，填入 API Keys\n\n# 3. 启动网关\nnpx @andyzheung/ccmr start\n\n# 4. 新开终端，启动 Claude Code\n# 第三方模型（网关模式）：\nnpx @andyzheung/ccmr claude\n\n# 官方订阅（默认模式）：\nclaude\n```\n\n### 方式二：全局安装\n\n```bash\nnpm install -g @andyzheung/ccmr\n\n# 然后使用 ccmr-plus 命令\nccmr-plus init\nccmr-plus start\n\n# 启动 Claude Code\nccmr-plus claude    # 第三方模型（网关模式）\nclaude              # 官方订阅（默认模式）\n```\n\n## 命令说明\n\n```bash\n# 初始化配置文件\nnpx @andyzheung/ccmr init\n\n# 启动网关\nnpx @andyzheung/ccmr start\nnpx @andyzheung/ccmr start --port 9000  # 指定端口\n\n# 查看可用模型\nnpx @andyzheung/ccmr models\n\n# 启动 Claude Code（网关模式，使用第三方模型）\nnpx @andyzheung/ccmr claude\nnpx @andyzheung/ccmr claude --gateway-port 9000  # 自定义网关端口\n\n# 启动 Claude Code（官方订阅）\nclaude\n```\n\n### Claude Code 原生参数支持\n\n`ccmr-plus claude` 命令完整支持 Claude Code 的原生启动参数：\n\n```bash\n# YOLO 模式（跳过所有权限确认）\nccmr-plus claude --dangerously-skip-permissions\n\n# 继续上一次会话\nccmr-plus claude --continue\nccmr-plus claude -c\n\n# YOLO 模式 + 继续上一次会话\nccmr-plus claude --dangerously-skip-permissions --continue\n\n# 恢复指定会话（交互式选择）\nccmr-plus claude --resume\nccmr-plus claude -r\n\n# 恢复指定会话 ID\nccmr-plus claude --resume <session-id>\n\n# 调试模式\nccmr-plus claude --debug\nccmr-plus claude --verbose\n\n# 连接 IDE\nccmr-plus claude --ide\n\n# 指定权限模式\nccmr-plus claude --permission-mode bypassPermissions\n\n# 打印模式（非交互式）\nccmr-plus claude -p \"你的问题\"\nccmr-plus 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 <mode>` | 权限模式：acceptEdits, bypassPermissions, default, dontAsk, plan |\n| `-p, --print` | 打印模式（非交互式） |\n| `--output-format <format>` | 输出格式：text, json, stream-json |\n| `--model <model>` | 指定模型（覆盖网关路由） |\n| `--system-prompt <prompt>` | 自定义系统提示 |\n| `--add-dir <dirs...>` | 添加额外目录权限 |\n| `-d, --debug` | 调试模式 |\n| `--verbose` | 详细输出 |\n| `--ide` | 自动连接 IDE |\n| `--gateway-port <port>` | 指定网关端口（默认 8080） |\n\n> **提示：** 任何 Claude Code 原生支持的参数都可以直接传递给 `ccmr-plus claude`\n\n## 支持的模型\n\n| 短名称 | 版本别名 | 模型 | 提供商 |\n|--------|----------|------|--------|\n| `deepseek` | `deepseek-v3.2`, `ds` | DeepSeek V3.2 | DeepSeek |\n| `kimi` | `kimi-k2`, `kimi-k2-thinking` | Kimi K2 Thinking | Moonshot |\n| `minimax` | `minimax-m2.5`, `minimax-m2.1`, `mm` | MiniMax M2.5 | MiniMax |\n| `qwen` | `qwen3-max`, `qwen3` | Qwen3 Max | 阿里云 |\n| `glm` | `glm-5.2`, `glm-5`, `glm-4.7`, `zhipu` | GLM 5.2 | 智谱 AI |\n\n### 模型参数\n\n| 模型 | Context Window | Max Output Tokens |\n|------|----------------|-------------------|\n| DeepSeek V3.2 | 128K | 128K |\n| Kimi K2 Thinking | 256K | 32K |\n| MiniMax M2.5 | 200K | 128K |\n| Qwen3 Max | 256K | 32K |\n| GLM 5.2 | 1M | 64K |\n\n## 配置\n\n### 环境变量 (.env)\n\n```bash\nDEEPSEEK_API_KEY=sk-xxx    # https://platform.deepseek.com/\nKIMI_API_KEY=sk-xxx        # https://www.kimi.com/\nMINIMAX_API_KEY=xxx        # https://platform.minimax.io/\nQWEN_API_KEY=sk-xxx        # https://dashscope.console.aliyun.com/\nGLM_API_KEY=xxx            # https://open.bigmodel.cn/\n```\n\n### 配置文件 (models.yaml)\n\n可以自定义模型配置、添加别名等。运行 `ccmr-plus init` 命令会生成模板。\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 @andyzheung/ccmr claude                              │\n│  配置: ~/.ccmr-plus/settings.json                              │\n│  用途: 使用第三方 AI 模型（GLM-5.2, MiniMax M2.5 等）              │\n└─────────────────────────────────────────────────────────────────┘\n```\n\n#### 为什么配置是隔离的？\n\n- **官方模式**使用 `~/.claude/` 配置目录（Claude Code 默认）\n- **网关模式**使用 `~/.ccmr-plus/` 配置目录（独立隔离）\n- 两个配置目录完全独立，互不干扰\n- 在网关模式切换模型不会影响官方模式\n\n#### 使用步骤\n\n**第一步：启动网关**\n```bash\nnpx @andyzheung/ccmr 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 @andyzheung/ccmr claude\n```\n- 使用第三方 AI 模型（GLM-5.2, MiniMax M2.5 等）\n- 按 API 使用量付费\n- 配置存储在 `~/.ccmr-plus/`\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 V3.2\n/model qwen       # 切换到 Qwen3 Max\n/model glm        # 切换到 GLM 5.2\n/model kimi       # 切换到 Kimi K2 Thinking\n/model minimax    # 切换到 MiniMax M2.1\n\n# 使用版本别名（明确指定版本）\n/model deepseek-v3.2   # DeepSeek V3.2\n/model glm-5.2         # GLM 5.2\n/model minimax-m2.5    # MiniMax M2.5\n/model kimi-k2         # Kimi K2 Thinking\n/model qwen3-max       # Qwen3 Max\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/andyzheung/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-plus start\n```\n\n## 故障排除\n\n### 端口被占用\n\n```bash\n# 使用其他端口\nnpx @andyzheung/ccmr start --port 9000\n```\n\n### API Key 错误\n\n1. 检查 .env 文件中的 Key 是否正确\n2. 确认账户有余额\n3. 运行 `npx @andyzheung/ccmr models` 查看状态\n\n## 更新日志\n\n### v1.2.4\n- 更新 GLM 模型至 5.2 版本（model_id: glm-5.2）\n- 更新 GLM 上下文窗口至 1M（1000000）\n- 新增版本别名 `glm-5.2` 和 `glm-52`\n- 保留旧版本别名（glm-5、glm-5.0 等）向后兼容\n\n### v1.2.0\n- 更新 MiniMax 模型至 M2.5 版本\n- 更新 GLM 模型至 5.0 版本（model_id: glm-5）\n- 新增版本别名 `glm-5` 和 `minimax-m2.5`\n- 保留旧版本别名向后兼容\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","readmeFilename":"README.md"}