
Copilot 账单焦虑实时指示器:用 ESP8266 和赛博朋克 UI 看着 credits 烧
TL;DR
Copilot 改计费之后,credits 烧多快看不见、账单来了才慌——做了个桌面硬件监控台,实时盯着月度和今日用量,放桌上一眼就知道今天烧了多少。
之前写过一篇「从前慢:两种慢,两种命运」,聊的是 GitHub Copilot 在 2026 年 6 月把计费模式从按请求次数改成按 token 实际消耗——单位叫 GitHub AI Credits,模型越贵、跑得越久,花得越多。
有人的 credits 一天半就跑完,账单翻倍,「由奢入俭难」。账单焦虑是真实存在的。
当然,把用量显示在桌上,盯着它看,焦虑只会更具体。但这不重要——这东西本来就是个玩具。用 ESP8266 + 1.54 寸 IPS 屏幕,赛博朋克黑底 UI,实时显示 Copilot AI Credits 的月度和今日用量,以及对应的美元金额。放桌上好看,顺带心里有个数。
顺带一提,这个项目是 vibe coding 出来的——Go proxy 的开发、固件的编写、甚至固件的烧录,全程由 coding agent 完成,我基本没有手写代码。用 Copilot 写了个监控 Copilot 账单的玩具,credits 花得值不值,见仁见智。
项目地址:addozhang/copilot-billing-monitor
项目一览
屏幕是 240×240 的 1.54 寸 IPS,纯黑底,两个圆形进度环分别显示月度和今日的 credits 用量,中间数字直接显示消耗量和美元金额。电路走线、六边形节点,赛博朋克元素拉满——好看就是第一生产力。
功能上没有多余的东西:
- 月度用量:当月 gross credits 消耗、计划内额度(included)、超出部分(additional)及对应 USD 金额
- 今日用量:同上,只统计当天
- 5 分钟自动刷新:WiFi Light Sleep 省电,刷新间隔和 proxy 缓存对齐
- 首次开机自动进入 AP 配网模式:手机连上热点,Captive Portal 弹出,填完 WiFi 和 proxy 地址就完事,不用改代码重新烧
为什么是 Go Proxy + ESP8266
ESP8266 固件跑的是 Arduino 框架,技术上能通过 WiFiClientSecure 跑 HTTPS,但实际用起来问题不少:可用堆内存只有约 80KB,TLS 握手就能吃掉一大块,容易 OOM;证书管理也麻烦,内嵌 CA cert、用 fingerprint(会过期),或者直接跳过验证,每条路都有代价。
与其在固件里和 TLS 死磕,不如让 Go proxy 把脏活干了——鉴权、请求 GitHub API、聚合数据,ESP8266 只拉一个最小 JSON,画屏幕。固件逻辑干净,proxy 也顺手做了缓存,一举两得。
proxy 天然适合跑在家里的 NAS 上。NAS 常年开着,在局域网内,一行 docker run 搞定;ESP8266 和 NAS 在同一个局域网里,直接走 plain HTTP,完全不用操心 TLS。proxy 只有一个 main.go,打出来的 Docker 镜像约 6MB,运行时内存 10MB。默认缓存 5 分钟,和固件刷新间隔对齐——ESP8266 每次拉到的数据都是新的,GitHub API 也不会被频繁打扰。
架构很直接:

对外暴露两个接口:
GET /billing:返回月度和今日用量的聚合 JSONGET /health:健康检查
支持个人账号(GITHUB_USER)和组织账号(GITHUB_ORG)二选一,用一个 Fine-grained PAT 鉴权,只需要 Administration: Read 权限。
上手三步
第一步:创建 GitHub Token
在 GitHub Fine-grained PAT 页面 创建一个 token:
- Resource owner:选你的账号或组织
- Repository access:不需要选任何 repo
- Permissions → Organization permissions → Administration:Read-only
第二步:起 proxy
docker run -d --name copilot-billing-proxy \
-e GITHUB_TOKEN=your_pat_here \
-e GITHUB_ORG=your_org \
-p 8080:8080 \
addozhang/copilot-billing-proxy:latest
个人账号把 GITHUB_ORG 换成 GITHUB_USER。跑起来后验证一下(把 <nas-ip> 替换成 NAS 的实际 IP):
curl http://<nas-ip>:8080/billing
能看到 JSON 就好。
第三步:烧固件 + 配网
前置条件:安装 PlatformIO CLI。
cd firmware
pio run -t upload
烧完上电,板子自动进入 AP 模式,广播热点 FuBo-Copilot(密码 12345678)。手机连上去,Captive Portal 自动弹出,选 WiFi 网络,填密码,填 proxy 地址(如 http://192.168.1.100:8080/billing),保存。板子重启,连上 WiFi,拉数据,UI 亮起来。
总结
一个桌面小物,不解决问题,只是让问题更可见。Credits 烧多快,数字就在那,不用打开浏览器,不用登录 dashboard。
感兴趣的话,硬件、固件、proxy 都在 addozhang/copilot-billing-monitor,MIT 协议开源,自取。



