📊我想把 AI 用量放到手机桌面:AI Usage Widget 从想法到 V1 方案

我同时在用 ChatGPT / Codex、Claude、DeepSeek 等 AI 工具。看到别人把各平台用量做成 iPhone 桌面小组件后,我也想做一个自己的版本:打开手机就能看到还剩多少额度、什么时候重置。
notion image

我的设备组合

我的主力设备不是 iPhone,而是:
  • Mac
  • Samsung Android 手机为主
  • iPhone 为辅
所以我没有照搬 Scriptable,而是把方案改成:
Mac 负责采集数据,手机只负责展示
V1 不追求“大而全”,只保留真正会看的内容:
  • 平台名称
  • 当前用量 / 剩余额度
  • 百分比进度条
  • 重置时间
  • 余额
  • 最后更新时间
优先关注 ChatGPT / Codex、Claude、DeepSeek,其他平台后续再加。
这里有个关键点:订阅额度和 API Usage 不能混为一谈。
ChatGPT / Codex 的订阅用量不能直接用 OpenAI API Usage 代替,Claude 也是一样。所以 V1 只接入能够稳定获取真实数据的平台,拿不到就先不显示。

Mac 端:统一采集数据

Mac 端计划用 Python 或 Node.js,每个平台做成独立 Provider,最后统一输出 JSON。
这样手机端不需要理解每个平台的接口,只读取统一数据即可。

真正困难的不是 UI,而是数据源

不同 AI 服务提供的用量接口差异很大,所以我把数据源分成三类:
  • 官方 API 可获取
  • 本地 CLI / 本地状态可获取
  • 暂时无法可靠获取
如果必须依赖高风险 Cookie 或 Session 抓取,默认先不接。
安全上也保持一个原则:
手机拿结果,Mac 保存凭证。
API Key 不写死在源码,优先使用 .env 或 macOS Keychain,日志里也不记录完整 Token。

Samsung 端:先用最轻的方案

V1 优先考虑 KWGT,因为它更适合快速验证桌面 Widget。
如果后面发现远程 JSON、刷新频率或布局能力受限,再升级成轻量原生 Android Widget。
第一版只做 Samsung。iPhone 后续如果需要,可以用 Scriptable 共用同一份 usage.json
notion image
Samsung Widget 成品图

同步方式也保持简单

Mac 和手机之间暂时只考虑低维护方案,例如:
  • 局域网 HTTP Endpoint
  • 私有静态 JSON 地址
V1 不引入数据库、Docker、n8n、云端 Agent 或多用户系统。
如果一个 JSON 文件能解决,就不先造一个平台。

现在做到哪一步

目前已经确定:
  • Mac + Samsung 的整体架构
  • V1 显示内容
  • Provider 模块化思路
  • 统一 JSON 格式
  • 安全边界
  • Android Widget 的实现路线
下一步才是逐个平台确认真实数据源,并开始编码验证。
这个项目对我来说暂时不是商业化产品,而是一个很典型的自用小工具:先解决自己每天会遇到的问题,再决定它值不值得继续扩展。
Loading...