Projects / cc-cli
CASE 02 / CLI
cc-cli
Claude Code 多 profile 启动器
- 角色
- 独立设计与实现
- 时间
- 2025–2026
- 状态
- 已发布
Context
在多模型、多 API 网关、多权限策略之间切换 Claude Code 时,手改 settings JSON 容易漏字段、难复用。需要可命名的 profile 与可预期的合并规则。
Role & Scope
独立开发并发布 npm 包 @zphhpzzph/cc-cli(bin: zcc),覆盖配置 CRUD、启动、写入 settings、本地 serve 代理与 Web UI。
Approach
- Profile + base 合并链:全局 base → 本地 base → profile,字段可覆盖。
- 启动与写入分离:
zcc <id>生成 settings 并拉起;zcc use只落盘。 - 代理与可观测:
zcc serve本地模型代理与请求日志;zcc web降低 YAML 编辑成本。
Implementation
- 入口
bin/cc.js:commander + 子命令 lazy-load(避免无用到的重依赖)。 src/config:loader / merger / validator / env-registry(大量 Claude Code 环境变量可检索)。src/proxy:代理服务与 worker/日志。src/web:Vite + React + MUI 配置界面,构建进包内 public。- 测试:Jest 覆盖 commands/config/proxy 等。
Outcome
- 全局安装后
zcc add/zcc <profile>可完成「加配置 → 启动」闭环。 - npm 已发布(实现时核对 registry 当前版本号写入文案即可,如 2.6.x)。
- 适合作为「开发者日常工具」作品,而不仅是课程作业。
Learnings
CLI 的产品完成度往往体现在 合并规则、错误提示、lazy-load 与测试,而不是子命令数量。