cpausage 是一个基于 CPA 管理接口的命令行配额查询工具,用来批量查看账号的 code-5h、code-7d 使用情况,并在终端里输出清晰的汇总报表。
这个项目适合已经在使用 CPA 的场景,重点是直接读取实时数据,不做离线猜测。
- 读取 CPA 管理接口中的认证文件列表
- 批量查询账号真实配额窗口
- 遇到
token_expired时自动关闭对应账号 - 保留并展示账号开关状态(
Switch为on/off) Code 5h/Code 7d使用固定 20 格进度条,每格 5%- 按计划类型和剩余额度排序
- 输出彩色表格、纯文本汇总或 JSON
- 支持环境变量、命令行参数和 JSON 配置文件
- 每次推送代码到 GitHub 后自动创建一个新的 Release
仓库已配置自动 Release。每次代码 push 到 GitHub 后,都会自动生成一个新的 Release,并附带对应平台的独立二进制文件。
可直接选择对应平台下载:
cpausage_darwin_amd64:macOS Intelcpausage_darwin_arm64:macOS Apple Siliconcpausage_linux_amd64:Linux x86_64cpausage_linux_arm64:Linux ARM64cpausage_windows_amd64.exe:Windows x86_64cpausage_windows_arm64.exe:Windows ARM64
下载后把文件改名为 cpausage(Windows 保留 .exe),再放到你的 PATH 中即可,例如:
chmod +x cpausage_linux_amd64
mv cpausage_linux_amd64 /usr/local/bin/cpausagegit clone <你的私有仓库地址>
cd <仓库目录>
go build -o dist/cpausage .你至少需要这两项配置:
CPA_BASE_URL:CPA 地址,例如http://127.0.0.1:8317CPA_MANAGEMENT_KEY:CPA 管理密钥
推荐直接写到 shell 环境变量中,例如 ~/.zshrc:
export CPA_BASE_URL="http://127.0.0.1:8317"
export CPA_MANAGEMENT_KEY="YOUR_MANAGEMENT_KEY"然后执行:
source ~/.zshrc查看完整报表:
cpausage默认美化输出使用 --style 1,也就是经典表格样式。
查看第二样式报表:
cpausage --style 2只看汇总:
cpausage --summary-only --plain输出 JSON:
cpausage --json筛选低额度账号:
cpausage --filter-status low筛选某种计划:
cpausage --filter-plan free如果你不想使用环境变量,也可以直接传参数:
cpausage \
--cpa-base-url http://127.0.0.1:8317 \
--management-key YOUR_MANAGEMENT_KEY也支持直接传管理页面地址:
cpausage \
--url http://127.0.0.1:8317/management.html#/login \
--management-password YOUR_MANAGEMENT_KEY支持 4 种配置来源,优先级如下:
- 命令行参数
- 环境变量
- JSON 配置文件
- 默认值
CPA_BASE_URLCPA_URLCPA_MANAGEMENT_KEYCPA_MANAGEMENT_PASSWORDMANAGEMENT_PASSWORD
可以在以下任一位置放置 JSON 配置文件:
- 可执行文件同目录下的
cpausage.json - 可执行文件同目录下的
cpa-quota-inspector.json ~/.config/cpa-usage/config.json
示例:
{
"login_url": "http://127.0.0.1:8317/management.html#/login",
"management_password": "YOUR_MANAGEMENT_KEY"
}--cpa-base-url:CPA 地址--cpa-url、--url:--cpa-base-url别名--management-key、-k:管理密钥--management-password、-p:管理密钥别名--config:指定 JSON 配置文件--json:输出 JSON--plain:输出纯文本--summary-only:仅输出汇总--style:美化输出样式,1为经典表格,2为卡片摘要样式--filter-plan:按计划类型过滤--filter-status:按状态过滤--concurrency:并发查询数--timeout:超时秒数--retry-attempts:失败重试次数--ascii-bars:使用 ASCII 进度条--no-progress:关闭查询进度--version:输出版本信息
状态按 code-7d 剩余额度划分:
fullhighmediumlowexhausteddisablederrormissing
其中:
disabled表示账号在 CPA 中已关闭。手动关闭的账号不会继续发起 quota 查询;被工具因token_expired自动关闭的账号,会在每天首次运行时自动复查一次- 当上游返回
401且错误码为token_expired时,工具会先调用 CPA 管理接口关闭该账号,再把它显示为disabled - 自动关闭的账号如果在每日复查时恢复正常,工具会自动重新启用该账号
Switch列显示账号当前开关状态,on为启用,off为关闭Code 5h/Code 7d进度条固定为 20 格,每格代表 5%
status_counts 的固定顺序如下:
full -> high -> medium -> low -> exhausted -> disabled -> error -> missing
美化输出支持两种样式:
--style 1:经典表格,列顺序为File / Code 5h / Reset 5h / Code 7d / Reset 7d / Status / Switch--style 2:卡片摘要样式,顶部显示连接信息,中间显示同样的账号表格,底部显示Total / Free和 token usage 卡片
推荐用法:
# 经典样式
cpausage --style 1
# 第二样式(卡片摘要)
cpausage --style 2工具复用了 CPA 管理接口的链路:
GET /v0/management/auth-filesPOST /v0/management/api-call- CPA 再向上游请求配额接口
仓库内置 GitHub Actions 工作流:
- 工作流文件:
.github/workflows/auto-release.yml - 触发方式:每次 push 到 GitHub
- 自动行为:
- 运行
go test ./... - 自动生成一个新的 tag
- 交叉编译多平台二进制文件
- 自动创建 GitHub Release
- 上传各平台二进制文件到 Release
- 使用
scripts/generate_release_notes.py生成用户可读的中文更新说明
- 运行
Release Notes 生成优先级如下:
- 提交说明中的
Release-note-zh:/Release-note-cn:trailer .github/release-note-mapping.json中维护的中文摘要映射- 通用中文归类与短语翻译回退规则
如果你想为某次提交指定更自然的中文摘要,可以在 commit message body 中追加类似内容:
Release-note-zh: 新增累计 Token 用量汇总
Release-note-category: 功能更新
如果你把项目推到新的私有仓库,记得在 GitHub 仓库设置里启用 Actions,并允许 GITHUB_TOKEN 具备 contents: write 权限。
格式化并测试:
gofmt -w *.go
go test ./...本地构建:
mkdir -p dist
go build -o dist/cpausage .main.go:命令入口与参数解析config.go:配置文件加载与路径解析fetch.go:请求、解析、状态计算render.go:终端报表输出helpers.go:通用辅助函数.github/workflows/auto-release.yml:自动构建和发布多平台二进制
- 当前不展示 code review 配额。
- 这是一个命令行工具,不依赖 Web 页面。
