支持以下浏览器类型;外部客户端模式需要保持客户端运行:
- 内置 Chromium:
FINGERPRINT_BROWSER=bundled,安装程序会配置浏览器路径。 - 普通 Chrome/Chromium:
FINGERPRINT_BROWSER=custom,通过CUSTOM_BROWSER_PATH指定可执行文件;留空时会尝试查找系统 Chrome。 - BitBrowser 官方下载页:默认 API 为
http://127.0.0.1:54345。 - AdsPower:默认 API 为
http://127.0.0.1:50325,启用鉴权时还需 API Key。 - 其他指纹浏览器:
FINGERPRINT_BROWSER=custom_api并设置CUSTOM_BROWSER_API。默认CUSTOM_BROWSER_API_MODE=auto保持 BitBrowser 兼容;对接自己的 REST API 时改为generic,在 WebUI 填写 API Key、鉴权请求头以及创建/列表/启动/关闭/删除/更新路径即可。启动接口返回ws、cdp、endpoint或debugPort任一字段即可。
在 .env 中用 FINGERPRINT_BROWSER=bitbrowser|bundled|custom|adspower|custom_api 切换。默认使用 BitBrowser;所有网页注册流程统一通过 Chromium CDP 自动化。
generic 模式的最小约定:创建接口接收 {name, remark, fingerprint, proxy} 并返回 profile ID;列表接口返回数组或 data.items/data.profiles;启动、关闭、删除、更新接口接收配置的 CUSTOM_BROWSER_API_ID_FIELD(默认 id)。路径支持 {id} 和 {profile_id} 占位符,方法可分别配置为 GET/POST/DELETE。
WebUI 左侧“网络出口”页提供三种互斥模式:
| 模式 | PROXY_MODE |
行为 |
|---|---|---|
| 自动轮换 | clash_auto |
从 Clash 代理组选择可响应节点,注册流程可按失败或批次继续换节点 |
| 固定节点 | clash_fixed |
始终强制使用 CLASH_FIXED_NODE,脚本传入其他节点也不会覆盖 |
| 动态住宅 IP | residential |
使用单个住宅代理或持久轮换代理池,可调用供应商换 IP 接口 |
六个平台可覆盖全局模式:OUTLOOK_PROXY_MODE、CLAUDE_PROXY_MODE、CHATGPT_PROXY_MODE、GROK_PROXY_MODE、KIRO_PROXY_MODE、GITHUB_PROXY_MODE。值为 inherit、clash_auto、clash_fixed 或 residential。例如:
PROXY_MODE=clash_auto
OUTLOOK_PROXY_MODE=clash_auto
CLAUDE_PROXY_MODE=residential
CHATGPT_PROXY_MODE=residential
GROK_PROXY_MODE=residential
GITHUB_PROXY_MODE=residential
REG_FACTORY_PROXY=http://user:pass@host:portClaude 的登录、验证码和 magic-link 验证必须保持同一个出口 IP。住宅模式请在代理供应商控制台生成 Sticky/粘性会话 endpoint;按请求轮换 IP 的 endpoint 会在 Claude 任务启动时被检测并拒绝。多个 Sticky endpoint 可写入 REG_FACTORY_PROXY_POOL,提交邮箱前被风控时程序会先轮换代理池,再创建新的浏览器 profile。只有在确认供应商通过其他机制保持会话时,才设置 CLAUDE_ALLOW_ROTATING_PROXY=true 跳过检测。
编排器会为每个平台创建独立子进程环境;住宅代理认证直接写入该平台新建的浏览器 profile。网络页的“轮换/测试目标”可逐个平台验证出口 IP。
Clash 模式先安装 Clash Verge 2.5.2 Windows x64。在 Clash Verge 的“设置”中进入 Clash 设置或内核设置,找到“外部控制器”或 External Controller,按下面顺序配置:
- 启用 External Controller,并填仅本机监听地址,例如
127.0.0.1:9097。面板的控制器地址填写为http://127.0.0.1:9097。mihomo 常见默认端口是9090。 - 在同一页设置 Secret、Controller Secret 或 API Secret。将完全相同的值写入
CLASH_SECRET。未设置密码时,CLASH_SECRET也必须留空。 - 找到 mixed-port 或混合端口,例如
7897,写入CLASH_PROXY=http://127.0.0.1:7897。 - 保存后应用设置或重载内核,再在网络页点击“应用并测试 IP”。外部控制器只应监听
127.0.0.1,不要公开到网络。
默认值:
CLASH_API=http://127.0.0.1:9097
CLASH_PROXY=http://127.0.0.1:7897
CLASH_GROUP=GLOBAL
CLASH_SECRET=固定节点模式额外配置:
PROXY_MODE=clash_fixed
CLASH_FIXED_NODE=美国 01Plus Codex 导入只处理已经开通的账号,不会提取优惠链、绑卡或发起支付。每个账号登录后都会进入手机号接码验证阶段,验证成功后才继续 Codex OAuth 和 SUB2API 导入。WebUI 的 Plus 导入页支持批量账号,并可选择接码平台、换号次数、等待时间、并发数、ChatGPT 节点和 SUB2API 分组。
账号行支持 Outlook、iCloud、ChatGPT session token 和完整 Codex OAuth JSON。Outlook RT 与 client_id 顺序均可,也兼容 Hotmail/Live/MSN、两段/三段记录、Tab、逗号、竖线、分号及 email:password:
email@outlook.com----password----refresh_token----client_id
email@outlook.jp----password----client_id----refresh_token
email@hotmail.com----password----refresh_token
email@live.jp:password
email@icloud.com
__Secure-next-auth.session-token=...
{"email":"...","access_token":"...","refresh_token":"...","plan_type":"plus","codex_phone_status":"verified"}
Outlook Graph RT/client_id 可用时优先通过 Graph 读取 OpenAI 邮箱验证码,否则使用账号密码在浏览器登录 Outlook 取码。iCloud 地址使用已配置的 ICLOUD_MAIL_* API。原始 ChatGPT session cookie 会先验证登录态,再走手机号验证和 Codex OAuth;普通短期 access token 不能直接换出 refresh token,会明确拒绝。完整 OAuth JSON 仅在自身带 codex_phone_status=verified 时允许直接导入。
住宅代理支持 http、https、socks4 和 socks5;BitBrowser 窗口支持 http、https 和 socks5。代理池优先于单个代理;.env 中用逗号分隔,WebUI 中可每行填写一个:
PROXY_MODE=residential
REG_FACTORY_PROXY=http://user:pass@host:port
REG_FACTORY_PROXY_POOL=http://user:pass@host-a:8000,http://user:pass@host-b:8000
REG_FACTORY_PROXY_ROTATE_URL=https://provider.example/rotate
REG_FACTORY_PROXY_ROTATE_METHOD=GETREG_FACTORY_PROXY_ROTATE_URL 可留空。点击“立即轮换”时,程序会推进代理池索引,并在配置后调用供应商接口。当前池索引保存在 runtime/state/residential_proxy_index.txt。
新建浏览器 profile 时会写入当前住宅代理的地址、端口、用户名和密码。代理池轮换后,下一个新建窗口使用新的代理;已经打开的注册窗口不会被强制改 IP,以免破坏当前登录会话。
旧变量 RESIDENTIAL_PROXY、DIRECT_PROXY 和 RESIDENTIAL_PROXY_POOL 仍兼容;新配置应使用 REG_FACTORY_*。
- Python 3.10+ 是主流程必需依赖。
- Codex K12 新适配器由 Python/FastAPI 提供独立服务;源码运行不额外要求 Node.js。
- Gmail Android 流程还需要 BlueStacks、ADB、Appium 2.x 和 UiAutomator2 driver。
Windows:
Copy-Item .env.example .envmacOS / Linux:
cp .env.example .env真实进程环境变量优先于 .env。WebUI 保存配置后,新任务立即使用新值,不需要重启主服务。
本地邮箱/Cookie 读取接口默认只允许回环地址调用。需要由其他本机服务统一携带密钥时,设置 REG_FACTORY_ASSET_API_KEY,并使用 X-API-Key 或 Bearer Token。ChatGPT 健康扫描默认通过 ASSET_SCAN_CHATGPT_PLUS_TRIAL=true 标注 Plus 免费试用或明确 0 元优惠,活动标识由 ASSET_SCAN_CHATGPT_PLUS_CAMPAIGN 控制;完整接口见 本地资产 API。
.env.example 是全部配置项和默认值的唯一完整清单。通常只需要填写当前流程涉及的分组。
| 分组 | 常用变量 | 使用场景 |
|---|---|---|
| 浏览器 | FINGERPRINT_BROWSER、CUSTOM_BROWSER_*、BITBROWSER_API、ADSPOWER_* |
浏览器注册流程 |
| 网络出口 | PROXY_MODE、CLASH_*、REG_FACTORY_PROXY* |
Clash 节点或住宅代理 |
| Claude 验证 | CLAUDE_VISION_*、CLAUDE_HCAPTCHA_* |
Claude 图形验证 |
| 通用视觉 | VISION_*、VOTE_*、IMAGE_EDIT_* |
多模型视觉投票 |
| ChatGPT iCloud 邮箱 | CHATGPT_EMAIL_PROVIDER、ICLOUD_MAIL_* |
ChatGPT 不使用 Outlook 池时 |
| 临时邮箱 | YYDS_API_KEY 等 provider 配置 |
Claude/Grok 不使用 Outlook 池时 |
| 接码 | SMSMAN_*、SMS_API_NAME、SMS_TOKEN、HERO_SMS_* |
手机验证;firefox.fun 使用 APIName 标识账号,token + 项目 ID 调用接口 |
| SUB2API | SUB2API_* |
Codex / Grok 下游导入 |
| CPA | CPA_URL、CPA_MGMT_KEY、CODEX_AUTH_URL_SOURCE |
Codex 授权地址与凭据导入 |
| chatgpt2api | CHATGPT2API_URL、CHATGPT2API_KEY |
普通 ChatGPT 网页号导入 |
密钥必须留在 .env 或进程环境变量中。不要把真实值写进 .env.example、README、测试和截图。
ChatGPT 使用 iCloud 邮箱时,将 CHATGPT_EMAIL_PROVIDER=icloud,并填写 ICLOUD_MAIL_API_KEY。默认接口地址为 https://mail.no-replyca.xyz;email.manageh.shop 仅是接口文档站。ICLOUD_MAIL_TYPE=icloud-code、ICLOUD_MAIL_SERVICE=openai 用于申请 ChatGPT 接码邮箱;需要普通 iCloud 子邮箱时改用 ICLOUD_MAIL_TYPE=icloud,对应 /api/user/email?type=icloud&apikey=...。程序随后轮询 /api/user/mail 获取验证码。ICLOUD_MAIL_API_BASE 也兼容直接填写完整的 /api/user/email?... 地址。
创建 iCloud 邮箱时程序会自动请求 share=1,并将返回的 /api/share/{share_token} 保存到 ChatGPT session JSON 的 mail_api_url 字段。该链接免 API Key,可直接查看邮箱 HTML,适合后续手动登录取码;分享链接等同于邮箱读取权限,请按敏感凭据保管。
重要:提取 Graph RT 必须配置可接收验证码的辅助邮箱。
Outlook Graph 提取遇到 Microsoft
proofs/Add安全信息页时,默认使用OUTLOOK_GRAPH_RECOVERY_PROVIDER=yyds创建辅助临时邮箱,提交地址后轮询验证码并完成绑定。要用自定义邮箱则设OUTLOOK_GRAPH_RECOVERY_PROVIDER=custom,并沿用CUSTOM_MAIL_*配置;也可以设置OUTLOOK_GRAPH_RECOVERY_PROVIDER=outlook使用自有 Outlook 辅助邮箱。自有邮箱格式为email@outlook.com----password----refresh_token----client_id,程序会先通过 Graph API 验证 refresh token,再从 Inbox/Junk 轮询 Microsoft 安全码。也可写成yyds,outlook按顺序做故障转移。设为OUTLOOK_GRAPH_RECOVERY_EMAIL=false可恢复旧的跳过行为,但不保证能提取 RT。
推荐从 WebUI 的“环境配置”页面执行测试。命令行也可检查 Clash:
python -m common.proxy_switch list
python -m common.proxy_switch current
python -m common.proxy_switch rotate
python _clash_verge.py ping配置问题的常见表现和处理方式见 常见问题。