
【免费下载链接】cc-viewerA request monitoring system for Claude Code that captures and visualizes all API requests and responses in real time. Helps developers monitor their Context for reviewing and debugging during Vibe Coding.项目地址https://gitcode.com/gh_mirrors/cc/cc-viewer点击查看免费下载CC-Viewer 是 Claude Code 的请求监控系统它能实时捕获并可视化所有 API 请求与响应。而它内置的**代理热重载proxy hot-reload与按角色路由per-role routing**两大能力可以让你不再依赖 claude-code-router、claude-code-switch 这类第三方代理工具——主 Agent、子 Agent、Teammate 各走各的通道改配置秒级生效无需重启。 本文将从配置存储、文件监听、请求分类三个层面拆解这套机制的原理。为什么不再需要 claude-code-routerClaude Code 本身支持ANTHROPIC_BASE_URL指向第三方代理很多用户因此叠加 claude-code-router 做按角色换供应商。但官方文档早已提示这类工具和 cc-viewer 存在代理端口争用问题必须二选一。而 CC-Viewer 的内置方案直接在拦截层完成同样的事热重载切换供应商/Key/模型下一个请求立即生效按角色分流subagent子代理与teammate团队智能体可以各自绑定独立代理源零冲突拦截发生在 Claude Code 的 fetch 调用层不额外占用代理端口。相关说明见 README.md。内置代理热重载改配置不用重启两层配置文件结构热重载的数据模型只有两个文件定义在 interceptor.js文件作用域内容profile.json全局共享代理源profiles列表projectDir/active-profile.json每个工作区独占当前生效的activeId 角色分配rolesactive-profile.json的结构长这样{ activeId: my-relay, roles: { subagent: follow, teammate: cheap-relay } }其中roles的取值有三种follow跟随主 Agent默认、max内置 Default即不改写、或直接填某个 profile id。watchFile 实现 1.5 秒跨进程同步热重载的关键是文件监听。CC-Viewer 用 Node 的watchFile以 1500ms 轮询这两个文件interceptor.js 中挂载 profile.json 监听任何 ccv 进程修改了 profiles 列表其他进程多窗口、teammate 子进程在 1.5 秒内自动重新加载工作区 active-profile.json 的独立 watcher角色分配只存在这个文件里所以单独监听。重试配置retry-config.json也走同样的热刷新通道——proxy.js 中每个请求都实时读取最新重试配置UI 改完下个请求即生效无需重启。写入侧同样讲究工作区文件采用tmp rename 原子写interceptor.js防止其他进程经轮询读到写一半的撕裂内容合并语义则保证只改 activeId不会覆盖已存的角色分配。按角色路由原理主 Agent/子 Agent 各走各的通道第一步如何判断一个请求的角色每个 fetch 请求经过拦截钩子时先做一次角色分类核心是 classifyProxyRole 这个纯函数判据按优先级排列x-claude-code-agent-id请求头——最高优先级硬判据见 interceptor.js带命名队友name…→teammate匿名子代理 →subagent。它不依赖 system 文本最可靠teammate 进程——独立的 OS 进程带--agent-name参数进程内一切请求恒为teammatecc_is_subagenttrue计费标记——CC 2.1.181 的 CLI 会在 billing header 显式标注子代理这是subagent的唯一阳性依据兜底为main——count_tokens、heartbeat 等工具端点跟随进程主角色避免老版本 CC 的子代理请求被误分流。第二步角色到 Profile 的解析分类完成后resolveRoleProfile 把角色解析成实际生效的 profile 对象follow/ 缺省 / 悬空 idprofile 已被删→ 回落主 Agent 的 profilemax→null即显式不改写具体 profile id → 对应的 baseURL、apiKey、模型替换规则。随后拦截器会做两件事URL 重写用 profile 的 baseURL 替换 origin并智能去重/v1路径重叠与Auth 替换同时覆盖x-api-key和Authorization两种鉴权改写逻辑见 interceptor.js。几个值得注意的兼容细节休眠机制当主 Agent 使用内置 Default 且指向官方端点时角色分配保持存储但请求时不生效UI 里分配区也会隐藏Fail-closed 安全策略一个 profile 若要改写 URL 到第三方 baseURL但其 apiKey 无法从凭据库解密该 profile 会被直接排除出路由interceptor.js——否则会拿着你本人的 Anthropic 凭证打到第三方地址零成本短路未配置任何 profile 时分类被整体跳过不做 system 文本提取对普通用户零开销interceptor.js。在 UI 里如何设置按角色路由前端入口是 ProxyModal.jsx在代理弹窗中主 Agent 走列表 radio 切换subagent与teammate各有独立下拉框默认follow被分配到的 profile 会显示角色徽章。提交走POST /api/proxy-profiles服务端处理在 preferences.js只发送变更的 role key避免多窗口陈旧值互相覆盖删除 profile 时引用它的角色自动归回follow非法值归follow、杂键丢弃、悬空 id 读取时回落容错逻辑见 normalizeRoles。小结能力传统方案CC-Viewer 内置方案切换供应商重启 / 端口争用watchFile 1.5s 热重载按角色路由claude-code-router 额外代理层拦截层内 classify resolve 两步完成多进程同步无原子写 跨进程轮询读取一句话把 claude-code-router 关掉用 CC-Viewer 的代理弹窗配置好角色分配主 Agent、子 Agent、Teammate 从此各走各的通道——配置即改即生效这正是开源项目做工具链一体化的价值所在。核心源码索引拦截器主逻辑、角色分类纯函数、代理转发与重试、角色路由测试契约。赞分享【免费下载链接】cc-viewerA request monitoring system for Claude Code that captures and visualizes all API requests and responses in real time. Helps developers monitor their Context for reviewing and debugging during Vibe Coding.项目地址https://gitcode.com/gh_mirrors/cc/cc-viewer点击查看免费下载相关推荐Claude Code Router子代理路由精准控制多Agent模型分配Claude Code Router子代理路由精准控制多Agent模型分配 ? 痛点多Agent场景下的模型选择困境 你是否在使用Claude Code时遇后端API网关LLM 网关大模型VSCode 的 Claude Agent 接入路线图用 Claude Agent SDK 走 Copilot CAPI 通道的架构与十九个落地阶段VSCode 的 Claude Agent 接入路线图用 Claude Agent SDK 走 Copilot CAPI 通道的架构与十九个落地阶段 导读本开发工具代码编辑器Claude Code Subagent 子代理完整指南官方 Subagents、Agent 委派、Agent Teams 与社区代理资源Claude Code Subagent 子代理完整指南官方 Subagents、Agent 委派、Agent Teams 与社区代理资源 课程信息 作者 文档教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考