可能是最好用的CPA管理工具

2026-04-11 10:591阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:

  • 我的帖子已经打上 开源推广 标签:
  • 我的开源项目完整开源,无未开源部分:
  • 我的开源项目已链接认可 LINUX DO 社区:
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:
  • 以上选择我承诺是永久有效的,接受社区和佬友监督:

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


先感谢 LinuxDo 佬友 @jingtai123

【CPA】Codex 401账号清理与额度耗尽停用脚本 开发调优
找不到是哪个佬写的脚本改的。。。 修改内容与功能 新增了 api-call 主动探测。 全量探测,等同于CPA中的 配额管理 刷新,本次脚本运行只会完整探测一遍 默认是关闭的,只有加 --enable-api-call-check 才会跑,且只跑一遍 api-call探测方式: 一批同时探测 9 个,整批跑完以后,随机等待 5 到 10 秒,再继续下一批。这样比一个个串行扫。 额度耗尽的…

这个项目是在他的脚本思路基础上继续二开整理的。它主要以codex的认证文件为例。我主要补了 Web 控制台、配置保存、日志查看、报告摘要、systemd 部署支持、优化了额度用尽之后的管理逻辑,让它更适合长期挂着跑,也更方便日常维护。

GitHub:

github.com

GitHub - KJ20051223/CLIProxyAPI-cleaner: CLIProxyAPI-cleaner: a lightweight cleanup script...

CLIProxyAPI-cleaner: a lightweight cleanup script plus web dashboard for auth-file account management, reporting, and service control.

项目定位

CLIProxyAPI-cleaner 是一个面向 CPA / auth-file 管理场景 的轻量工具,包含两部分:

  1. 清理脚本主程序
  2. 可视化 Web 控制台

把原来偏脚本化、偏手工的流程,整理成一套更容易部署、观察和维护的日常实用方案。

Web 首页

image1229×897 127 KB

清理脚本运行逻辑

脚本整体思路是:拉取账号列表 → 分类判断状态 → 执行对应处理 → 记录状态 → 生成报告 → 定时进入下一轮

1. 先获取 auth-file 列表

每轮开始时,脚本会先从管理端接口拉取当前 auth-file / 账号列表。
如果接口返回异常或者数据结构不对,就会直接报错退出当前轮,避免后面误操作。

2. 对账号做第一轮分类判断

脚本会根据账号当前返回的状态信息做初步分类。这里核心是几类情况:

  • 可用账号
  • 401 / 认证失效类账号
  • 额度耗尽类账号
  • 已经禁用的账号
  • 不可用但暂时不直接处理的账号

脚本内部会通过一些规则和错误特征去识别,比如:

  • 401
  • unauthorized
  • invalid_grant
  • refresh_token_reused
  • usage_limit_reached
  • quota
  • 429
  • billing
  • rate limit

也就是说,它不是只看一个字段死判断,而是结合状态码和错误信息一起归类。

3. 结合 /api-call 主动探测再做一轮修正

除了基础状态判断,脚本还支持用 /api-call 做一轮主动探测。
这一层的目的,是把“表面状态”和“真实调用结果”结合起来,减少误判。

比如有些账号:

  • 表面上看着还行,但真实调用已经报 401
  • 表面上没明显坏,但实际已经额度耗尽
  • 还有些账号需要进一步探测才能知道是不是值得继续留着

所以这一步会把一部分账号重新归类成:

  • delete_401
  • quota_exhausted
  • ok
  • 其他待观察状态

这也是为什么脚本比“只看面板状态”更有用一点。

4. 对 401 / 认证失效账号执行清理

如果判定为 401 / 认证失效,脚本会进入删除逻辑。

处理方式大概是:

  • 先尽可能备份相关 auth-file
  • 再调用管理接口删除对应文件 / 账号
  • 删除成功后写入本轮结果
  • 删除失败则记录失败原因,留在报告里

这里不是无脑删,它会尽量保留备份路径和响应结果,方便后面排查。

5. 对额度耗尽账号先禁用,而不是立刻删

如果判定为 额度耗尽,脚本默认不是直接删除,而是:

  • 先把账号标记为 disabled
  • 同时把这个账号写入本地状态文件
  • 记录下它什么时候被禁用、下一次什么时候做 revival 检查

这个设计的考虑很简单:
很多额度号不是“彻底死了”,而是“当前不能用,但过一段时间可能恢复”。

所以对这类账号,脚本走的是:

先禁用 → 等待窗口期 → 再做 refresh / revival probe

6. 本地状态文件负责“记住这些额度号后面怎么处理”

脚本会维护一个状态文件,用来记录这些被禁用账号的后续处理节奏。

状态文件里大概会记:

  • 账号名
  • 最近一次错误原因
  • 什么时候进入禁用状态
  • 下一次 revival 检查时间
  • refresh / probe 的结果

这样脚本在下一轮跑的时候,不是“重新从零开始想”,而是能接着上一次的状态继续走。

7. 到了时间窗口后,进入 revival 流程

对已经因为额度问题被禁用的账号,等到了设定的等待周期以后,脚本会进入 复活检查流程

这一段逻辑大概是:

  1. 读取 auth-file 内容
  2. 尝试做 token refresh
  3. refresh 成功后,再做一次实际 probe
  4. 根据 probe 结果决定后续动作

可能出现几种结果:

情况 A:refresh 成功,probe 也正常

那就说明账号恢复了,可以重新启用。

脚本会:

  • 把账号从 disabled 改回可用
  • 清掉本地状态里的追踪信息
  • 在报告里记成“复活成功启用”

情况 B:refresh 成功,但 probe 后还是额度耗尽

说明账号暂时还是不行。

脚本会:

  • 保持 disabled
  • 重新安排下一次 revival 检查时间
  • 继续留在状态文件里

情况 C:refresh 失败,而且失败原因像 401 / token 已废

这种账号通常就没必要继续留了。

脚本会:

  • 备份
  • 删除
  • 从状态文件里清掉

情况 D:读取 auth-file 或处理过程中出错

那就先记错误,延后到下一轮再检查,避免一次异常直接把账号误删。

8. 可用账号会顺带清理旧状态

如果某个账号原本曾经被记录成额度耗尽,但后面重新变成可用状态,脚本会顺手把它在状态文件里的旧记录清掉。

也就是说,状态文件不是只增不减,而是会随着账号恢复情况动态清理。

9. 每轮都会生成报告

每次执行结束后,脚本都会输出结构化报告,里面会带上:

  • 本轮 run_id
  • 配置摘要
  • 结果列表
  • 汇总统计
  • 当前状态快照

一般会看到这些统计项:

  • 检查总数
  • 可用账号数
  • 额度账号已禁用数
  • 已删除 401 数
  • refresh 成功数
  • refresh 失败数
  • 复活成功启用数
  • 复活仍限额数
  • 删除失败数
  • 禁用失败数

这个报告会被 Web 控制台拿来做摘要展示,所以页面上能直接看到“删了几个 401、禁了几个额度号、复活了几个”。

10. 支持单次执行,也支持循环运行

脚本既可以:

  • 只跑一轮
  • 也可以按固定间隔持续循环跑

如果是循环模式,就会按设定的 interval 周期,不断重复:

检查 → 分类 → 处理 → 记录 → 报告 → 等下一轮

所以它更适合挂成一个长期服务,而不是一次性脚本。

Web 控制台负责什么

Web 控制台本身不负责核心判定逻辑,它更像是脚本的一个操作面板。

主要作用是:

  • 保存配置
  • 启停 / 重启 cleaner 服务
  • 查看 cleaner 日志
  • 查看 Web 日志
  • 展示最近报告摘要
  • 做简单的状态观察

也就是说,核心逻辑在清理脚本里,控制台负责管理和可视化

目前有的功能

  • 清理脚本主逻辑
  • Web 控制台
  • 配置保存
  • 一键启动 / 停止 / 重启 cleaner
  • 一键 dry-run
  • cleaner / web 日志查看
  • 最近报告摘要展示
  • systemd + Nginx 部署
  • 默认中文 README + 英文 README
  • MIT License

适用场景

这个项目比较适合下面这些情况:

  • 本来就在跑类似清理脚本
  • 不想每次都手工敲命令
  • 想把参数配置、日志、报告集中管理
  • 想让服务稳定长期跑着
  • 想把这类脚本整理成一个可以分享和复用的小项目

当前状态

目前它还是偏 实用型 项目,优先解决真实使用场景中的问题。
不是特别追求大而全,但已经能比较顺手地跑起来了。

后面如果有时间,可能还会继续补这些东西:

  • 更完整的报告筛选能力
  • 多用户 / 权限控制
  • 更顺手的部署体验

如果有佬友也在折腾类似需求,欢迎讨论,或者直接拿去改。

网友解答:
--【壹】--:

感谢佬,期待docker


--【贰】--:

已更docker


--【叁】--:

控制台可以设置 复活环节是默认12h查一次 注册机可以去看冰佬的


--【肆】--:

期待docker版本


--【伍】--:

我没3级…被禁言过6个月…


--【陆】--:

感谢大佬


--【柒】--:

感谢分享~~


--【捌】--:

那我什么时候有空搞一下


--【玖】--:

改一下配置即可 仓库有写


--【拾】--:

仅支持 Codex 还是 Claude 都支持


--【拾壹】--:

已经更新了


--【拾贰】--:

同期待!


--【拾叁】--:

应该合并到cpa里


--【拾肆】--:

更新了docker


--【拾伍】--:

感谢大佬的分享


--【拾陆】--:

合并不知道会不会有各种奇奇怪怪的bug呢 不如就这样


--【拾柒】--:

谢谢分享


--【拾捌】--:

谢谢分享


--【拾玖】--:

查额度可不建议频繁查吧

还有我想知道好用的注册机哪有= =!