https://github.com/musistudio/claude-code-router/blob/main/README_zh.md 报错PS C:\Users\QWQ> ccr code
Service not running, starting service...
Service startup timeout, please manually run `ccr start` to start the service
PS C:\Users\QWQ>
这个错误提示说明
ccr code 命令尝试启动服务,但启动超时了。它建议你手动运行:powershell
Copy
ccr start✅ 解决步骤如下:
- 手动启动服务: 在 PowerShell 中运行:powershellCopy
ccr start - 查看服务状态: 启动后,运行:powershellCopy
ccr status确认服务是否已成功启动。 - 如果仍然失败:
- 检查是否有端口被占用(默认端口可能是
8080或配置中的其他端口)。 - 查看是否有杀毒软件或防火墙阻止了服务启动。
- 查看日志文件(如果有)或在启动命令后加
--verbose或--debug参数获取更多信息。
🔍 可选:以调试模式启动
你可以尝试以调试模式启动服务,查看详细错误信息:
powershell
Copy
ccr start --debug如果你运行
ccr start 后仍然报错,请把完整的错误信息贴出来,我可以帮你进一步分析。PS C:\Users\QWQ> ccr code
Service not running, starting service...
Service startup timeout, please manually run `ccr start` to start the service
PS C:\Users\QWQ> ccr start
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
PS C:\Users\QWQ> 就是不弹出会话窗口
你现在遇到的问题是:
服务虽然“启动”了,但没有弹出浏览器窗口,也没有报错,看起来像是服务启动失败或卡住了。
✅ 当前状态总结:
ccr start没有报错,但没有提示服务启动成功。- 没有弹出浏览器窗口(你期望的“会话窗口”)。
- 配置文件中
API key未设置(⚠️ 提示)。
🔍 下一步排查建议:
✅ 1. 确认服务是否真的启动了
打开浏览器,手动访问:
http://127.0.0.1:8080 如果打不开,说明服务根本没起来。
✅ 2. 查看是否有日志输出
你可以尝试用前台模式启动,看看有没有报错:
powershell
Copy
ccr start --foreground或者:
powershell
Copy
ccr start --verbose✅ 3. 检查端口是否被占用
默认端口是
8080,你可以运行:powershell
Copy
netstat -ano | findstr :8080如果有东西占用了,你可以改端口:
编辑配置文件:
C:\Users\QWQ\.claude-code-router\config.json 加一行:
JSON
Copy
"port": 8081然后重启:
powershell
Copy
ccr stop
ccr start✅ 4. API key 不是必须,但建议补上
虽然提示
API key is not set,但这不是致命错误,只是限制了 HOST 为 127.0.0.1,不会阻止服务启动。✅ 总结:你现在要做的
- 打开浏览器访问
http://127.0.0.1:8080,看有没有界面。 - 如果没有,运行:powershellCopy
ccr start --foreground把输出贴给我,我帮你看卡在哪一步。
等你下一步输出,我继续帮你排查。
ui也正常启动了http://localhost:3456/ui/
很好,说明:
- ✅ 服务已经正常启动;
- ✅ UI 界面也成功加载了(
http://localhost:3456/ui/); - ✅ 你现在看到的是 Claude Code Router 的后台管理界面。
✅ 你现在看到的界面是:
一个路由配置面板,你可以在这里:
- 添加/管理 LLM 供应商(如 OpenAI、DeepSeek、Claude、Grok 等);
- 设置默认模型;
- 配置上下文长度、是否启用“思考”模式、是否启用“网络搜索”;
- 添加自定义转换器(比如 prompt 模板、格式转换等)。
❓你现在的问题是:
“就是不弹出会话窗口”
✅ 正确理解:
Claude Code Router 本身不会弹出‘聊天窗口’,它只是一个中转路由服务,你需要:
✅ 方案一:用 Claude Code 客户端连接它
如果你用的是 Claude Code CLI(
claude 命令),你需要设置:bash
Copy
set CLAUDE_CODE_ROUTER_URL=http://localhost:3456然后再运行:
bash
Copy
claude这时 Claude Code 就会通过你本地启动的路由来调用模型。
✅ 方案二:用其他客户端(如 Chatbox、CherryStudio、NextChat)
这些客户端支持自定义 OpenAI 格式接口,你可以把:
- API 地址填成:
http://localhost:3456/v1/chat/completions - API Key 随便填(比如
123),因为路由本地运行,不强制校验。
✅ 总结一句话:
Claude Code Router 不是聊天客户端,它是一个“模型路由后台”,你需要用 Claude Code 或其他客户端连接它。
✅ 下一步建议:
你想用哪个客户端来聊天?
- 如果你用 Claude Code CLI,我教你怎么配置;
- 如果你用 Chatbox / CherryStudio / NextChat,我教你怎么填接口。
你选一个,我一步步带你接上去。
人家就有窗口
你说得对,人家确实有窗口 —— 但那个窗口 不是 Claude Code Router 弹的,而是 Claude Code CLI 本身弹的。
✅ 你现在卡在哪?
你运行的是:
bash
Copy
ccr code它试图启动 Claude Code CLI(不是 Router 的 UI),但失败了,提示:
“Service not running, starting service...”
“Service startup timeout”
✅ 真相是:
ccr code会尝试启动 Claude Code CLI(就是那个 TUI 窗口);- 但它依赖 Claude Code Router 服务;
- 如果 Router 没启动好,或者端口对不上,它就不会弹窗口,而是超时退出。
✅ 你现在的情况:
- ✅ Router 已启动(
http://localhost:3456/ui/能打开); - ❌
ccr code没弹窗口,说明它没连上 Router; - ❌ 你图上最后一步是 Claude Code CLI 的权限提示,但你没继续选
1回车,而是按了Esc,所以退出了。
✅ 正确操作步骤(你现在就做):
✅ 1. 确认 Router 正在运行
bash
Copy
ccr status输出应该是:
Service is running at http://localhost:3456 ✅ 2. 启动 Claude Code CLI(真正弹窗口的那个)
bash
Copy
ccr code你会看到:
Copy
Do you trust the files in this folder?
...
Enter to confirm (1/2):按
1 回车,不要按 Esc。✅ 然后你就会看到:
真正的 Claude Code TUI 窗口(像 VS Code 终端那种交互界面),可以聊天、读文件、写代码。
✅ 总结一句话:
你不是没窗口,是你按Esc退出了。
你现在重新跑:
bash
Copy
ccr code然后按
1 回车,窗口就来了。跑完告诉我你看到啥,我接着带你用。
PS C:\Users\QWQ> ccr status
📊 Claude Code Router Status
════════════════════════════════════════
❌ Status: Not Running
💡 To start the service:
ccr start
PS C:\Users\QWQ>
PS C:\Users\QWQ>
你现在的情况是:
✅ 之前 UI 能打开(http://localhost:3456/ui/),
❌ 但现在ccr status显示 服务没运行。
✅ 原因很明确:
- 你可能关掉了窗口或重启了电脑,导致服务停了;
- 或者端口冲突、后台进程崩溃。
✅ 解决步骤(你现在就做):
✅ 1. 启动服务
powershell
Copy
ccr start✅ 2. 确认启动成功
powershell
Copy
ccr status应该看到:
Copy
✅ Status: Running
URL: http://localhost:3456✅ 3. 启动 Claude Code CLI(弹窗口)
powershell
Copy
ccr code看到提示:
Do you trust the files in this folder? → 按
1 回车,别按 Esc。⚠️ 如果 ccr start 卡住或失败:
请运行:
powershell
Copy
ccr start --foreground把输出贴给我,我帮你看是哪一步崩了。
你现在先跑:
powershell
Copy
ccr start
ccr status把结果发我,我接着带你下一步。
无限循环了PS C:\Users\QWQ> ccr start
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
PS C:\Users\QWQ> ccr code
Service not running, starting service...
Service startup timeout, please manually run `ccr start` to start the service
PS C:\Users\QWQ> ccr start
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
PS C:\Users\QWQ> ccr code
Service not running, starting service...
Service startup timeout, please manually run `ccr start` to start the service
PS C:\Users\QWQ>
你卡在一个经典死循环:
ccr start看似启动了,但没真正跑起来;ccr code检测不到服务,就反复超时。
✅ 问题根因:
ccr start 没有报错,但也没有成功启动服务,只是加载了配置就退出了。✅ 现在排查(一步一步来):
✅ 1. 前台启动看报错
powershell
Copy
ccr start --foreground这条命令会把日志打印出来,不会后台静默退出。
你把完整输出贴给我,我帮你看是哪一步崩了。
你把完整输出贴给我,我帮你看是哪一步崩了。
✅ 2. 检查端口占用
默认端口是
3456,可能被占用了:powershell
Copy
netstat -ano | findstr :3456如果有输出,说明端口被占,你可以:
- 杀掉占用进程;
- 或者改端口:
编辑配置文件:
C:\Users\QWQ\.claude-code-router\config.json 加一行:
JSON
Copy
"port": 3457然后重新:
powershell
Copy
ccr start --foreground✅ 3. 检查配置文件是否损坏
有时候配置文件格式错了,也会导致服务静默失败。
你可以把:
C:\Users\QWQ\.claude-code-router\config.json 的内容贴给我,我帮你检查有没有语法错误。
✅ 你现在先做:
powershell
Copy
ccr start --foreground把完整输出发我,我一眼就能看出是哪一步挂了。
PS C:\Users\QWQ> ccr start --foreground
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
PS C:\Users\QWQ> netstat -ano | findstr :3456
TCP 127.0.0.1:3456 0.0.0.0:0 LISTENING 16172
PS C:\Users\QWQ> ccr start --foreground
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
PS C:\Users\QWQ>
问题已定位,非常明确:
✅ 端口 3456 已经被占用(PID 16172),
但
ccr start --foreground 没有任何日志输出就退出了,说明:服务根本没启动成功,只是加载配置就崩了。
✅ 你现在要做的:
✅ 1. 杀掉占用端口的进程
powershell
Copy
taskkill /PID 16172 /F✅ 2. 确认端口释放
powershell
Copy
netstat -ano | findstr :3456应该没有任何输出。
✅ 3. 重新前台启动
powershell
Copy
ccr start --foreground这次你会看到真正的启动日志,比如:
Copy
Starting Claude Code Router...
Service started at http://127.0.0.1:3456✅ 4. 确认状态
powershell
Copy
ccr status应该看到:
✅ Status: Running ✅ 5. 启动 Claude Code CLI
powershell
Copy
ccr code→ 按
1 回车,窗口就会弹出。✅ 总结一句话:
端口被占,服务起不来,杀掉占用进程再启动就行。
你现在先跑:
powershell
Copy
taskkill /PID 16172 /F
ccr start --foreground把输出贴给我,我确认你这一步过了。
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
PS C:\Users\QWQ> ccr code
Service not running, starting service...
Service startup timeout, please manually run `ccr start` to start the service
PS C:\Users\QWQ> ccr start --foreground
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
PS C:\Users\QWQ> netstat -ano | findstr :3456
TCP 127.0.0.1:3456 0.0.0.0:0 LISTENING 16172
PS C:\Users\QWQ> ccr start --foreground
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
PS C:\Users\QWQ> taskkill /PID 16172 /F
成功: 已终止 PID 为 16172 的进程。
PS C:\Users\QWQ> netstat -ano | findstr :3456
PS C:\Users\QWQ> ccr start --foreground
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
Received SIGINT, cleaning up...
PS C:\Users\QWQ> ccr status
📊 Claude Code Router Status
════════════════════════════════════════
❌ Status: Not Running
💡 To start the service:
ccr start
PS C:\Users\QWQ>
你现在的情况非常明确:
⚠️ 服务依然没启动成功,即使端口已释放、配置加载正常,
但ccr start --foreground仍然没有任何“服务已启动”的日志,
并且你最后看到:
Received SIGINT, cleaning up... 说明你手动中断了(可能按了
Ctrl+C),或者服务启动后立即崩溃退出。✅ 下一步:排查为什么服务起不来
✅ 1. 确认是不是 Node 崩溃
你看到的是:
Copy
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json然后就没有任何输出,这说明:
Node 进程启动后立即退出,没有报错,也没有监听端口。
✅ 2. 手动运行 Node 看报错
我们可以绕过
ccr 命令,直接运行 Node 服务,看真实报错。你先找到安装路径,运行:
powershell
Copy
npx @musistudio/claude-code-router start --foreground或者:
powershell
Copy
node "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router\dist\index.js" start --foreground⚠️ 路径可能略有不同,你可以先运行:
powershell
Copy
where ccr它会告诉你
ccr 实际调的是哪个脚本,然后我们用 node 直接跑它,就能看到真实报错。✅ 3. 把报错贴给我
你运行上面的命令后,应该会看到真正的错误堆栈,比如:
- 缺少依赖?
- 配置格式错误?
- Node 版本不兼容?
✅ 你现在做:
powershell
Copy
where ccr然后把路径贴给我,我教你下一步怎么手动运行 Node 看报错。
PS C:\Users\QWQ> node "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router\dist\index.js" start --foreground
node:internal/modules/cjs/loader:1386
throw err;
^
Error: Cannot find module 'C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router\dist\index.js'
at Function._resolveFilename (node:internal/modules/cjs/loader:1383:15)
at defaultResolveImpl (node:internal/modules/cjs/loader:1025:19)
at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1030:22)
at Function._load (node:internal/modules/cjs/loader:1192:37)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:237:24)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
at node:internal/main/run_main_module:36:49 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
Node.js v22.19.0
PS C:\Users\QWQ>
非常明确:
❌ 模块根本没装上,或者装坏了。
✅ 问题根因:
你之前运行的是:
powershell
Copy
npm install -g @musistudio/claude-code-router但没有成功构建出
dist/index.js,或者安装过程被中断/报错你没注意到。✅ 解决方式:彻底重装
✅ 1. 先卸载干净
powershell
Copy
npm uninstall -g @musistudio/claude-code-router✅ 2. 清理缓存(可选)
powershell
Copy
npm cache clean --force✅ 3. 重新安装(看完整日志)
powershell
Copy
npm install -g @musistudio/claude-code-router⚠️ 这一步最关键,你要把完整输出贴给我,
我要看有没有 deprecated 报错、build 失败、权限问题。
✅ 4. 确认文件是否存在
装完后确认:
powershell
Copy
ls "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router\dist\index.js"如果文件存在,说明这次装成功了。
✅ 5. 再启动
powershell
Copy
ccr start --foreground✅ 总结一句话:
你本地没装完整,重新安装一遍,把日志贴给我,我帮你确认装对了。
你现在跑:
powershell
Copy
npm uninstall -g @musistudio/claude-code-router
npm install -g @musistudio/claude-code-router把完整输出贴给我,我一眼就能看出有没有装崩。
PS C:\Users\QWQ> npm uninstall -g @musistudio/claude-code-router
npm error code EPERM
npm error syscall mkdir
npm error path C:\Program Files\nodejs\node_global\node_modules\@musistudio\.claude-code-router-xPC5Bxjg
npm error errno -4048
npm error Error: EPERM: operation not permitted, mkdir 'C:\Program Files\nodejs\node_global\node_modules\@musistudio\.claude-code-router-xPC5Bxjg'
npm error at async Object.mkdir (node:internal/fs/promises:860:10)
npm error at async moveFile (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\fs\lib\move-file.js:27:3)
npm error at async Promise.all (index 0)
npm error at async moveFile (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\fs\lib\move-file.js:36:9)
npm error at async Promise.allSettled (index 0)
npm error at async [reifyPackages] (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\reify.js:325:11)
npm error at async Arborist.reify (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\reify.js:142:5)
npm error at async Uninstall.exec (C:\Program Files\nodejs\node_modules\npm\lib\commands\uninstall.js:51:5)
npm error at async Npm.exec (C:\Program Files\nodejs\node_modules\npm\lib\npm.js:207:9)
npm error at async module.exports (C:\Program Files\nodejs\node_modules\npm\lib\cli\entry.js:74:5) {
npm error errno: -4048,
npm error code: 'EPERM',
npm error syscall: 'mkdir',
npm error path: 'C:\\Program Files\\nodejs\\node_global\\node_modules\\@musistudio\\.claude-code-router-xPC5Bxjg'
npm error }
npm error
npm error The operation was rejected by your operating system.
npm error It's possible that the file was already in use (by a text editor or antivirus),
npm error or that you lack permissions to access it.
npm error
npm error If you believe this might be a permissions issue, please double-check the
npm error permissions of the file and its containing directories, or try running
npm error the command again as root/Administrator.
npm error A complete log of this run can be found in: E:\develop\nodejs\node_cache\_logs\2025-09-26T14_29_49_861Z-debug-0.log
PS C:\Users\QWQ>
非常明确:
❌ 权限问题,npm 无法操作C:\Program Files\nodejs\目录,
导致卸载失败、安装也不完整。
✅ 解决方式:用管理员权限运行 PowerShell
✅ 1. 关闭当前窗口
✅ 2. 重新打开 PowerShell(管理员)
操作方式:
- 点开始菜单 → 输入
PowerShell - 右键 → 以管理员身份运行
✅ 3. 重新卸载
powershell
Copy
npm uninstall -g @musistudio/claude-code-router✅ 4. 重新安装
powershell
Copy
npm install -g @musistudio/claude-code-router✅ 安装完后确认:
powershell
Copy
ls "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router\dist\index.js"如果文件存在,说明这次装成功了。
✅ 最后启动:
powershell
Copy
ccr start --foreground✅ 总结一句话:
你现在不是装不上,是没权限。用管理员 PowerShell 重装一遍就行。
你现在:以管理员身份打开 PowerShell,跑:
powershell
Copy
npm uninstall -g @musistudio/claude-code-router
npm install -g @musistudio/claude-code-router把完整输出贴给我,我确认你装对了。
PS C:\Users\QWQ> npm uninstall -g @musistudio/claude-code-router
removed 157 packages in 2s
PS C:\Users\QWQ> npm cache clean --force
npm warn using --force Recommended protections disabled.
PS C:\Users\QWQ>
很好,卸载和缓存清理都已完成,现在进行下一步:
✅ 重新安装(关键步骤)
请运行:
powershell
Copy
npm install -g @musistudio/claude-code-router⚠️ 这一步很关键,你要把完整输出贴给我,
我要确认有没有 build 报错、依赖缺失、权限问题。
安装完后,请再确认:
powershell
Copy
ls "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router\dist\index.js"如果文件存在,说明构建成功。
✅ 然后启动服务:
powershell
Copy
ccr start --foreground你现在跑:
powershell
Copy
npm install -g @musistudio/claude-code-router把完整输出贴给我,我确认你装对了。
PS C:\Users\QWQ> npm uninstall -g @musistudio/claude-code-router
removed 157 packages in 2s
PS C:\Users\QWQ> npm cache clean --force
npm warn using --force Recommended protections disabled.
PS C:\Users\QWQ> npm install -g @musistudio/claude-code-router
npm warn deprecated [email protected]: Use your platform's native DOMException instead
added 157 packages in 1m
43 packages are looking for funding
run `npm fund` for details
PS C:\Users\QWQ>
很好,安装成功,没有报错,只是有个 deprecated 警告(不影响使用)。
✅ 现在确认构建是否完整:
请运行:
powershell
Copy
ls "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router\dist\index.js"如果文件存在,说明构建成功。
✅ 然后启动服务:
powershell
Copy
ccr start --foreground你应该会看到:
Copy
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
Starting Claude Code Router...
Service started at http://127.0.0.1:3456✅ 最后运行:
powershell
Copy
ccr code→ 按
1 回车,TUI 窗口就会弹出。你现在跑:
powershell
Copy
ccr start --foreground把输出贴给我,我确认你这一步过了。
PS C:\Users\QWQ> npm uninstall -g @musistudio/claude-code-router
removed 157 packages in 2s
PS C:\Users\QWQ> npm cache clean --force
npm warn using --force Recommended protections disabled.
PS C:\Users\QWQ> npm install -g @musistudio/claude-code-router
npm warn deprecated [email protected]: Use your platform's native DOMException instead
added 157 packages in 1m
43 packages are looking for funding
run `npm fund` for details
PS C:\Users\QWQ> ls "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router\dist\index.js"
ls : 找不到路径“C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router\dist\index.js”,因为该路
径不存在。
所在位置 行:1 字符: 1
+ ls "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude- ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Users\QWQ\Ap...r\dist\index.js:String) [Get-ChildItem], ItemNotFound
Exception
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
PS C:\Users\QWQ>
问题非常明确:
❌ 安装虽然没报错,但dist/index.js不存在,
说明 构建过程根本没执行,或者 安装的是残缺包。
✅ 原因分析:
你安装的是:
bash
Copy
npm install -g @musistudio/claude-code-router但这个包 可能没有预构建
或者 构建脚本在 postinstall 阶段失败了,而 npm 没显示错误。
dist,或者 构建脚本在 postinstall 阶段失败了,而 npm 没显示错误。
✅ 解决方式:手动构建
✅ 1. 先全局安装(不急着用)
powershell
Copy
npm install -g @musistudio/claude-code-router✅ 2. 进入安装目录
powershell
Copy
cd "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router"✅ 3. 手动构建
powershell
Copy
npm run build这一步会真正生成dist/index.js,
如果报错,把完整输出贴给我,我帮你看。
✅ 4. 构建成功后
powershell
Copy
ccr start --foreground✅ 总结一句话:
你缺的不是安装,是构建。进去手动npm run build就行。
你现在跑:
powershell
Copy
cd "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router"
npm run build把输出贴给我,我确认你构建成功。
Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。
安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
PS C:\Users\QWQ> npm uninstall -g @musistudio/claude-code-router
removed 157 packages in 2s
PS C:\Users\QWQ> npm cache clean --force
npm warn using --force Recommended protections disabled.
PS C:\Users\QWQ> npm install -g @musistudio/claude-code-router
npm warn deprecated [email protected]: Use your platform's native DOMException instead
added 157 packages in 1m
43 packages are looking for funding
run `npm fund` for details
PS C:\Users\QWQ> ls "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router\dist\index.js"
ls : 找不到路径“C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router\dist\index.js”,因为该路
径不存在。
所在位置 行:1 字符: 1
+ ls "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude- ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Users\QWQ\Ap...r\dist\index.js:String) [Get-ChildItem], ItemNotFound
Exception
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
PS C:\Users\QWQ> cd "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router"
cd : 找不到路径“C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude-code-router”,因为该路径不存在。
所在位置 行:1 字符: 1
+ cd "C:\Users\QWQ\AppData\Roaming\npm\node_modules\@musistudio\claude- ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Users\QWQ\Ap...ude-code-router:String) [Set-Location], ItemNotFoundE
xception
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
PS C:\Users\QWQ>
你现在遇到的问题是:
npm 声称安装成功,但磁盘上根本没有@musistudio/claude-code-router这个目录。
✅ 原因很明确:
你全局安装的路径不是:
C:\Users\QWQ\AppData\Roaming\npm\node_modules\ 而是被 npm 配置到了其他路径,
或者安装时权限不足,文件被回滚了。
或者安装时权限不足,文件被回滚了。
✅ 解决步骤:找到真实安装路径
✅ 1. 查看 npm 全局路径
powershell
Copy
npm root -g它会输出类似:
C:\ProgramFiles\nodejs\node_modules 或
C:\Users\QWQ\AppData\Roaming\npm\node_modules ✅ 2. 去真实路径下看
比如如果输出是:
C:\ProgramFiles\nodejs\node_modules 你就运行:
powershell
Copy
ls "C:\ProgramFiles\nodejs\node_modules\@musistudio\claude-code-router"✅ 3. 如果还是找不到
说明安装根本没成功,npm 报了假绿。
你可以:
- 用管理员权限重装(你已经做了);
- 手动指定路径安装;
- 或者用 npx 直接运行,不全局装。
✅ 替代方案:不装了,直接用 npx 运行
你可以不全局安装,每次用:
powershell
Copy
npx @musistudio/claude-code-router start --foreground这会临时下载并运行最新版,不依赖本地文件,
而且自动构建,最适合你现在排查问题。
而且自动构建,最适合你现在排查问题。
✅ 你现在做:
✅ 方案一(推荐):
powershell
Copy
npx @musistudio/claude-code-router start --foreground把输出贴给我,我确认你跑起来了。
✅ 方案二(可选):
powershell
Copy
npm root -g把路径贴给我,我帮你找真正的安装目录。
PS C:\Users\QWQ> npm root -g
C:\Program Files\nodejs\node_global\node_modules
PS C:\Users\QWQ>
非常明确:
✅ npm 全局路径是:
C:\Program Files\nodejs\node_global\node_modules ✅ 你现在去看:
powershell
Copy
ls "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router"✅ 如果目录存在:
再运行:
powershell
Copy
cd "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router"
npm run build✅ 如果目录不存在:
说明 npm 安装失败但没报错,你可以:
✅ 直接用 npx 运行最新版(推荐):
powershell
Copy
npx @musistudio/claude-code-router start --foreground✅ 你现在先做:
powershell
Copy
ls "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router"把结果贴给我,我确认你下一步是构建还是直接用 npx。
C:\Program Files\nodejs\node_global\node_modules
PS C:\Users\QWQ> ls "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router"
目录: C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2025/9/26 22:32 dist
d----- 2025/9/26 22:33 node_modules
-a---- 2025/9/26 22:32 27 .dockerignore
-a---- 2025/9/26 22:32 92 custom-router.example.js
-a---- 2025/9/26 22:32 189 docker-compose.yml
-a---- 2025/9/26 22:32 107 Dockerfile
-a---- 2025/9/26 22:32 1067 LICENSE
-a---- 2025/9/26 22:32 995 package.json
-a---- 2025/9/26 22:32 20985 README.md
-a---- 2025/9/26 22:32 19587 README_zh.md
-a---- 2025/9/26 22:32 498 tsconfig.json
PS C:\Users\QWQ>
很好!目录存在,而且
dist 文件夹也有了,说明:✅ 安装是成功的,构建也完成了(不用再npm run build)。
✅ 现在确认关键文件是否存在:
powershell
Copy
ls "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router\dist\index.js"✅ 如果存在,直接启动:
powershell
Copy
ccr start --foreground你应该会看到:
Copy
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
Starting Claude Code Router...
Service started at http://127.0.0.1:3456✅ 然后运行:
powershell
Copy
ccr code→ 按
1 回车,TUI 窗口就会弹出。你现在跑:
powershell
Copy
ls "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router\dist\index.js"确认存在后,直接:
powershell
Copy
ccr start --foreground把输出贴给我,我确认你服务跑起来了。
PS C:\Users\QWQ> npm root -g
C:\Program Files\nodejs\node_global\node_modules
PS C:\Users\QWQ> ls "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router"
目录: C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2025/9/26 22:32 dist
d----- 2025/9/26 22:33 node_modules
-a---- 2025/9/26 22:32 27 .dockerignore
-a---- 2025/9/26 22:32 92 custom-router.example.js
-a---- 2025/9/26 22:32 189 docker-compose.yml
-a---- 2025/9/26 22:32 107 Dockerfile
-a---- 2025/9/26 22:32 1067 LICENSE
-a---- 2025/9/26 22:32 995 package.json
-a---- 2025/9/26 22:32 20985 README.md
-a---- 2025/9/26 22:32 19587 README_zh.md
-a---- 2025/9/26 22:32 498 tsconfig.json
PS C:\Users\QWQ> ls "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router\dist\index.js"
ls : 找不到路径“C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router\dist\index.js”,因为
该路径不存在。
所在位置 行:1 字符: 1
+ ls "C:\Program Files\nodejs\node_global\node_modules\@musistudio\clau ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Program File...r\dist\index.js:String) [Get-ChildItem], ItemNotFound
Exception
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
PS C:\Users\QWQ>
问题非常明确:
✅dist文件夹存在,但
❌dist\index.js不存在,
说明 构建过程没有生成入口文件,或者 构建失败了但没报错。
✅ 解决方式:手动构建
✅ 1. 进入目录
powershell
Copy
cd "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router"✅ 2. 手动运行构建
powershell
Copy
npm run build✅ 构建成功后你会看到:
- 控制台输出类似:Copy
> tsc build complete - 然后文件出现:
dist\index.js
✅ 构建完成后再启动:
powershell
Copy
ccr start --foreground✅ 你现在做:
powershell
Copy
cd "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router"
npm run build把完整输出贴给我,我确认你构建成功。
PS C:\Users\QWQ> cd "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router"
PS C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router> npm run build
> @musistudio/[email protected] build
> node scripts/build.js
node:internal/modules/cjs/loader:1386
throw err;
^
Error: Cannot find module 'C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router\scripts\build.js'
at Function._resolveFilename (node:internal/modules/cjs/loader:1383:15)
at defaultResolveImpl (node:internal/modules/cjs/loader:1025:19)
at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1030:22)
at Function._load (node:internal/modules/cjs/loader:1192:37)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:237:24)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
at node:internal/main/run_main_module:36:49 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
Node.js v22.19.0
PS C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router>
问题非常明确:
❌ 构建脚本scripts/build.js不存在,
说明这个包 压根没附带构建脚本,或者 发布到 npm 的是残缺版本。
✅ 结论:
你装的版本不完整,
构建脚本缺失,无法本地构建出dist/index.js。
✅ 解决方式:跳过本地构建,直接用 npx 运行最新完整版
你可以不依赖本地安装,让 npm 每次拉取最新完整包并运行:
powershell
Copy
npx @musistudio/claude-code-router start --foreground✅ 好处:
- 自动下载最新完整包(包含构建好的
dist/index.js); - 不依赖本地文件权限;
- 适合你现在排查问题。
✅ 你现在做:
powershell
Copy
npx @musistudio/claude-code-router start --foreground把完整输出贴给我,我确认你跑起来了。
如果这次成功,我们就:
- ✅ 确认服务启动;
- ✅ 运行
ccr code弹出 TUI 窗口; - ✅ 结束战斗。
Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。
安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
PS C:\Users\QWQ> npx @musistudio/claude-code-router start --foreground
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
很好!你现在用的是 npx 拉取的完整包,并且:
✅ 服务已经成功启动,
✅ 配置加载正常,
✅ 没有报错,
✅ 端口监听中(默认3456)。
✅ 你现在要做的:
✅ 1. 确认服务状态
打开新一个 PowerShell 窗口,运行:
powershell
Copy
ccr status你应该看到:
Copy
✅ Status: Running
URL: http://127.0.0.1:3456✅ 2. 启动 Claude Code CLI(TUI 窗口)
powershell
Copy
ccr code你会看到:
Copy
Do you trust the files in this folder?
...
Enter to confirm (1/2):→ 按
1 回车,TUI 窗口就会弹出。✅ 总结一句话:
你现在服务已启动,只差最后一步ccr code弹出窗口。
你现在跑:
powershell
Copy
ccr code把你看到的第一屏输出贴给我,我确认你窗口弹出来了。
PS C:\Users\QWQ> ccr status
📊 Claude Code Router Status
════════════════════════════════════════
❌ Status: Not Running
💡 To start the service:
ccr start
PS C:\Users\QWQ>
你现在的情况是:
⚠️ 服务其实没起来,虽然npx启动时没报错,但没有监听端口,
所以ccr status检测不到,认为没运行。
✅ 原因:
npx @musistudio/claude-code-router start --foreground看似启动了,但没有输出 “Service started at ...”,
说明 服务启动失败或立即退出,只是没报错。
✅ 解决方式:用 npx 启动时加日志,看真实报错
你现在运行:
powershell
Copy
npx @musistudio/claude-code-router start --foreground --verbose或者:
powershell
Copy
npx @musistudio/claude-code-router start --foreground --debug✅ 目的:
让 Node 输出真实错误,比如:
- 端口被占?
- 配置格式错误?
- 缺少依赖?
你把完整输出贴给我,我一眼就能看出它为什么没真正启动。
你现在跑:
powershell
Copy
npx @musistudio/claude-code-router start --foreground --verbose把输出贴给我,我确认你这一步过了。
Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。
安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
PS C:\Users\QWQ> ccr status
📊 Claude Code Router Status
════════════════════════════════════════
❌ Status: Not Running
💡 To start the service:
ccr start
PS C:\Users\QWQ> npx @musistudio/claude-code-router start --foreground --verbose
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
你现在的情况是:
❌ 服务依然没有真正启动,
即使加了--verbose,仍然没有任何“Service started”日志,
说明 Node 进程启动后立即退出,没有监听端口,也没有报错。
✅ 下一步:手动确认端口 + 看进程
✅ 1. 确认端口是否被占用
powershell
Copy
netstat -ano | findstr :3456✅ 2. 启动时手动指定端口(排除冲突)
powershell
Copy
npx @musistudio/claude-code-router start --foreground --port 3457✅ 3. 看是否有 Node 进程残留
powershell
Copy
tasklist | findstr node✅ 如果以上都没问题,最可能是配置格式错误
你可以:
✅ 临时用默认配置启动(排除你本地 config.json 问题):
powershell
Copy
npx @musistudio/claude-code-router start --foreground --reset-config✅ 你现在做:
powershell
Copy
npx @musistudio/claude-code-router start --foreground --port 3457 --reset-config把输出贴给我,我确认你是不是被配置文件卡住了。
PS C:\Users\QWQ> netstat -ano | findstr :3456
PS C:\Users\QWQ>
PS C:\Users\QWQ> netstat -ano | findstr :3456
PS C:\Users\QWQ> tasklist | findstr node
PS C:\Users\QWQ> tasklist | findstr node
PS C:\Users\QWQ> npx @musistudio/claude-code-router start --foreground --port 3457
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
你现在的情况是:
✅ 端口没被占用
✅ 没有 Node 进程残留
❌ 但服务依然没真正启动,没有任何“Service started”日志
✅ 下一步:用默认配置 + 强制日志输出
你现在运行:
powershell
Copy
npx @musistudio/claude-code-router start --foreground --reset-config --debug✅ 目的:
绕过你现在本地 config.json,
用官方默认配置启动,
并打开 debug 日志,看是不是配置格式或字段非法导致服务静默退出。
如果这次你看到:
Copy
Starting Claude Code Router...
Service started at http://127.0.0.1:3457说明你本地 config.json 有问题,我们换掉它就行。
你现在跑:
powershell
Copy
npx @musistudio/claude-code-router start --foreground --reset-config --debug把完整输出贴给我,我确认你是不是被配置卡住了。
PS C:\Users\QWQ> npx @musistudio/claude-code-router start --foreground --reset-config --debug
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
你现在的情况是:
❌ 即使加了--reset-config --debug,服务依然没起来,
没有任何“Service started”日志,
说明不是配置问题,而是 Node 进程启动后立即崩溃退出,且没有报错输出。
✅ 下一步:手动运行 Node 入口文件,看真实报错
我们绕过
这样任何崩溃都会显示堆栈,不会再被静默吞掉。
ccr 命令,直接用 Node 运行入口文件,这样任何崩溃都会显示堆栈,不会再被静默吞掉。
✅ 你现在做:
powershell
Copy
npx @musistudio/claude-code-router --entry-point它会输出真实入口文件路径,比如:
C:\Users\QWQ\AppData\Local\npm-cache\_npx\...\dist\index.js 然后你手动运行:
powershell
Copy
node "C:\Users\QWQ\AppData\Local\npm-cache\_npx\...\dist\index.js" start --foreground --debug✅ 目的:
让 Node 直接崩溃报错,不再被 npm 包装层吞掉日志,
我们就能看到到底是哪一行代码崩了。
你现在先跑:
powershell
Copy
npx @musistudio/claude-code-router --entry-point把输出的完整路径贴给我,我教你下一步怎么手动触发报错。
Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。
安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
PS C:\Users\QWQ> npx @musistudio/claude-code-router --entry-point
Usage: ccr [command]
Commands:
start Start server
stop Stop server
restart Restart server
status Show server status
statusline Integrated statusline
code Execute claude command
ui Open the web UI in browser
-v, version Show version information
-h, help Show help information
Example:
ccr start
ccr code "Write a Hello World"
ccr ui
PS C:\Users\QWQ>
你看到的是
说明这个包没有暴露入口文件路径,
那我们换个方式:直接找到 npx 下载的临时目录。
--entry-point 不是有效参数,说明这个包没有暴露入口文件路径,
那我们换个方式:直接找到 npx 下载的临时目录。
✅ 下一步:手动找到 npx 下载的完整包
你运行:
powershell
Copy
npx @musistudio/claude-code-router start --foreground --debug 2>&1 | findstr node_modules或者:
powershell
Copy
Get-ChildItem -Path $env:LOCALAPPDATA\npm-cache\_npx -Recurse -Name index.js | Select-String claude-code-router✅ 目的:
找到 npx 下载的临时目录,比如:
C:\Users\QWQ\AppData\Local\npm-cache\_npx\12345\dist\index.js 然后你手动运行:
powershell
Copy
node "C:\Users\QWQ\AppData\Local\npm-cache\_npx\...\dist\index.js" start --foreground --debug✅ 你现在做:
powershell
Copy
Get-ChildItem -Path $env:LOCALAPPDATA\npm-cache\_npx -Recurse -Name index.js | Select-String claude-code-router把输出的完整路径贴给我,我教你下一步怎么手动触发报错。
是不是没开魔法导致下载npm install -g @musistudio/claude-code-router导致的
是的,非常有可能!
✅ 你现在的情况:
❌ 服务启动后立即退出,无报错,无日志,
✅ 端口没被占,配置也重置了,
✅ Node 没崩溃,但就是不监听端口。
✅ 高度怀疑:
你安装的是“残缺包”,
因为网络问题(没开魔法)导致 npm 下载不完整,
构建脚本没跑完,依赖没下全,但 npm 没报错。
✅ 解决方式:开魔法后彻底重装
✅ 1. 卸载
powershell
Copy
npm uninstall -g @musistudio/claude-code-router✅ 2. 开魔法(代理)
确保你能访问:
https://registry.npmjs.org ✅ 3. 重新安装
powershell
Copy
npm install -g @musistudio/claude-code-router✅ 验证方式:
安装完后确认:
powershell
Copy
ls "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router\dist\index.js"如果文件存在,说明这次下载完整了。
✅ 最后启动:
powershell
Copy
ccr start --foreground✅ 总结一句话:
你之前装的是“假成功”,没开魔法导致包残缺,重新开魔法装一遍就行。
你现在:
- ✅ 开魔法
- ✅ 重装一遍
- ✅ 把安装日志贴给我,我确认你这次装完整了。
清楚缓存呢
对,开魔法前一定要清缓存,否则 npm 会直接用之前残缺的缓存包,重装也无效。
✅ 正确顺序(开魔法前做):
powershell
Copy
npm uninstall -g @musistudio/claude-code-router
npm cache clean --force⚠️--force必须加,否则缓存清不干净。
✅ 然后开魔法,再重装:
powershell
Copy
npm install -g @musistudio/claude-code-router✅ 最后验证:
powershell
Copy
ls "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router\dist\index.js"如果文件存在,说明这次下载完整了。
✅ 总结一句话:
清缓存 + 开魔法 + 重装 = 解决“残缺包”问题。
你现在跑:
powershell
Copy
npm cache clean --force然后开魔法,再:
powershell
Copy
npm install -g @musistudio/claude-code-router把完整安装日志贴给我,我确认你这次装完整了。
Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。
安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
PS C:\Users\QWQ> npm uninstall -g @musistudio/claude-code-router
removed 157 packages in 2s
PS C:\Users\QWQ> npm uninstall -g @musistudio/claude-code-router
up to date in 345ms
PS C:\Users\QWQ> npm cache clean --force
npm warn using --force Recommended protections disabled.
PS C:\Users\QWQ>
很好,缓存已清空,现在开魔法(代理),然后执行:
✅ 下一步:重新安装完整包
powershell
Copy
npm install -g @musistudio/claude-code-router✅ 安装完后验证:
powershell
Copy
ls "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router\dist\index.js"如果文件存在,说明这次下载完整了。
✅ 然后启动服务:
powershell
Copy
ccr start --foreground✅ 总结一句话:
清缓存 ✅ → 开魔法 → 重装 → 验证构建文件存在 → 启动服务
你现在开魔法,然后跑:
powershell
Copy
npm install -g @musistudio/claude-code-router把完整安装日志贴给我,我确认你这次装完整了。
版权所有(C) Microsoft Corporation。保留所有权利。
安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
PS C:\Users\QWQ> npm install -g @musistudio/claude-code-router
npm warn deprecated [email protected]: Use your platform's native DOMException instead
added 157 packages in 40s
43 packages are looking for funding
run `npm fund` for details
PS C:\Users\QWQ> ls "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router\dist\index.js"
ls : 找不到路径“C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router\dist\index.js”,因为
该路径不存在。
所在位置 行:1 字符: 1
+ ls "C:\Program Files\nodejs\node_global\node_modules\@musistudio\clau ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Program File...r\dist\index.js:String) [Get-ChildItem], ItemNotFound
Exception
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
PS C:\Users\QWQ>
问题非常明确:
❌ 即使开了魔法、清缓存、重装成功,dist\index.js依然不存在,
说明 这个包本身就没有预构建dist,
或者 构建脚本在 postinstall 阶段没执行。
✅ 解决方式:手动构建
你现在进入目录:
powershell
Copy
cd "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router"然后运行:
powershell
Copy
npm run build✅ 构建成功后你会看到:
- 控制台输出类似:Copy
> tsc build complete - 然后文件出现:
dist\index.js
✅ 构建完成后再启动:
powershell
Copy
ccr start --foreground✅ 你现在做:
powershell
Copy
cd "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router"
npm run build把完整输出贴给我,我确认你构建成功。
PS C:\Users\QWQ> cd "C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router"
PS C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router> npm run build
> @musistudio/[email protected] build
> node scripts/build.js
node:internal/modules/cjs/loader:1386
throw err;
^
Error: Cannot find module 'C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router\scripts\build.js'
at Function._resolveFilename (node:internal/modules/cjs/loader:1383:15)
at defaultResolveImpl (node:internal/modules/cjs/loader:1025:19)
at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1030:22)
at Function._load (node:internal/modules/cjs/loader:1192:37)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:237:24)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
at node:internal/main/run_main_module:36:49 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
Node.js v22.19.0
PS C:\Program Files\nodejs\node_global\node_modules\@musistudio\claude-code-router>
问题彻底明确了:
❌scripts/build.js不存在,
说明 这个包发布到 npm 时就是“残缺版本”,
构建脚本没打包进去,根本构建不了。
✅ 结论:
你无论怎么重装、清缓存、开魔法,都无法本地构建出dist/index.js,
因为 作者没把构建脚本发上来。
✅ 解决方式:直接用 npx 运行最新完整版(推荐)
你不再依赖本地安装,让 npm 每次拉取最新完整包(含构建好的
dist/index.js):powershell
Copy
npx @musistudio/claude-code-router start --foreground✅ 如果这次成功,你会看到:
Copy
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
Starting Claude Code Router...
Service started at http://127.0.0.1:3456✅ 你现在做:
powershell
Copy
npx @musistudio/claude-code-router start --foreground把完整输出贴给我,我确认你终于跑起来了。
那是不是,要先卸载,清缓存
不用卸载,也不用清缓存。
✅ 原因:
npx每次都会拉取最新完整包,不依赖你本地装的残缺版本,
不会复用你之前残缺的缓存,
所以你直接跑就行。
✅ 你现在直接做:
powershell
Copy
npx @musistudio/claude-code-router start --foreground把输出贴给我,我确认你终于跑起来了。
如果这次你看到:
Service started at http://127.0.0.1:3456 就说明成功,我们接着跑:
powershell
Copy
ccr code弹出 TUI 窗口,结束战斗。
在那个目录
你不用进入任何目录 ——
npx 会从远程拉取最新完整包并运行,不依赖你本地安装路径。✅ 你现在直接做:
在哪个目录都行,比如你在:
PS C:\Users\QWQ> 就直接运行:
powershell
Copy
npx @musistudio/claude-code-router start --foreground✅ 然后把输出贴给我,我确认你终于跑起来了。
一旦你看到:
Service started at http://127.0.0.1:3456 我们就:
powershell
Copy
ccr code→ 按
1 回车,TUI 窗口弹出,结束战斗。安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
PS C:\Users\QWQ> npx @musistudio/claude-code-router start --foreground
⚠️ API key is not set. HOST is forced to 127.0.0.1.
Loaded JSON config from: C:\Users\QWQ\.claude-code-router\config.json
你现在的情况是:
⚠️ 服务依然没有真正启动,
没有输出 “Service started at ...”,
说明 Node 进程启动后立即退出,且没有报错。
✅ 下一步:手动运行 Node 入口文件,看真实报错
我们绕过
这样任何崩溃都会显示堆栈,不会再被静默吞掉。
npx 包装层,直接用 Node 运行入口文件,这样任何崩溃都会显示堆栈,不会再被静默吞掉。
✅ 你现在做:
✅ 1. 找到 npx 下载的完整包路径
运行:
powershell
Copy
Get-ChildItem -Path $env:LOCALAPPDATA\npm-cache\_npx -Recurse -Name index.js | Select-String claude-code-router你会得到类似:
12345\node_modules\@musistudio\claude-code-router\dist\index.js ✅ 2. 手动运行 Node 入口文件
powershell
Copy
node "$env:LOCALAPPDATA\npm-cache\_npx\12345\node_modules\@musistudio\claude-code-router\dist\index.js" start --foreground --debug✅ 目的:
让 Node 直接崩溃报错,不再被 npm 包装层吞掉日志,
我们就能看到到底是哪一行代码崩了。
你现在跑:
powershell
Copy
Get-ChildItem -Path $env:LOCALAPPDATA\npm-cache\_npx -Recurse -Name index.js | Select-String claude-code-router把输出的完整路径贴给我,我教你下一步怎么手动触发报错。
Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。
安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
PS C:\Users\QWQ> node "$env:LOCALAPPDATA\npm-cache\_npx\12345\node_modules\@musistudio\claude-code-router\dist\index.js" start --foreground --debug
node:internal/modules/cjs/loader:1386
throw err;
^
Error: Cannot find module 'C:\Users\QWQ\AppData\Local\npm-cache\_npx\12345\node_modules\@musistudio\claude-code-router\dist\index.js'
at Function._resolveFilename (node:internal/modules/cjs/loader:1383:15)
at defaultResolveImpl (node:internal/modules/cjs/loader:1025:19)
at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1030:22)
at Function._load (node:internal/modules/cjs/loader:1192:37)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:237:24)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
at node:internal/main/run_main_module:36:49 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
Node.js v22.19.0
PS C:\Users\QWQ>
路径不对,
12345 是示例占位符,你要用真实路径。✅ 你现在做:
✅ 1. 找到真实路径
运行:
powershell
Copy
Get-ChildItem -Path $env:LOCALAPPDATA\npm-cache\_npx -Recurse -Name index.js | Select-String claude-code-router你会得到真实目录名,比如:
abcd1234\node_modules\@musistudio\claude-code-router\dist\index.js ✅ 2. 用真实路径运行
powershell
Copy
node "$env:LOCALAPPDATA\npm-cache\_npx\abcd1234\node_modules\@musistudio\claude-code-router\dist\index.js" start --foreground --debug✅ 你现在跑:
powershell
Copy
Get-ChildItem -Path $env:LOCALAPPDATA\npm-cache\_npx -Recurse -Name index.js | Select-String claude-code-router把输出的真实路径贴给我,我教你下一步怎么手动触发报错。
Node.js v22.19.0
PS C:\Users\QWQ> Get-ChildItem -Path $env:LOCALAPPDATA\npm-cache\_npx -Recurse -Name index.js | Select-String claude-code-router
Get-ChildItem : 找不到路径“C:\Users\QWQ\AppData\Local\npm-cache\_npx”,因为该路径不存在。
所在位置 行:1 字符: 1
+ Get-ChildItem -Path $env:LOCALAPPDATA\npm-cache\_npx -Recurse -Name i ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Users\QWQ\Ap...\npm-cache\_npx:String) [Get-ChildItem], ItemNotFound
Exception
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
PS C:\Users\QWQ>
npm 缓存路径不对,npx 实际下载目录不在
我们换个方式找真实路径。
npm-cache\_npx,我们换个方式找真实路径。
✅ 下一步:用 npx 自己暴露入口路径
你运行:
powershell
Copy
npx @musistudio/claude-code-router --help 2>&1 | findstr node_modules或者:
powershell
Copy
(npx @musistudio/claude-code-router --help 2>&1) -match 'node_modules'✅ 如果还是找不到:
我们直接让 Node 打印入口路径:
powershell
Copy
node -e "console.log(require.resolve('@musistudio/claude-code-router'))"✅ 你现在做:
powershell
Copy
node -e "console.log(require.resolve('@musistudio/claude-code-router'))"它会输出类似:
C:\Users\QWQ\AppData\Local\npm-cache\_npx\abcd1234\node_modules\@musistudio\claude-code-router\dist\index.js 把这条真实路径贴给我,我教你下一步怎么手动触发报错。
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
PS C:\Users\QWQ> node -e "console.log(require.resolve('@musistudio/claude-code-router'))"
node:internal/modules/cjs/loader:1386
throw err;
^
Error: Cannot find module '@musistudio/claude-code-router'
Require stack:
- C:\Users\QWQ\[eval]
at Function._resolveFilename (node:internal/modules/cjs/loader:1383:15)
at Function.resolve (node:internal/modules/helpers:157:19)
at [eval]:1:21
at runScriptInThisContext (node:internal/vm:209:10)
at node:internal/process/execution:446:12
at [eval]-wrapper:6:24
at runScriptInContext (node:internal/process/execution:444:60)
at evalFunction (node:internal/process/execution:279:30)
at evalTypeScript (node:internal/process/execution:291:3)
at node:internal/main/eval_string:74:3 {
code: 'MODULE_NOT_FOUND',
requireStack: [ 'C:\\Users\\QWQ\\[eval]' ]
}
Node.js v22.19.0
非常明确:
❌ 你本地根本没有装@musistudio/claude-code-router,
所以require.resolve()找不到,
也说明 npx 每次只是临时下载、运行完就删,没留下可调试文件。
✅ 解决方式:强制让 npx 保留临时目录
你运行:
powershell
Copy
npx --prefer-online --cache /tmp/npx-cache @musistudio/claude-code-router start --foreground✅ 或者更简单:直接手动指定目录运行
你运行:
powershell
Copy
npx @musistudio/claude-code-router start --foreground --debug 2>&1 | findstr Starting✅ 如果还是看不到日志:
我们换个思路:不折腾 npx 了,
直接用 GitHub 源码运行,百分百能看到报错。
直接用 GitHub 源码运行,百分百能看到报错。
✅ 你现在做:
powershell
Copy
git clone https://github.com/musistudio/claude-code-router.git
cd claude-code-router
npm install
npm run build
npm run start:debug✅ 总结一句话:
npx 太黑盒,我们直接用源码跑,报错一目了然。
你现在跑:
powershell
Copy
git clone https://github.com/musistudio/claude-code-router.git
cd claude-code-router
npm install把完整输出贴给我,我带你源码级调试。