Rewrite README for Gmail catch-all and current workflow

Document Gmail IMAP as the recommended path, keep Hotmail/CloudMail options, and refresh CLI/env/setup sections.
This commit is contained in:
chaos committed 2026-07-11 17:39:27 +08:00
1 parent c5aeac6873
commit d8e65ae4ef
1 file changed
+231 -184
+231 -184
View File
@@ -1,15 +1,8 @@
# grok_reg-protocol_cpa # grok-reg-protocol-cpa
基于 **Chromium + DrissionPage + turnstilePatch** 的免费 Grok 账号注册机。 基于 **Chromium + DrissionPage + turnstilePatch** 的免费 Grok 账号注册机。
本分支在原版注册机基础上新增了两点: 注册成功后产出两类凭证:
1. **Hotmail / Outlook 邮箱凭证池**
支持 `邮箱----密码----ClientID----Token` 四段格式读取与 XOAUTH2 IMAP 收验证码。
2. **协议优先的 导出**
注册拿到 SSO 后,优先用 **纯 HTTP Device Flow**(`curl_cffi` + `sso` cookie)铸造 CPA 用的 `xai-*.json`;协议失败再回退原浏览器 consent 逻辑。
一条成功链路会产出两类凭证:
| 产物 | 用途 | 路径 | | 产物 | 用途 | 路径 |
|------|------|------| |------|------|------|
@@ -19,26 +12,149 @@
> **硬约束:SSO ≠ OIDC。** > **硬约束:SSO ≠ OIDC。**
> 免费 Grok 4.5 **不能**用账本里的 sso JWT 直接打 API;必须再走 > 免费 Grok 4.5 **不能**用账本里的 sso JWT 直接打 API;必须再走
> `accounts.x.ai` device-auth 铸 OIDC,写成 CPA 的 `type=xai` 认证文件。 > `accounts.x.ai` device-auth 铸 OIDC,写成 CPA 的 `type=xai` 认证文件。
> 本仓库的协议路径正是用 **SSO cookie 自动完成** 这一步(无需再弹浏览器时优先走协议)。 > 有 SSO 时优先走 **纯 HTTP Device Flow**;失败再回退浏览器 consent。
本仓库**自包含** OIDC/CPA 铸造代码(`cpa_xai/`):
| 路径 | 说明 |
|------|------|
| `cpa_xai/protocol_mint.py` | **新增**:SSO → 纯 HTTP Device Flow(verify / approve / token) |
| `cpa_xai/mint.py` | 协议优先,失败回退 `mint_with_browser` |
| `cpa_xai/browser_confirm.py` | 原逻辑:有头 Chromium 完成 consent |
| `cpa_export.py` | 注册成功 hook |
| `scripts/backfill_cpa_xai_from_accounts.py` | 存量账号批量补 CPA |
| `scripts/export_cpa_xai_from_grok_auth.py` | 从 `~/.grok/auth.json` 导出 |
--- ---
## 本版主要改动 ## 当前推荐链路(Gmail catch-all)
### 1. Hotmail / Outlook:`邮箱----密码----ClientID----Token` 本仓库当前实配以 **Gmail IMAP + Cloudflare catch-all 域名** 为主:
设置: 1. 用 catch-all 域名生成随机注册邮箱(如 `xxx@zhangyunuo.net`)
2. 验证码转发到 Gmail,经 IMAP 拉取
3. 注册拿到 SSO
4. 协议优先 mint OIDC → `cpa_auths/xai-*.json`
```
[Cloudflare catch-all 域名 → Gmail]
↓ 注册 accounts.x.ai
accounts_cli.txt email----password----sso
↓
grok2api 池 (可选) SSO → Web 非 4.5 模型
↓
OIDC mint(协议优先 → 浏览器回退)
↓
cpa_auths/xai-email.json 【注册机主导出】
↓ (cpa_copy_to_hotload=true 时)
CPA auth-dir 热加载 【可选】
↓
CLIProxyAPI :8317 model=grok-4.5
```
也支持:`cloudmail` / `hotmail|outlookmail` / `cloudflare` / `duckmail` / `yyds`。
---
## 环境
| 依赖 | 说明 |
|------|------|
| Linux / macOS | 协议 mint **不需要**浏览器;回退浏览器时需要桌面 `DISPLAY` |
| `uv` + Python 3.13 | 见 `pyproject.toml` / `uv.lock`;可选 `mise` |
| Chromium | 注册流程 + 协议失败回退时需要 |
| 代理(按需) | 访问 xAI / accounts.x.ai 不通时配置 `proxy` / `cpa_proxy` |
| 可选 | grok2api `:8000`、CLIProxyAPI(CPA) `:8317` |
```bash
cd /path/to/grok-reg-protocol-cpa
uv sync
uv run python -c "from DrissionPage import Chromium; from curl_cffi import requests; print('OK')"
```
或用 mise:
```bash
mise install
mise run deps
```
---
## 快速开始(Gmail)
```bash
cd grok-reg-protocol-cpa
uv sync
# 1) 主配置
cp config.example.json config.json
# 2) 环境变量(可选;也可直接写进 config.json)
cp .env.example .env
# 编辑 .env:
# GMAIL_USER=you@gmail.com
# GMAIL_PASSWORD=xxxx xxxx xxxx xxxx # Gmail 应用专用密码
# 3) 在 config.json 中至少确认:
# "email_provider": "gmail",
# "defaultDomains": "your-catchall-domain.com",
# "gmail_imap_user": "you@gmail.com", # 或依赖 .env 的 GMAIL_USER
# "gmail_imap_password": "app password", # 或依赖 .env 的 GMAIL_PASSWORD
# "proxy": "", # 需要时填 http://127.0.0.1:7890
# "cpa_export_enabled": true
# 4) 注册 1 个号(含 SSO + CPA 导出)
uv run python -u register_cli.py --extra 1 --threads 1
```
GUI:
```bash
uv run python grok_register_ttk.py
# 或 mise run gui
```
---
## 配置
1. 复制模板并编辑(模板内 `"//…"` 键是注释,加载时忽略):
```bash
cp config.example.json config.json
```
2. **字段详解见 `config.example.json` 内注释键。**
### 环境变量(`.env`)
真实进程环境变量优先于 `.env`;多数项也可写在 `config.json`。
| 变量 | 用途 |
|------|------|
| `GMAIL_USER` / `GMAIL_PASSWORD` | Gmail IMAP(`email_provider=gmail`) |
| `MAIL_USER` / `MAIL_PASSWORD` | 兼容别名(`gmail_code_listener`) |
| `CLOUDMAIL_URL` / `CLOUDMAIL_ADMIN_EMAIL` / `CLOUDMAIL_PASSWORD` | CloudMail 管理端 |
| `GROK2API_APP_KEY` | 远端 grok2api Admin |
| `API_REVERSE_TOOLS` | 可选:外部 `cpa_xai` 父目录 |
| `CPA_EXPORT` | `auto_register` 是否导出 CPA(`0/false` 关) |
| `https_proxy` / `http_proxy` | 代理回退 |
模板见 `.env.example`。
### 邮箱模式
#### A. Gmail + catch-all(推荐)
```json
{
"email_provider": "gmail",
"defaultDomains": "your-catchall-domain.com",
"gmail_imap_user": "you@gmail.com",
"gmail_imap_password": "xxxx xxxx xxxx xxxx",
"gmail_imap_host": "imap.gmail.com",
"gmail_imap_port": 993,
"gmail_resend_after_sec": 45
}
```
说明:
- `defaultDomains`:Cloudflare 等 catch-all 域名,用于生成注册邮箱
- 验证码实际进入 Gmail;用 **应用专用密码**,不是登录密码
- 也可把账号密码只写在 `.env` 的 `GMAIL_USER` / `GMAIL_PASSWORD`
#### B. Hotmail / Outlook
```json ```json
{ {
@@ -48,13 +164,11 @@
} }
``` ```
凭证文件(可从模板复制):
```bash ```bash
cp mail_credentials.example.txt mail_credentials.txt cp mail_credentials.example.txt mail_credentials.txt
``` ```
**每行格式(四段,`----` 分隔):** 每行四段(`----` 分隔):
```text ```text
邮箱----密码----ClientID----Token 邮箱----密码----ClientID----Token
@@ -64,25 +178,64 @@ cp mail_credentials.example.txt mail_credentials.txt
|----|------| |----|------|
| 邮箱 | Hotmail / Outlook 主邮箱 | | 邮箱 | Hotmail / Outlook 主邮箱 |
| 密码 | 邮箱登录密码(注册机侧保留;IMAP 走 OAuth) | | 密码 | 邮箱登录密码(注册机侧保留;IMAP 走 OAuth) |
| ClientID | 微软应用(Azure AD 应用)Client ID | | ClientID | Azure AD 应用 Client ID |
| Token | Microsoft OAuth2 **refresh_token**(XOAUTH2 IMAP 用) | | Token | Microsoft OAuth2 **refresh_token**(XOAUTH2 IMAP) |
示例: 运行时摘要:
```text - 默认先用原邮箱,后续用随机 plus alias
your@hotmail.com----mailPassword----xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx----0.AXcA...refresh_token... - `outlook.office365.com`(可回退 `imap-mail.outlook.com`)XOAUTH2 IMAP 收码
- refresh_token 轮换会**自动回写** `mail_credentials.txt`
#### C. CloudMail
需要 `cloudmail_url` / `cloudmail_admin_email` / `cloudmail_password` + `defaultDomains`。
也可用环境变量 `CLOUDMAIL_*`。
### 代理优先级
| 字段 | 作用 |
|------|------|
| `proxy` | **注册** Chromium + 邮箱等 HTTP |
| `cpa_proxy` | **OIDC mint**(协议 HTTP + 回退浏览器 + probe) |
```
cpa_proxy > proxy > 环境变量 https_proxy/http_proxy
``` ```
运行时行为摘要: ### CPA / OIDC 关键项
- 默认先用原邮箱,后续用随机 plus alias(如 `name+k8s2p9qa@domain`) | 字段 | 默认 | 含义 |
- 经 `outlook.office365.com`(可回退 `imap-mail.outlook.com`)XOAUTH2 IMAP 拉验证码 |------|------|------|
- refresh_token 若轮换会**自动回写** `mail_credentials.txt` | `cpa_export_enabled` | `true` | 注册成功后是否 mint OIDC |
- 成功 / 失败 / 占用中的 alias 会参与去重与 `hotmail_max_aliases_per_account` 计数 | `cpa_prefer_protocol` | `true` | 有 SSO 时先走纯 HTTP 协议 mint |
| `cpa_protocol_only` | `false` | `true`=协议失败也不回退浏览器 |
| `cpa_protocol_poll_timeout_sec` | `90` | 协议路径 token 轮询超时 |
| `cpa_auth_dir` | `./cpa_auths` | 主导出目录 |
| `cpa_copy_to_hotload` | `false` | 是否复制到 CPA 热加载目录 |
| `cpa_hotload_dir` | `""` | CPA `auth-dir`(仅 copy 时) |
| `cpa_base_url` | `https://cli-chat-proxy.grok.com/v1` | 免费 Build **必须**此上游 |
| `cpa_headless` | `false` | 回退浏览器建议有头 |
| `cpa_force_standalone` | `true` | 回退时独立 Chromium |
| `cpa_mint_cookie_inject` | `true` | 回退时注入注册 cookie |
| `cpa_mint_workers` | `-1` | mint 并发:`-1` 自动;`0` 内联;`1-10` 固定 |
| `cpa_mint_required` | `false` | mint 失败是否整号失败 |
相关配置见 `config.example.json` 中 `hotmail_*` 注释键。 ### 落盘约定
### 2. 协议 OIDC → CPA(失败回退浏览器) | 路径 | 是否必须 | 说明 |
|------|----------|------|
| `.env` | 可选 | Gmail / CloudMail 等密钥(勿提交) |
| `config.json` | 是 | 本地实配(勿提交) |
| `mail_credentials.txt` | hotmail 模式必须 | 四段凭证池 |
| `accounts_cli.txt` / `accounts_*.txt` | 是 | 主账本 `email----password----sso` |
| `cpa_auths/xai-*.json` | 开 export 时 | CPA 格式 OIDC 归档 |
| `emails_used.txt` / `emails_error.txt` | 运行时 | 邮箱占用/失败记录 |
| CPA `…/auths/xai-*.json` | 可选 | 热加载;由 `cpa_copy_to_hotload` 控制 |
---
## 协议 OIDC → CPA(失败回退浏览器)
``` ```
注册成功拿到 sso cookie 注册成功拿到 sso cookie
@@ -98,23 +251,9 @@ your@hotmail.com----mailPassword----xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx----0.AX
cpa_auths/xai-<email>.json mint_method=browser cpa_auths/xai-<email>.json mint_method=browser
``` ```
实测协议路径约数秒级即可完成(含 probe);浏览器路径约 40–60s/号。 实测:协议路径约数秒级;浏览器路径约 40–60s/号。
关键配置: 日志示例:
| 字段 | 默认 | 含义 |
|------|------|------|
| `cpa_prefer_protocol` | `true` | 有 SSO 时先走纯 HTTP 协议 mint |
| `cpa_protocol_only` | `false` | `true`=协议失败也不回退浏览器(调试用) |
| `cpa_protocol_poll_timeout_sec` | `90` | 协议路径 token 轮询超时 |
| `cpa_export_enabled` | `true` | 注册成功后是否 mint OIDC |
| `cpa_auth_dir` | `./cpa_auths` | 主导出目录 |
| `cpa_base_url` | `https://cli-chat-proxy.grok.com/v1` | 免费 Build **必须**此上游 |
| `cpa_headless` | `false` | 回退浏览器时建议有头 |
| `cpa_force_standalone` | `true` | 回退时独立 Chromium,不复用注册 tab |
| `cpa_mint_cookie_inject` | `true` | 回退时注入注册 cookie,尽量跳过二次登录 |
日志里可看到:
```text ```text
[cpa] mint try protocol (SSO HTTP device flow) [cpa] mint try protocol (SSO HTTP device flow)
@@ -123,120 +262,25 @@ your@hotmail.com----mailPassword----xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx----0.AX
[cpa] mint_method=protocol [cpa] mint_method=protocol
``` ```
协议失败时类似: 本仓库自包含铸造代码:
```text | 路径 | 说明 |
[cpa] mint protocol failed: ...
[cpa] mint fallback → browser
[cpa] mint_method=browser
```
---
## 整链示意
```
[邮箱 Hotmail/Outlook 或 CloudMail 等]
↓ 注册 accounts.x.ai
accounts_*.txt / accounts_cli.txt email----password----sso
↓
grok2api 池 (可选) SSO → Web 非 4.5 模型
↓
OIDC mint(协议优先 → 浏览器回退)
↓
cpa_auths/xai-email.json 【注册机主导出】
↓ (cpa_copy_to_hotload=true 时)
CPA auth-dir 热加载 【可选】
↓
CLIProxyAPI :8317 model=grok-4.5
```
---
## 环境
| 依赖 | 说明 |
|------|------| |------|------|
| macOS / Linux + 桌面 | 协议 mint **不需要**浏览器;回退浏览器时需要 `DISPLAY` / 本机 GUI | | `cpa_xai/protocol_mint.py` | SSO → 纯 HTTP Device Flow |
| `uv` + Python 3.13 | 本目录 `pyproject.toml` / `uv.lock`;可选 `mise` | | `cpa_xai/mint.py` | 协议优先,失败回退浏览器 |
| `chromium` | 仅注册 + 协议失败回退时需要 | | `cpa_xai/browser_confirm.py` | 有头 Chromium 完成 consent |
| 代理 | xAI / accounts.x.ai 通常需要,如 `http://127.0.0.1:7890` | | `cpa_export.py` | 注册成功 hook |
| 可选 | 本机 grok2api `:8000`、CLIProxyAPI(CPA) `:8317` | | `scripts/backfill_cpa_xai_from_accounts.py` | 存量账号批量补 CPA |
| `scripts/export_cpa_xai_from_grok_auth.py` | 从 `~/.grok/auth.json` 导出 |
```bash
cd /path/to/grok_reg-protocol_cpa
uv sync
uv run python -c "from DrissionPage import Chromium; from curl_cffi import requests; print('OK')"
```
或用 mise:
```bash
mise install
mise run deps
```
--- ---
## 配置 ## 命令
1. 复制模板并编辑(模板内 `"//…"` 键是注释,加载时忽略):
```bash
cp config.example.json config.json
# 编辑:email_provider、proxy、hotmail_*、cpa_*
```
2. **字段详解见 `config.example.json` 内注释键**。
### 代理优先级
| 字段 | 作用 |
|------|------|
| `proxy` | **注册** Chromium + 邮箱等 HTTP |
| `cpa_proxy` | **OIDC mint**(协议 HTTP + 回退浏览器 + probe) |
```
cpa_proxy > proxy > 环境变量 https_proxy/http_proxy
```
配置优先于 shell 里的 `https_proxy`,避免「config 写了 7890 却被环境变量盖掉」。
### 与 CPA 相关的关键项(摘要)
| 字段 | 含义 | 建议 |
|------|------|------|
| `cpa_export_enabled` | 注册成功后是否 mint OIDC | `true` |
| `cpa_prefer_protocol` | SSO 协议优先 | `true` |
| `cpa_protocol_only` | 仅协议、不回退浏览器 | 调试时 `true`,日常 `false` |
| `cpa_auth_dir` | **主导出目录** | `./cpa_auths` |
| `cpa_copy_to_hotload` | 是否复制到 CPA 热加载目录 | 可选,默认 `false` |
| `cpa_hotload_dir` | CPA `auth-dir` | 仅 copy 时需要 |
| `cpa_base_url` | 上游 API 根 | **必须** `https://cli-chat-proxy.grok.com/v1` |
| `cpa_headless` | 回退浏览器是否无头 | **`false`** |
| `cpa_force_standalone` | 回退时独立浏览器 | **`true`** |
| `cpa_proxy` | mint 专用代理 | 如 `http://127.0.0.1:7890` |
| `cpa_mint_required` | mint 失败是否整号失败 | 通常 `false` |
CLI 与 GUI 都会在注册成功后读这些配置。GUI 下 CPA 导出会串行,避免多窗口抢焦点。
### 落盘约定
| 路径 | 是否必须 | 说明 |
|------|----------|------|
| `mail_credentials.txt` | hotmail 模式必须 | `邮箱----密码----ClientID----Token` |
| `accounts_cli.txt` / `accounts_*.txt` | 是 | 主账本 `email----password----sso` |
| `cpa_auths/xai-*.json` | 是(开 export 时) | CPA 格式 OIDC 归档 |
| CPA `…/auths/xai-*.json` | 可选 | 热加载;由 `cpa_copy_to_hotload` 控制 |
---
## 命令:批量注册 + 认证
前置: 前置:
```bash ```bash
cd /path/to/grok_reg-protocol_cpa cd /path/to/grok-reg-protocol-cpa
# 代理建议写在 config.json 的 proxy / cpa_proxy # 代理建议写在 config.json 的 proxy / cpa_proxy
# 回退浏览器时需要桌面会话 # 回退浏览器时需要桌面会话
export DISPLAY=${DISPLAY:-:0} export DISPLAY=${DISPLAY:-:0}
@@ -265,7 +309,7 @@ uv run python grok_register_ttk.py
### B. 存量号补 CPA(只 mint,不重新注册) ### B. 存量号补 CPA(只 mint,不重新注册)
账本需含 SSO(第三段)。协议优先,有 SSO 时通常**无需**弹浏览器: 账本需含 SSO(第三段)。有 SSO 时通常**无需**弹浏览器:
```bash ```bash
uv run python -u scripts/backfill_cpa_xai_from_accounts.py \ uv run python -u scripts/backfill_cpa_xai_from_accounts.py \
@@ -286,7 +330,7 @@ uv run python -u scripts/backfill_cpa_xai_from_accounts.py \
| `--probe` | 检查是否列出 `grok-4.5` | | `--probe` | 检查是否列出 `grok-4.5` |
| `--headless` | 回退浏览器时无头(不推荐) | | `--headless` | 回退浏览器时无头(不推荐) |
### C. 从 `~/.grok/auth.json` 导出 CPA 文件 ### C. 从 `~/.grok/auth.json` 导出
```bash ```bash
uv run python scripts/export_cpa_xai_from_grok_auth.py --out-dir ./cpa_auths uv run python scripts/export_cpa_xai_from_grok_auth.py --out-dir ./cpa_auths
@@ -324,8 +368,15 @@ curl -sS http://127.0.0.1:8317/v1/chat/completions \
|------|------| |------|------|
| `--extra N` | **再新注册 N 个**(推荐) | | `--extra N` | **再新注册 N 个**(推荐) |
| `--count N` | 账号**总数目标**(含已有);已达标则退出 | | `--count N` | 账号**总数目标**(含已有);已达标则退出 |
| `--threads N` | 并发 1–10 | | `--threads N` | 注册并发 1–10 |
| `--mint-workers N` | CPA mint 并发:`-1`=config/auto;`0`=内联;`1-10`=固定 |
| `--mint-queue-max N` | mint 队列背压:`-1`=auto(2×workers);`0`=不限制 |
| `--accounts-file` | 账本路径 | | `--accounts-file` | 账本路径 |
| `--fast` / `--no-fast` | 快速模式(默认开)/ 关闭 |
| `--no-browser-reuse` | 每号强制 quit 浏览器 |
| `--browser-recycle-every N` | 复用 N 次后完整回收 |
| `--cookie-snapshot` | 注册成功写 cookie 快照 |
| `--inline-mint` | 强制注册线程内联 mint(调试) |
--- ---
@@ -333,13 +384,14 @@ curl -sS http://127.0.0.1:8317/v1/chat/completions \
| 现象 | 原因 / 处理 | | 现象 | 原因 / 处理 |
|------|-------------| |------|-------------|
| 协议 `sso invalid` | SSO 过期或无效;会回退浏览器;检查账本第三段 | | Gmail 收不到码 | 检查应用专用密码、catch-all 是否进 Gmail、`defaultDomains`、IMAP 是否开启 |
| 协议 `sso invalid` | SSO 过期/无效;会回退浏览器;检查账本第三段 |
| 协议 verify/approve 失败 | 会话态变化 / 风控;看日志后自动回退浏览器 | | 协议 verify/approve 失败 | 会话态变化 / 风控;看日志后自动回退浏览器 |
| 一直 `authorization_pending` | 浏览器路径未完成 consent;需到「设备已授权」且 token 200 | | 一直 `authorization_pending` | 浏览器路径未完成 consent;需到「设备已授权」且 token 200 |
| Cloudflare / Turnstile | 回退浏览器时关 headless、开 turnstilePatch、检查代理 | | Cloudflare / Turnstile | 回退浏览器时关 headless、开 turnstilePatch、检查代理 |
| Hotmail 收不到码 | 检查四段凭证、ClientID/Token、IMAP 主机与 alias 计数 | | Hotmail 收不到码 | 检查四段凭证、ClientID/Token、IMAP 主机与 alias 计数 |
| 有 token 但无 grok-4.5 | `cpa_base_url` 是否为 `cli-chat-proxy` | | 有 token 但无 grok-4.5 | `cpa_base_url` 是否为 `cli-chat-proxy` |
| 注册成功但无 `cpa_auths` | `cpa_export_enabled`?看 `cpa_auth_failed.txt` | | 注册成功但无 `cpa_auths` | `cpa_export_enabled`?看 `cpa_auths/cpa_auth_failed.txt` |
调试原则:以 **token 端点返回 `access_token` + refresh_token** 为准;probe 看 `/v1/models` 是否含 `grok-4.5`。 调试原则:以 **token 端点返回 `access_token` + refresh_token** 为准;probe 看 `/v1/models` 是否含 `grok-4.5`。
@@ -348,9 +400,11 @@ curl -sS http://127.0.0.1:8317/v1/chat/completions \
## 目录结构 ## 目录结构
``` ```
grok_reg-protocol_cpa/ grok-reg-protocol-cpa/
register_cli.py # CLI 批量注册 register_cli.py # CLI 批量注册 + mint 流水线
grok_register_ttk.py # 浏览器注册核心 + Hotmail 等 grok_register_ttk.py # 浏览器注册核心(多邮箱 provider)
auto_register.py # 另一套自动注册入口
gmail_code_listener.py # Gmail 验证码监听辅助
cpa_export.py # 成功 hook cpa_export.py # 成功 hook
cpa_xai/ cpa_xai/
protocol_mint.py # SSO 纯 HTTP Device Flow(协议优先) protocol_mint.py # SSO 纯 HTTP Device Flow(协议优先)
@@ -361,32 +415,25 @@ grok_reg-protocol_cpa/
backfill_cpa_xai_from_accounts.py backfill_cpa_xai_from_accounts.py
export_cpa_xai_from_grok_auth.py export_cpa_xai_from_grok_auth.py
config.example.json config.example.json
config.json # 本地实配(勿外泄) .env.example
mail_credentials.example.txt # 邮箱----密码----ClientID----Token 模板 config.json # 本地实配(勿提交)
.env # 本地密钥(勿提交)
mail_credentials.example.txt # Hotmail 四段模板
mail_credentials.txt # 本地邮箱池(勿提交) mail_credentials.txt # 本地邮箱池(勿提交)
accounts_cli.txt # 主账本 accounts_cli.txt # 主账本(勿提交)
cpa_auths/ # xai-<email>.json(分享包勿带) cpa_auths/ # xai-<email>.json(勿提交)
turnstilePatch/ turnstilePatch/
pyproject.toml / uv.lock / mise.toml pyproject.toml / uv.lock / mise.toml
``` ```
--- ---
```bash
cd grok_reg-protocol_cpa
uv sync
cp config.example.json config.json
cp mail_credentials.example.txt mail_credentials.txt
# 填 hotmail 四段凭证 + proxy,再运行
uv run python -u register_cli.py --extra 1
```
---
## 安全 ## 安全
- `config.json`、`mail_credentials.txt`、账本、`cpa_auths/*.json` 含密码与 refresh_token,**权限 600 / 勿提交 git / 勿塞进分享包** - `config.json`、`.env`、`mail_credentials.txt`、账本、`cpa_auths/*.json` 含密码与 token
**权限建议 600;勿提交 git;勿塞进分享包**
- 免费 Build 有额度与风控;批量 mint 请控速(`--sleep`) - 免费 Build 有额度与风控;批量 mint 请控速(`--sleep`)
- 仓库默认已 ignore:`.env`、`config.json`、`accounts_*.txt`、`emails_*.txt`、`cpa_auths/`、`cookies/`、`logs/` 等
--- ---