文档

AI 用量监控 开发文档

这个项目是什么

「AI 用量监控」是一个 Chrome / Edge(Manifest V3)侧边栏浏览器插件,把多家 AI 厂商的用量、余额、订阅窗口额度汇到一屏里实时查看:CommandCode、OpenCode Go、OpenRouter、DeepSeek、Kimi (Moonshot)、硅基流动、MiniMax 编码套餐,同一厂商可加多个账号,每账号一张统计卡。除用量外,各厂商卡片下方还会展示该厂商的模型价格/免费额度信息(最便宜 3 个模型 + 免费模型限制),帮用户做省钱选型。当前版本 v2.6.0。

设计原则是「只用官方接口、纯本地运行」:直接镜像官方 CLI/官方 API 端点取数,数据只存本机 chrome.storage.local,无遥测、无第三方上报、无更新检查。

技术栈与架构

数据流:worker.js 后台按 alarm 周期拉取各厂商官方接口 → 结果归一化后写入 storage → 侧边栏读 storage 渲染。用户填的 API Key 也只存在本机 storage。

仓库结构

├── manifest.json     # MV3 清单:权限、host_permissions、sidePanel、图标
├── worker.js         # Service worker:定时刷新、拉取各厂商用量
├── sidepanel.html    # 侧边栏结构
├── sidepanel.js      # 侧边栏逻辑(账号管理、渲染、备份恢复)
├── sidepanel.css     # 侧边栏样式
├── providers.js      # 多厂商适配层:每个厂商一个适配器
├── models.js         # 模型价格/免费额度信息
├── lib.js            # 公共工具(ccGet 请求、ccStripSlash 等)
├── icons/            # 16/32/48/128 图标
├── CHANGELOG.md      # 更新日志
└── README.md

厂商适配层(providers.js)

每个厂商是一个适配器,键名即厂商 id(commandcode / opencodego / openrouter / deepseek / kimi / siliconflow / minimax 一类,以代码为准),统一返回归一化结构:

{ bigLabel, bigValue, percent|null, windows:[{label,percent,resetAt}], stats:[{label,value}], note }

新增一个厂商的步骤:在 providers.js 的 CC_REF 里加一个适配器(label、hint 提示 Key 怎么拿、fetch 归一化数据),再在 models.js 里补该厂商的价格/免费额度信息即可,侧边栏的账号表单与卡片是数据驱动的,不用改 UI 代码。

配置与存储

插件没有服务端配置项,所有配置在侧边栏「设置」里完成,落在 chrome.storage.local:

配置 说明
账号列表 每条含厂商 id、API Key、备注(显示尾号)、可选自定义 API 地址(CommandCode 等支持)
自动刷新间隔 1–120 分钟任选,到点后台静默更新
ccModels 唯一的持久缓存:厂商模型价目快照,24 小时刷新

manifest.json 权限:storage、alarms、sidePanel;host_permissions 覆盖厂商官方 API 域名与 http/https 通配(请求全部由 Service Worker 发出,绕开页面 CORS)。

本地开发

没有构建步骤:

  1. 下载仓库目录(或 Releases 的 zip 解压)。
  2. chrome://extensions(Edge 为 edge://extensions)打开右上角开发者模式。
  3. 「加载已解压的扩展程序」选中本目录(manifest.json 在根)。
  4. 改代码后点该扩展的 🔄 重新加载,再关掉重开侧边栏——侧边栏不会热更新,不重开会继续跑旧脚本。

调试:Service Worker 页可看后台日志;侧边栏右键「检查」打开 DevTools。注意 sidepanel.js 与 worker.js 之间靠 storage + chrome.runtime 消息通信,改 storage 键名要两边同步。

二次开发要点

相关链接