用 Go + Wails 做一个本地 AI 额度面板:QuotaPanel 上手记录

举报
Mz码不住 发表于 2026/11/02 16:56:13 2026/11/02
【摘要】 QuotaPanel 是一个基于 Wails、Go 和 Vue3 的开源桌面工具,把 16 种 AI 订阅与 API 额度收进本地界面,支持 macOS、Windows 和 Linux。

一、它管的是什么

同时用 Claude、ChatGPT、Copilot、Kimi 的人,大概都干过同一件事:为了看一眼还剩多少额度,把四五个控制台挨个点开。QuotaPanel 把这些数字收进一个本地窗口,后端是 Go,界面是 Vue3,桌面外壳用 Wails v2。

它是一个开源桌面应用,覆盖 16 种 AI 订阅和 API 额度来源。账号密钥、浏览器会话都存在本机,默认目录是 ~/.quotapanel/,想换位置设一个 QUOTAPANEL_DATA_ROOT 环境变量就行。

来源分两类。第一类靠浏览器登录拿会话,包括 Claude(5 小时和每周两个窗口)、ChatGPT/Codex、Cursor、Xiaomi MiMo Token Plan。第二类填 API Key 就能查,包括 GitHub Copilot、Z.ai Coding Plan、Kimi Coding Plan、MiniMax Token Plan、Devin/Windsurf、Grok CLI、OpenCode、Command Goat、DeepSeek API、Kimi API、OpenRouter 和 OpenAI API。

界面上是一排卡片,每张给出已用、剩余、账期和重置时间,正常、即将用尽、超限用三种颜色区分。默认五分钟轮询一次,也可以手动刷新单个账号或者全部账号。

二、技术栈与目录结构

选 Wails 而不是 Electron,主要图体积。同样的界面用 Electron 打包,安装包往往上百 MB;Wails 复用系统 WebView,产物小一截,托盘、窗口、单实例这些系统能力在 Go 侧直接调,不用再装一堆依赖。

技术栈如下:

  • 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             # 开发、构建与发布命令

三、本地跑起来的四步

准备 Go 1.24+、Wails v2、Node.js 20 和 pnpm。

第一步,装 Wails CLI 和 pnpm:

go install github.com/wailsapp/wails/v2/cmd/wails@latest
npm install -g pnpm

第二步,拉依赖:

make install

第三步,起开发模式,前端带热重载:

make dev

第四步,出包:

make build

macOS 上想把产物直接装进 /Applications,换成 make build-install。

有个坑要留意:改了 Go 里暴露给前端的方法,记得执行 wails generate module 重新生成 JS 绑定,不然前端拿不到新方法。

四、用起来值得注意的地方

加账号

先选来源,再按类型填 API Key 或者走浏览器登录。账号名和备注自己起,密钥默认打码,需要时再复制。

浏览器登录

Claude、ChatGPT、Cursor 这类要网页登录的订阅,程序会开一个独立的 Chrome 或 Edge 窗口。会话存在它自己的浏览器资料里,删账号时这份资料一起清掉,不会留在磁盘上。

托盘和刷新

托盘图标常驻,macOS 在菜单栏,Windows 和 Linux 在系统托盘,可以快速显示、重启、退出。关窗口的行为能选每次询问、直接退出或隐藏到后台,习惯挂后台的人选第三个省心。

截图和语言

单张卡片能导出成 PNG,写周报或者记账时用得上。界面支持简体中文和英文,配色集中在设计 token 里管理,浅色、深色各一套。

五、想加一个新来源

额度适配器都在 backend/quota/ 下,一个来源一份实现。流程大致是这样:

  1. 新建适配器,实现查询方法,返回统一结构:已用量、总量、账期、重置时间。
  2. 需要登录的来源复用已保存的浏览器会话,查询时直接读会话,不再弹登录窗。
  3. 在供应商注册表里登记名称、图标和登录方式,前端的来源列表会自动跟着变。
  4. 用 make dev 起开发模式,确认卡片上的进度条和重置时间都对。

查询逻辑和界面是分开的,加平台不用动前端。

六、谁适合用

同时用三个以上 AI 服务、又不想每天开一堆网页的人,用它省事。想练手 Wails 的开发者也可以看看,后端适配器结构清楚,照着补一份实现就能加来源。

浏览器登录类的来源依赖各平台的网页结构,平台改版后可能要等适配更新;API Key 类稳定一些。

QuotaPanel 用 Apache-2.0 许可证开源,macOS、Windows、Linux 都能跑。项目在 GitHub 和 Gitee 上都有仓库,搜 QuotaPanel 就能找到。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。