[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1276":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":14,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":16,"starSnapshotCount":16,"syncStatus":14,"lastSyncTime":28,"discoverSource":29},1276,"codex-register","klsf\u002Fcodex-register","klsf","用于批量注册 OpenAI 账号、授权Codex登录生成授权文件，可直接导入cliproxyapi使用，以及批量检查凭证剩余可用额度。","",null,"TypeScript",367,128,2,17,0,1,90,3,55.33,false,"main",true,[],"2026-06-12 04:00:08","# \u003Cp align=\"center\">codex-register\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"Version\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-v1.0.6-111827\">\n  \u003Cimg alt=\"GitHub Repo stars\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fklsf\u002Fcodex-register?style=social\">\n\u003C\u002Fp>\n\n用于批量注册 OpenAI 账号、生成授权文件，并批量检查 `auth` 目录里的额度。\n\n---\n\n## 免责声明\n\n本项目仅供学习、研究与接口行为测试使用。使用者应自行确保其用途符合目标平台的服务条款、当地法律法规以及所在网络环境的合规要求。\n\n因使用本项目导致的账号风险、访问限制、数据丢失、封禁、法律责任或其他任何损失，均由使用者自行承担，项目作者与维护者不承担任何直接或间接责任。\n\n## 环境要求\n\n- Node.js 18+\n- 先安装依赖：`npm install`\n- 需要准备 `config.json`\n- 需要可用代理，默认读取 `config.json.defaultProxyUrl`\n\n## 先做这 3 步\n\n### 1）安装依赖\n\n```bash\nnpm install\n```\n\n### 2）准备配置文件\n\n把 `config.example.json` 复制为 `config.json`，至少改这几项：\n\n```json\n{\n  \"provider\": \"proxiedmail\",\n  \"defaultProxyUrl\": \"http:\u002F\u002F127.0.0.1:10808\",\n  \"defaultPassword\": \"kuaileshifu88\",\n  \"loopDelayMs\": 120000,\n  \"cliproxyApiAutoUploadAuth\": false,\n  \"cliproxyApiBaseUrl\": \"http:\u002F\u002Flocalhost:8317\",\n  \"cliproxyApiManagementKey\": \"\"\n}\n```\n\n---\n\n## 最常用命令\n\n### 开发模式运行\n\n直接跑源码：\n\n```bash\nnpm run dev\n```\n\n只跑 1 轮：\n\n```bash\nnpm run dev -- --n 1\n```\n\n### 构建\n\n```bash\nnpm run build\n```\n\n### 运行构建后的主程序\n\n```bash\nnpm run start\n```\n\n### 检查授权额度\n\n```bash\nnpm run check\nnpm run check:cpa\n```\n\n---\n\n## 主程序：`npm run dev` \u002F `npm run start`\n\n这两个命令参数是一样的：\n\n```bash\nnpm run dev -- [参数]\nnpm run start -- [参数]\n```\n\n### 常用参数\n\n- `--n \u003C次数>`\n    - 自动模式最多跑多少轮\n- `--email \u003C邮箱>`\n    - 指定单个邮箱执行, 配合 `--otp` 使用\n- `--auth`\n    - 只登录并生成授权文件，必须配合 `--email`\n- `--otp`\n    - 手动输入邮箱验证码\n- `--sign`\n    - 直接注册并授权\n- `--st`\n    - Sentinel 使用浏览器模式\n\n### 常用示例\n\n#### 自动模式只跑 1 次\n\n```bash\nnpm run dev -- --n 1\n```\n\n#### 指定邮箱，注册并授权\n\n```bash\nnpm run dev -- --email your_mail@example.com\n```\n\n#### 指定邮箱，只做登录授权\n\n```bash\nnpm run dev -- --email your_mail@example.com --auth\n```\n\n#### 指定邮箱，手动输入验证码\n\n```bash\nnpm run dev -- --email your_mail@example.com --otp\n```\n\n#### 直接注册并授权\n\n```bash\nnpm run dev -- --email your_mail@example.com --sign\n```\n\n如果要启用短信验证，见教程：\n\n- [ADD_PHONE_HERO_SMS.md](.\u002FADD_PHONE_HERO_SMS.md)\n\n---\n\n## 状态及剩余额度检查：`npm run check` \u002F `npm run check:cpa`\n\n批量检查 `auth` 目录里的授权文件额度。\n\n```bash\nnpm run check -- [参数]\nnpm run check:cpa -- [参数]\n```\n\n### 参数\n\n- `--dir \u003C目录>`\n    - 指定 auth 目录，默认 `.\u002Fauth`\n- `--limit \u003C数量>`\n    - 只检查前 N 个文件\n- `--proxy \u003C代理地址>`\n    - 指定代理，不传就用 `config.json.defaultProxyUrl`\n- `--refresh`\n    - 检查前先尝试刷新 token\n- `--verbose`\n    - 输出原始状态码和原始响应体\n- `--table`\n    - 最后输出表格\n- `--concurrency \u003C数量>` 或 `-c \u003C数量>`\n    - 并发检查数量\n- `--cpa`\n    - 从 CLIProxyAPI 的 `auth-files` 里读取并检查 auth（`npm run check:cpa` 已内置）\n\n### 示例\n\n```bash\nnpm run check\nnpm run check -- --limit 20\nnpm run check -- --concurrency 8\nnpm run check -- --limit 50 -c 10\nnpm run check -- --refresh --table\nnpm run check -- --proxy http:\u002F\u002F127.0.0.1:7890 --table\nnpm run check:cpa\nnpm run check:cpa -- --refresh --limit 20 -c 8\n```\n\n### 输出说明\n\n单个账号输出示例：\n\n```text\n[✅️][free][100.00%]someone@example.com-2026-04-21 15:33:10\n[❌️]someone@example.com-Encountered invalidated oauth token for user, failing request\n```\n\n汇总输出示例：\n\n```text\n总数 10 | 可用 8 | 限额 1 | 移除 1 | 可用额度 6.42\n```\n\n含义：\n\n- `总数`：检查的账号总数\n- `可用`：请求成功的账号数\n- `限额`：剩余额度为 `0%` 的账号数\n- `移除`：被移除的账号数（本地模式移动到 `auth\u002F401\u002F`，CPA 模式通过 API 删除）\n- `可用额度`：所有可用账号剩余额度之和，按小数累计\n\n### `check:cpa` 说明\n\n`npm run check:cpa` 会：\n\n- 从 CLIProxyAPI 的 `auth-files` 拉取 auth 列表\n- 下载其中可识别的 codex 授权文件\n- 执行和本地 `check` 相同的额度检查\n- 如果检查过程中 refresh 成功，会把**更新后的 token 回写到 CPA 对应 auth 文件**\n- 如果命中需要移除的 401 凭证，会直接通过 CPA 的 `auth-files` API 删除\n- 会根据剩余额度自动调整 CPA auth 状态：\n  - `剩余额度 ≤ 5%`：如果当前是启用状态，则调用 API 停用\n  - `剩余额度 > 5%`：如果当前是停用状态，则调用 API 启用\n  - 如果当前状态本来就符合条件，则不会重复调用 API\n\n说明：\n\n- `check:cpa` 依赖以下配置：\n  - `cliproxyApiBaseUrl`\n  - `cliproxyApiManagementKey`\n- CPA 模式下的“移除”表示通过 API 删除远端 auth 文件，不会移动到本地 `auth\u002F401\u002F`\n\n---\n\n## provider 配置说明\n\n`config.json` 里的 `provider` 可选：\n\n- `proxiedmail`\n- `gmail`\n- `gptmail`\n- `hotmail`\n- `2925`\n- `cloudflare`\n\n### 1）proxiedmail\n\n~~最省事，适合自动化。~~[已不可用]\n\n```json\n{\n  \"provider\": \"proxiedmail\"\n}\n```\n\n### 2）gmail\n\n需要配置 Gmail API token 和主邮箱：\n\n```json\n{\n  \"provider\": \"gmail\",\n  \"gmailAccessToken\": \"your_gmail_access_token\",\n  \"gmailEmailAddress\": \"your_gmail@gmail.com\"\n}\n```\n\n临时 token 获取教程见：[GMAIL_OAUTH_PLAYGROUND.md](.\u002FGMAIL_OAUTH_PLAYGROUND.md)\n\n### 3）hotmail\n\n```json\n{\n  \"provider\": \"hotmail\"\n}\n```\n\n邮箱账号放 `hotmail\u002Ftokens.txt` 文件里：\n\n`tokens.txt` 格式为：\n\n```text\n邮箱----密码----client_id----refresh_token\n```\n\n一行一个账号，例如：\n\n```text\nsomeone@hotmail.com----YourPassword123----a016c639-6112-4efe-b2cd-8ef74231bb97----M.Cxxxx...\n```\n\n说明：\n\n- 第 1 段：邮箱\n- 第 2 段：密码\n- 第 3 段：`client_id`\n- 第 4 段：`refresh_token`\n\n程序会：\n\n- 从 `tokens.txt` 随机取账号生成别名邮箱\n- 用 `refresh_token` 刷新访问令牌\n- 根据刷新后返回的 `scope` 自动选择：\n  - 包含 `outlook.office.com`：走 Outlook REST API\n  - 其他情况：走 Microsoft Graph\n- 读取收件箱和垃圾箱中的验证码邮件\n- 刷新后的 `refresh_token` 会回写到 `tokens.txt`\n\n### 4）gptmail\n\n```json\n{\n  \"provider\": \"gptmail\",\n  \"gptMailApiKey\": \"your_gptmail_api_key\",\n  \"gptMailDomain\": \"\"\n}\n```\n\n说明：\n\n- `gptMailApiKey`\n  - GPTMail API Key\n- `gptMailDomain`\n  - 可选，指定生成邮箱时使用的域名；留空则由服务端随机分配\n\n程序会：\n\n- 调用 GPTMail 的生成邮箱接口获取邮箱\n- 轮询邮件列表并读取邮件详情\n- 提取验证码\n- 命中后自动删除该邮件\n\n文档：\n\n- [GPTMail API 文档](https:\u002F\u002Fmail.chatgpt.org.uk\u002Fzh\u002Fapi)\n\n### 5）2925\n\n```json\n{\n  \"provider\": \"2925\",\n  \"2925EmailAddress\": \"your_2925@2925.com\",\n  \"2925Password\": \"your_2925_password\"\n}\n```\n\n### 6）cloudflare\n\n```json\n{\n  \"provider\": \"cloudflare\",\n  \"cloudflareEmailDomain\": \"54782.xyz\",\n  \"cloudflareApiBaseUrl\": \"https:\u002F\u002Fmail-d1-api.xxx.workers.dev\",\n  \"cloudflareApiKey\": \"your_api_key\"\n}\n```\n\n适合自有域名的邮箱注册。\nCloudflare Worker 部署说明见：[MAIL_WORKER_DEPLOY.md](.\u002FMAIL_WORKER_DEPLOY.md)\n\n---\n\n## 配置项说明\n\n- `provider`\n    - 验证码邮箱提供方\n- `defaultProxyUrl`\n    - 默认代理地址\n- `defaultPassword`\n    - 注册默认密码\n- `loopDelayMs`\n    - 自动模式每轮间隔时间，单位毫秒\n- `gmailAccessToken`\n    - Gmail API access token\n- `gmailEmailAddress`\n    - Gmail 主邮箱地址\n- `gptMailApiKey`\n    - GPTMail API Key\n- `gptMailDomain`\n    - GPTMail 指定生成邮箱时使用的域名，可留空\n- `hotmail`\n    - 使用 `.\u002Fhotmail\u002Ftokens.txt` 作为 Hotmail\u002FOutlook 账号来源\n- `2925EmailAddress`\n    - 2925 邮箱账号\n- `2925Password`\n    - 2925 邮箱密码\n- `cloudflareEmailDomain`\n    - Cloudflare Email Routing 的域名\n- `cloudflareApiBaseUrl`\n    - Cloudflare 邮件 Worker 地址\n- `cloudflareApiKey`\n    - Cloudflare 邮件 Worker 的 `x-api-key`\n- `cliproxyApiAutoUploadAuth`\n    - 授权成功后是否自动上传 auth 文件到 CLIProxyAPI\n- `cliproxyApiBaseUrl`\n    - CLIProxyAPI 管理地址，例如 `http:\u002F\u002Flocalhost:8317`\n- `cliproxyApiManagementKey`\n    - CLIProxyAPI 的 `MANAGEMENT_KEY`\n\n## CLIProxyAPI 自动上传 auth\n\n如果你希望授权成功后，把新生成的 `auth\u002F*.json` 自动上传到 CLIProxyAPI，可在 `config.json` 中开启：\n\n```json\n{\n  \"cliproxyApiAutoUploadAuth\": true,\n  \"cliproxyApiBaseUrl\": \"http:\u002F\u002Flocalhost:8317\",\n  \"cliproxyApiManagementKey\": \"your_management_key\"\n}\n```\n\n行为说明：\n\n- auth 文件仍然会先保存到本地 `.\u002Fauth`\n- 然后再调用 CLIProxyAPI 管理接口上传\n- 上传失败不会中断主流程，只会输出警告日志\n","codex-register 是一个用于批量注册 OpenAI 账号、生成授权文件并检查凭证剩余可用额度的工具。项目采用 TypeScript 编写，支持通过配置文件自定义邮箱提供商、代理服务器等参数，并提供多种命令行选项以满足不同需求，如自动模式运行、手动输入验证码登录、直接注册并授权等功能。它特别适用于需要对多个 OpenAI 账号进行管理或测试其接口行为的研究者与开发者。请注意，在使用过程中应遵守相关法律法规及平台服务条款。","2026-06-11 02:42:46","CREATED_QUERY"]