跳到正文
阿里雲開發者社區 AI·· 3 小時前AI 評分52

QuotaPanel 實戰:用 Go + Wails 開發 AI 訂閲額度面板

QuotaPanel 实战:用 Go + Wails 做一个 AI 订阅额度面板

AI 導讀

QuotaPanel 以 Go、Wails v2、Vue3 和 TypeScript 開發,將 16 種 AI 訂閲及 API 額度集中在本機桌面面板查看。帳號密鑰和瀏覽器登入工作階段保存在 ~/.quotapanel/,不會上傳雲端;需要瀏覽器登入的來源會開啟獨立 Chrome 或 Edge 窗口。

正文

2026-11-02 12

版权

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

简介: QuotaPanel 是一个用 Go + Wails + Vue3 写的本地桌面工具,把 Claude、ChatGPT、Copilot、Kimi 等 16 种 AI 订阅与 API 额度收进一个面板。本文拆解它的技术栈与目录结构,并给出在本地跑起来的完整命令。

我同时开着 Claude、ChatGPT、GitHub Copilot、Kimi 和几个 API 平台。每家的额度都藏在各自的控制台里,想知道这个月还剩多少,得挨个登录、翻页面、记数字。次数多了,就想亲手做一个地方,一次看完。

QuotaPanel 就是这么一个桌面工具。后端是 Go,外壳用 Wails v2,界面是 Vue3 加 TypeScript,目前接了 16 种 AI 订阅和 API 额度来源,数据全部留在本机,macOS、Windows、Linux 都能打包。

先把数据放在本地

所有账号密钥和浏览器登录会话都写在 ~/.quotapanel/ 目录下,不上传云端。想换位置,设一个 QUOTAPANEL_DATA_ROOT 环境变量就行。密钥在界面上默认脱敏,要用的时候再复制。

这个选择也带来一点麻烦。Claude、ChatGPT、Cursor 这类只能靠网页登录拿数据的来源,没法用后台请求解决,只能拉起一个独立的 Chrome 或 Edge 窗口,让用户真正登录一次,再把会话持久化下来。好处是账号密码不用交给任何第三方服务,删除账号时对应的浏览器资料也会一起清掉。

能查到哪些额度

按取数方式分成两类。

浏览器登录类:

  • Claude 订阅:5 小时窗口与每周额度
  • ChatGPT / Codex:订阅使用窗口
  • Cursor:当前周期用量
  • 小米 MiMo Token Plan:套餐积分与账户余额

API Key 类:

  • GitHub Copilot:Premium 请求、聊天与补全额度
  • Z.ai Coding Plan、Kimi Coding Plan、MiniMax Token Plan
  • Devin / Windsurf、Grok CLI、OpenCode、Command Goat
  • DeepSeek API、Kimi API、OpenRouter、OpenAI API

界面上一条账号就是一张卡片:进度条、剩余量、账期和重置时间。状态分正常、即将用尽、超限三档,用不同颜色区分,阈值可以在设置里调。

技术栈和目录

  • Go 1.24+:额度查询与本地服务
  • Wails v2:桌面外壳,负责前后端绑定
  • Vue3 + TypeScript:界面
  • AntDesign Vue + TailwindCSS:组件和样式
  • SQLite:本地存储

目录长这样:

quotapanel/
├── main.go              # Wails 应用配置与入口
├── app*.go              # 暴露给前端的方法
├── backend/
│   ├── base/            # 数据库、配置、日志、窗口、平台差异
│   └── quota/           # 各额度来源适配器与查询服务
├── frontend/
│   └── packages/
│       ├── ui/          # 主界面
│       └── quota/       # 额度业务模块
├── demo/image/          # 界面截图
├── docs/                # 额度来源调研
└── Makefile             # 开发、构建与发布

Wails 的分工很直接。Go 侧的大写方法会生成对应的 JS 绑定,前端在 api 目录里包一层再调用,页面不直接碰生成的代码。后端要主动推消息时用 runtime.EventsEmit,前端在 onMounted 里注册监听、onUnmounted 里注销。平台差异,比如菜单栏、托盘、关窗行为,按文件名后缀做条件编译,不写运行时的 GOOS 判断。

在本地跑起来

需要 Go 1.24+、Wails v2、Node.js 20 和 pnpm。

# 安装 Wails CLI
go install github.com/wailsapp/wails/v2/cmd/wails@latest

# 安装 pnpm
npm install -g pnpm

依赖装好之后:

make install        # 安装前后端依赖
make dev            # 开发模式,前端热更新
make build          # 构建生产版本
make build-install  # 构建并装到 /Applications(macOS)

改了 Go 侧暴露给前端的方法,记得执行 wails generate module 重新生成绑定,不然前端调不到新方法。

几个用起来才会注意的细节

新增账号。选来源,填 API Key 或者点「浏览器登录」,再给个名字和备注。同一平台可以放多个账号,公司号和个人号分开管很省事。

定时刷新。默认 5 分钟轮询一次,也能单独刷新某个账号或者全部刷新。间隔在设置里改,调太勤容易触发上游限流。

卡片截图。单张卡片可以导出 PNG,用来和别人对账,或者直接贴进群里。

托盘常驻。macOS 走菜单栏,Windows 和 Linux 走系统托盘。关窗口的默认行为可以在「每次询问」「直接退出」「隐藏到后台」里选。

界面做了简体中文和英文两套,配色走统一的 design token,浅色和深色各一份。

想加一个新来源

backend/quota 下每个来源就是一个适配器,负责取数、解析,再把结果整理成统一的额度结构。加新平台时照着已有实现补一个,注册进去,前端不用动。

最后

QuotaPanel 用 Apache-2.0 发布,可以改也可以商用,代码在 GitHub 和 Gitee 上的仓库名都是 open-tecmz/quotapanel。

如果你手上的 AI 平台也不少,或者只是懒得每次手动翻额度,装一个试试。碰到不支持的平台,去仓库提 issue,比在评论区描述有用得多。

來源:阿里雲開發者社區 AI · developer.aliyun.com