一个用于批量维护 / 开通 ChatGPT Plus 的本地 PyQt6 桌面工具。核心能力:
- 注册引擎:协议 / UI 双模式建号(
vendor/register-protocol),支持 iCloud/Outlook/xpgmail/CF-Worker 邮箱源、密码 + TOTP + Passkey MFA、手机号注册。 - 登录态维护:session cookie 刷 AT、AT 吊销自动密码 + TOTP 重登、代理体检 + SID 轮换。
- 卡池 & 开通:Duola 虚拟卡自动开卡 / 补卡;PH-Link 提链 + Stripe 绑卡 +
checkout/confirm全链路开 Plus。 - CDK 兑换:外部充值站(
chong.nerver.cc同协议)批量兑换,多渠道 CDK 池管理。 - 附加变现链路:GCash 订阅 / PayPal 批量取链 / 手机号绑定 + Codex PKCE 生成 CPA。
⚠️ 本仓库仅用于学习与合规测试。使用者须自行确保遵守 OpenAI、Stripe、各代理服务商、 各地区法律法规的相关条款。作者不对任何滥用行为负责,不承诺代码稳定性或结果可用性。
- Python 3.10+(推荐 3.11 / 3.12;已在 3.14 上过 smoke)
- Windows / macOS 均可;部分远端浏览器功能依赖 AdsPower 本地 API
- 首次运行会自动下载并解压 Chromium(Playwright)
git clone https://github.com/<你的用户名>/gpt_nerver.git
cd gpt_nerver
python -m pip install -r requirements.txt
python -m playwright install chromiumpython -m src.main首次启动会:
- 复制
config.example.json→config.json(本地文件,不进 git) - 在仓库根目录建
gpt_nerver.db(SQLite,全部账号 / 卡 / CDK / 手机号池数据存这里) - 建
logs/、data/、output/三个目录 - 弹出 GUI(10 个 Tab)
诚实矩阵。别人 clone 后立刻能用的、需要自己配一层的、必须联接外部 SaaS 才能跑的,分三档:
| 场景 | 说明 |
|---|---|
| GUI 启动 | python -m src.main |
| 手动导入 session-token / 邮箱-密码-TOTP-session-AT 多段格式 | 「账户列表」→ 粘贴导入 |
| 「完善 SESSION」刷新 → 输出完整 JSON | 只依赖 chatgpt.com/api/auth/session?refresh=true |
| 「查订阅」批量查 plan | 只依赖 chatgpt.com API |
| SQLite 账户 / 卡 / CDK / 手机号池管理、CSV 导入导出 | 纯本地 |
| 单元测试 | python tests/test_cdk_pool_and_geo.py / python tests/test_relogin_proxy_rotate.py |
| 依赖 | 用在哪 | 起步成本 |
|---|---|---|
| 住宅或数据中心代理 | 没代理 CF 直接 403 | 任意 socks5/http 都行,config.json.proxies 或"代理"Tab 粘一行 |
| AdsPower(远端浏览器) | UI 建号模式;协议模式不需要 | 免费版够用,默认 http://127.0.0.1:50325 |
| CF Email Worker 邮箱域 | 「随机邮箱」注册模式收 OTP | 自建 CF Worker,改 config.mail.email_domain,见 docs/SETUP.md |
| hCaptcha 求解器(可选) | 注册风控高时 | nonecap / yescaptcha 之类,付费 |
| 服务 | 用在哪 | 没有 key 会怎样 |
|---|---|---|
cha.nerver.cc API |
PH-Link 提链、优惠预检、PayPal 取链、GCash、订阅查询、UPI/PIX/iDEAL/Kakao 出码 | 直接失败,需 config.cha.api_key |
chong.nerver.cc API |
CDK 兑换充值 | 走不通 CDK 开通模式 |
| Duola 虚拟卡商 | 自动开卡 / 补卡 | 只能手动导入卡池 |
| HeroSMS / SMSBower | 手机号注册 + 手机号绑定 CPA | 走不到这条路,转为纯 email 注册 |
| IPWEB / IPRoyal 住宅代理 | 高抗封成功率 | 可换任意代理,但成功率显著下降 |
| iCloud 邮箱池后台 | icloud_mail_provider.py 客户端连的后台服务 |
只能改用 outlook / imap 模式手动导入 |
注意:
cha.nerver.cc/chong.nerver.cc是本仓库作者维护的 SaaS 服务,需自行联系拿 key 或 按其公开 API 协议(docs/*.md有部分描述)自建同协议后端。
gpt_nerver/
├── src/
│ ├── main.py # 启动入口: python -m src.main
│ ├── ui/ # PyQt6 桌面 UI
│ │ ├── main_window.py # 10 个 Tab 挂载
│ │ ├── tabs/ # 每个 Tab 的实现
│ │ │ ├── sessions_tab.py # 账户列表主 Tab(含右键批量动作)
│ │ │ ├── sessions/ # 从 sessions_tab.py 拆出的子模块
│ │ │ │ ├── workers.py # 完善SESSION / 查订阅 / GCash 硬查 workers
│ │ │ │ ├── actions.py # 右键批量操作 Mixin
│ │ │ │ ├── dialogs.py # 详情 / 粘贴导入 / 出库对话框
│ │ │ │ └── ...
│ │ │ ├── emails_tab.py
│ │ │ ├── cards_tab.py
│ │ │ ├── cdk_tab.py
│ │ │ ├── phone_pool_tab.py
│ │ │ ├── proxy_tab.py
│ │ │ ├── billing_tab.py
│ │ │ ├── ads_tab.py
│ │ │ ├── run_tab.py
│ │ │ └── log_tab.py
│ │ └── *_dialog.py # PayPal 批量 / 手机号绑定 / GCash 订阅 / QR 出码
│ ├── modules/ # 业务模块(一个模块 = 一条业务链路)
│ │ ├── register_account.py # 注册主流程
│ │ ├── register_rpc.py # 调 vendor/register-protocol RPC
│ │ ├── ads_ui_signup*.py # AdsPower UI 建号
│ │ ├── open_plus.py # 卡池开通 Plus
│ │ ├── refresh_at.py # AT 刷新 / SID 轮换
│ │ ├── discount_eligibility.py # 开通前优惠预检
│ │ ├── duola_cards.py # Duola 卡商 SDK
│ │ ├── external_open.py # CDK 开通(chong SaaS)
│ │ ├── external_redeem.py # CDK 兑换(chong SaaS)
│ │ ├── paypal_links.py # PayPal 批量取链
│ │ ├── gcash_*.py # GCash 资格 / 订阅
│ │ ├── phone_bind.py # 手机号绑定 + CPA
│ │ ├── cpa_pack.py # CPA JSON 打包
│ │ └── cha_qr_test.py # QR 出码测试
│ ├── workflow/ # 编排层
│ │ ├── account_workflow.py # 单账户完整链路
│ │ ├── pool_runner.py # 单池调度(注册 or 开通)
│ │ ├── dual_pool_runner.py # 双池并发(注册补水位 + 开通消费)
│ │ ├── batch_runner.py # 通用批量执行器
│ │ └── batch_opener.py # 批量开通
│ └── shared/ # 通用层
│ ├── db.py # SQLite 单写线程池
│ ├── config.py # config.json 读写
│ ├── logger.py # 双输出:文件 + Qt signal → UI
│ ├── ipweb_proxy.py # IPWEB / IPRoyal 代理池
│ ├── ipweb_geo_data/ # 9 国州/市地理数据(IPWEB 格式,公开)
│ ├── card_pool.py # 卡池抽卡 / 归还 / 补卡
│ ├── cdk_pool.py # CDK 池(多渠道隔离)
│ ├── email_pool.py # 邮箱池
│ ├── phone_pool.py # 手机号池
│ ├── account_status.py # 账户状态机
│ └── ...
├── vendor/
│ └── register-protocol/ # 自包含注册引擎(stdin/stdout JSON-RPC)
│ ├── rpc_server.py # 主进程入口
│ ├── auth_flow.py # OAuth 状态机
│ ├── password_setup.py # 设密链路
│ ├── enable_totp_mfa.py # TOTP 开启
│ ├── enable_passkey_mfa.py # Passkey 开启
│ ├── relogin_with_password.py # 密码 + TOTP 重登
│ ├── relogin_with_passkey.py # 密码 + Passkey 重登
│ ├── phone_auth_flow.py # 手机号注册
│ ├── sentinel_browser.py # Playwright Sentinel token 采集
│ ├── icloud_mail_provider.py # iCloud 邮箱池后台客户端
│ ├── outlook_provider.py # Outlook Graph API
│ ├── imap_outlook_provider.py # Outlook IMAP+OAuth
│ ├── xpg_mail_provider.py # XPGMail 面板
│ ├── mail_provider.py # CF Worker 邮箱
│ ├── smsbower_mail_provider.py # SMSBower 内建邮箱
│ ├── sms_provider.py # HeroSMS 接码
│ ├── passkey_virtual_authenticator.py # 本地 WebAuthn
│ └── ...
├── docs/
│ ├── ARCHITECTURE.md # 架构与数据流
│ ├── SETUP.md # 外部服务接入指南
│ ├── refresh-at.md # session 刷新协议详解
│ ├── import-format.md # 账号导入格式
│ ├── paypal-links.md # PayPal 取链接口
│ ├── gcash-*.md # GCash 相关
│ ├── phone-bind-cpa.md # 手机号绑定 + CPA 生成
│ └── superpowers/ # 迭代过程中的规格文档
│ ├── plans/
│ └── specs/
├── scripts/
│ ├── extract_ipweb_geo.py # 从 IPWEB xlsx 抽州市数据
│ └── fill_geo_zh_names.py # 补中文城市名
├── tests/
│ ├── test_cdk_pool_and_geo.py
│ └── test_relogin_proxy_rotate.py
├── ph_plus_auto.py # PH-Link 提链 + Stripe 绑卡 + checkout 全链路
├── ads_launcher.py # AdsPower 远端浏览器管理
├── config.example.json # 配置模板(首次启动自动复制为 config.json)
├── requirements.txt
├── LICENSE # MIT
├── SECURITY.md # 安全 / 隐私说明
└── README.md
| Tab | 主要能力 |
|---|---|
| 账户列表 | 导入 / 查看 / 筛选 / 批量右键(查订阅、GCash 硬查、PayPal 批量取链、手机号绑定 + CPA、复制完善 SESSION、出库 CSV、标记作废) |
| 邮箱池 | 邮箱源管理(iCloud / Outlook / xpgmail / CF Worker) |
| 卡池 | 抽卡 / 归还 / 补卡(Duola)/ 手动导入 / 卡状态 |
| CDK | 多渠道(upi / kakao / pix / gcash / ideal / paypal)CDK 池,导入 / 分配 / 状态跟踪 |
| 手机号池 | E.164 手机号 + poll_url 批量导入,每号最多绑 3 号,供 CPA 生成用 |
| 代理 | IPWEB / IPRoyal / 自定义 socks5 / http 代理列表,出口国切换 |
| 账单 | 各 SaaS 服务的 api_key / base_url 配置(cha / chong / duola / captcha) |
| ADS | AdsPower 远端浏览器配置、profile 池管理 |
| 运行 | 双池并发调度:注册补水位 + 开通消费;单池单流程;停止/进度/统计 |
| 日志 | 分级 / 分账户 / 分线程 / 人话化的实时日志(Qt signal 转发) |
详见 docs/SETUP.md。这里只给结论:
- 注册模式(
runtime.register_mode):remote-ui= AdsPower UI 建号;protocol= 走vendor/register-protocol协议链路(更快但风控更容易命中)。 - 邮箱源(
mail.email_source):random(CF Worker) /outlook/xpgmail/icloud。四选一,icloud需自建后台。 - 开通模式(
runtime.open_mode):bind= 卡池 PH-Link 绑卡;cdk= CDK 兑换充值(需 chong SaaS)。 - 代理(
ipweb/proxies/iproyal):至少配一样,ipweb.mode=http_sid是最常用的动态住宅方案。 - 风控:注册量大时打开
captcha.enabled=true接 hCaptcha 求解器。
- 启动 GUI
- 账户列表 → 粘贴导入:
session-token一行一个 / 或email----password----totp----session----AT - 右键 → 复制完善 SESSION → 剪贴板得到 chatgpt.com 官网同款 JSON
- 账户列表选中若干行
- 右键 → 查询订阅 → 列表显示 plan / plus_verified
- 支持 AT 失效自动密码 + TOTP 重登(前提是账号有 password + totp_secret)
- 代理 Tab 配一条能过 CF 的代理
- 卡池 Tab 导入卡或配 Duola 自动开卡
- 账单 Tab 填
cha.api_key - 账户列表选择状态 =
REGISTERED / AT_OK的账号 - 运行 Tab → 单池 open 模式 → 启动
- CDK Tab 导入 UPI / KakaoPay / 等 CDK 码
- 账单 Tab 填
chong.api_key runtime.open_mode = cdk,选好cdk_channel- 运行 Tab 启动
# 单元测试
python tests/test_cdk_pool_and_geo.py
python tests/test_relogin_proxy_rotate.py
# Headless UI smoke(不弹窗,验证组件能实例化)
python -c "from PyQt6.QtWidgets import QApplication; import sys; app=QApplication(sys.argv); from src.ui.main_window import MainWindow; MainWindow()"编码风格约定:
- 新增业务模块 →
src/modules/<name>.py,暴露一个纯函数入口(不要 QThread,UI 层再包) - 长时任务 →
src/ui/tabs/sessions/workers.py里加 QThread 子类,或用src/workflow/batch_runner.py - DB 写 → 一律走
DBWriter.get().submit(sql, params)(单写线程避免锁竞争) - 日志 →
logging.getLogger(__name__),用LogCtx.bind(email); LogCtx.stage("register")打上下文
调试脚本命名约定:以 _tmp_ / _test_ / _bind_ / _last_ 开头,.gitignore 会兜住不进 git。
| 文档 | 内容 |
|---|---|
docs/ARCHITECTURE.md |
五模块架构(注册 / 完善 / 开通 / 外部 / 变现),数据流、状态机、线程模型 |
docs/SETUP.md |
外部服务接入清单、CF Email Worker 部署样例、Duola / cha / chong 配置示范 |
docs/refresh-at.md |
Session 刷新协议详解(对齐 cha 线上抓包) |
docs/import-format.md |
账号 3 种导入格式 |
docs/paypal-links.md |
PayPal 批量取链 API |
docs/gcash-eligibility-check.md, docs/gcash-pay.md |
GCash 资格硬查 + 订阅创建 |
docs/phone-bind-cpa.md |
手机号绑定 + Codex PKCE 生成 CPA |
docs/superpowers/ |
迭代过程中的 spec / plan(历史设计文档,未删) |
SECURITY.md |
提交前敏感串检查清单 |
本项目按 MIT 协议开源,仅供技术研究:
- 仓库不附带任何真实账号、卡号、代理凭证、API Key、TOTP secret、Recovery code、cookie、 session token。示例配置全部是占位符,测试用例都是 mock。
- 使用本代码接触真实 OpenAI 账号 / 真实支付流程 / 真实代理服务,产生的账号封停、支付纠纷、 法律风险,全部由使用者自行承担。
- 作者 不对代码可用性、正确性、稳定性作任何保证。协议 / API / 风控随时可能被服务方 调整,历史 commit 里的抓包结论在你 clone 那一刻可能就已经过时。