
字节笔记本
2026年6月26日
双子续杯:iPhone 桌面小组件,一眼看清 Claude Code 和 Codex 还能写多久
重度用 Claude Code 和 Codex 写代码的人,基本都被同一件事折磨过:这个 5 小时窗口还能不能接着猛写?跑着长任务不敢中断去查额度,人离开了电脑又想知道还剩多少。双子续杯这个 iPhone 桌面小组件,就是为这个痛点做的——它把 Claude Code 和 Codex 两家的额度做成负一屏卡片,手机左滑就能看见,不用点开、不用刷新。本文介绍它的实现思路和使用方法。
解决的是什么问题
额度焦虑这件事,用过 Claude Code 或 Codex 的人都懂。这俩工具都是按时间窗口计费(Anthropic 的 5 小时滚动窗口、OpenAI 的周额度),一旦某个窗口里写得太狠,额度耗尽就得干等下一轮恢复。问题在于:
- 正跑长任务的时候,你不可能停下来打开网页去查当前窗口还剩多少
- 离开电脑(吃饭、通勤)时,想知道额度恢复得怎么样了,但又懒得专门去查
- 同时用两个平台的人更头疼,Claude 和 Codex 各算各的,得分开盯
现有的解决办法要么是浏览器开个标签页挂网页,要么装个 Mac 上的监控工具(比如 CodexBar)。但前者要主动去看,后者离不开 Mac。双子续杯的思路是把这件事挪到手机最常出现的地方——iPhone 负一屏的桌面小组件,做到「看一眼就行」。
项目名字也透着这股劲儿:叫「双子续杯」。「双子」指 Claude 和 Codex 两个 Agent,「续杯」是说额度喝完得等下一轮续上。小组件的标题更直白,直接写着「别问了还剩这么点🤏」。
核心特性
它做的事其实很简单,但每一点都对着痛点来的:
- 双平台统一视图:Claude Code 的 5 小时窗口剩余 + Codex 的本周剩余,在同一张卡片上显示,各自的恢复时间也一并标出来。不用再分两个地方看
- 单平台也能用:如果你只用 Claude 或只用 Codex,组件会自动切成单列布局,不会留一块空白
- 纯手机本地运行:用 Scriptable(iOS 上免费的脚本工具)写成,零服务器、零费用,也不需要 Apple 开发者账号
- Mac 关机也能看:额度查询直接在手机端调各平台的 OAuth 接口,token 存在 iPhone 的 Keychain 里。这意味着你的 Mac 可以关着,只要手机有网就能查
- 进度条像电量:剩余额度越少进度条越红,一眼就能判断要不要省着点用,不用读数字
工作原理:token 从哪来,额度从哪查
理解它怎么运作,关键是搞清楚两件事:登录凭据怎么从 Mac 搬到手机,额度数据从哪个接口拿。
token 的来源和搬运
Claude Code 和 Codex CLI 在你 Mac 上登录后,会把 OAuth token 存在本地固定位置:
- Claude Code:存在 macOS Keychain,键名是
Claude Code-credentials - Codex CLI:存在
~/.codex/auth.json文件里
双子续杯提供了一个 macOS 上的导出脚本(export-tokens.sh),把这些 token 取出来,通过 iCloud 同步文件或者剪贴板(新版推荐用 iCloud,因为剪贴板容易出错)传到 iPhone,再用 Scriptable 跑一次导入脚本,token 就进了 iPhone 的 Keychain。之后组件就能用这个 token 去查额度了。
额度查询接口
两个平台的额度都是通过各自的非官方接口查的:
- Claude:
GET https://api.anthropic.com/api/oauth/usage - Codex:
GET https://chatgpt.com/backend-api/wham/usage
需要说明的是,这俩接口都是社区逆向出来的非官方接口,只返回剩余百分比和重置时间,不包含具体的 token 计数。token 的自动刷新用到了社区已知的 client_id。这意味着如果平台哪天调整了接口,组件可能失效——这是它作为非官方方案固有的风险。
安装步骤
整个安装流程三步,核心是把 token 从 Mac 弄到手机。前置条件:
- iPhone(iOS 14+):Scriptable 是 iOS 独占的,安卓没法用
- macOS:导出 token 的脚本目前只支持 macOS(Windows/Linux 用户欢迎 PR)
- 已登录 Claude Code(桌面版或 CLI)和/或 Codex CLI:token 得先在本地存在
具体操作:
- Mac 上导出 token:运行仓库里的
export-tokens.sh,它会从 Keychain 和 auth.json 里把 token 取出来,生成一个导入文件(新版走 iCloud 同步) - 拷到手机:通过 iCloud 把导出的文件同步到 iPhone
- Scriptable 导入:在 iPhone 的 Scriptable app 里跑一次仓库提供的导入脚本(
ai-quota-widget.js),token 就存进了 iPhone Keychain - 添加桌面组件:在 iPhone 桌面或负一屏添加一个中号 Scriptable 组件,选中这个脚本即可
之后组件会自动周期性刷新(WidgetKit 的刷新节奏由系统控制),左滑负一屏或者瞄一眼桌面就能看到当前两个平台的额度。
安全说明
涉及 token 的工具,安全是绕不开的问题。双子续杯在这点上做得比较干净:
- token 只存在你自己 iPhone 的 Keychain,导入脚本不上传到任何第三方服务器,全程本地
- 只查询你自己账号的额度,不做别的操作
- 接口是非官方的,平台调整可能失效;token 刷新用的 client_id 是社区公开的已知值
换句话说,它本质上是把你 Mac 上已有的登录凭据,搬一份到手机上去调用同样的额度查询接口,中间没有经过任何第三方服务器。风险点不在数据外泄,而在非官方接口的稳定性。
技术栈
整个项目很轻,91% 是 JavaScript,9% 是 Shell:
- Scriptable (JavaScript) —— iOS 上的脚本运行环境,负责实际的小组件渲染和接口调用
- WidgetKit 中号组件 —— iOS 原生桌面组件,Scriptable 负责生成它的内容
- iOS Keychain —— 安全存储 token
- OAuth token 自动续期 —— token 过期后用 client_id 自动刷新,不用重新登录
- Shell 脚本 —— Mac 端导出 token 的工具
小结
双子续杯的价值不在于技术多复杂——Scriptable + Keychain + 两个逆向接口,实现起来不算难。它真正戳中的是 AI 编程重度用户那个很具体的日常焦虑:不知道额度还剩多少。把这个信息从「要主动去查」变成「手机一滑就见」,体验上的提升是实实在在的。
如果你同时用 Claude Code 和 Codex,又恰好是 iPhone 用户,这个小组件值得一试。它零成本、纯本地、不碰你的隐私,最坏的情况也就是哪天平台改了接口失效——而那时大不了再回到主动查网页的老路子,没什么损失。
项目链接
- GitHub 仓库:https://github.com/wgjuan2314/shuangzi-xubei
- 安装文档(SETUP.md):https://github.com/wgjuan2314/shuangzi-xubei/blob/main/SETUP.md
- 原理文档(PROJECT.md):https://github.com/wgjuan2314/shuangzi-xubei/blob/main/PROJECT.md