Copilot 账单焦虑实时指示器:用 ESP8266 和赛博朋克 UI 看着 credits 烧

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:返回月度和今日用量的聚合 JSON
  • GET /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 协议开源,自取。

乱世浮生微信公众号二维码

(转载本站文章请注明作者和出处乱世浮生,请勿用于任何商业用途)