纯前端单页面工具,用来把 ChatGPT Web 登录 session JSON 转换成 CPA、sub2api、Cockpit Tools、9router、Codex auth.json、AxonHub 或 Codex-Manager 可导入 JSON。
本项目现在主要用于不同工具之间的 JSON 格式转换。
OpenAI 已限制直接使用 ChatGPT Web 登录 session 转换后导入来跳过 Codex OAuth add phone / 手机绑定验证的方式。也就是说,本项目不能再用来绕过 Codex 登录时的手机绑定要求。
你仍然可以把已有的 ChatGPT Web session、9router OAuth JSON、Codex auth.json、AxonHub auth.json 或 Codex-Manager JSON 转换成其它受支持格式,但转换结果是否能被目标工具成功使用,取决于 OpenAI 和目标工具当前的认证限制、账号权限以及 token 是否仍然有效。
ChatGPT Web session 通常不包含 OAuth 文件里常见的 refresh_token,因此 access token 过期后不能自动刷新。Free 账号即使转换了,也可能没有权限调用需要付费账号权限的模型或功能。
支持粘贴或拖入 ChatGPT Web session JSON,例如包含:
user.emailaccessTokensessionTokenexpiresaccount.idaccount.planType
也支持粘贴或拖入 9router Codex OAuth JSON,例如包含 accessToken、refreshToken、expiresAt、providerSpecificData.chatgptAccountId 和 providerSpecificData.chatgptPlanType。
也支持粘贴或拖入 Codex 原生 auth.json,例如包含 auth_mode、OPENAI_API_KEY、tokens.access_token、tokens.refresh_token、tokens.id_token、tokens.account_id 和 last_refresh。
也支持粘贴或拖入 AxonHub Codex auth.json,例如包含 tokens.access_token、tokens.refresh_token、tokens.id_token 和 last_refresh。
也支持粘贴或拖入 Codex-Manager 批量导入 JSON,例如包含 tokens.access_token、tokens.refresh_token、tokens.id_token 和 meta.label。
页面也会尝试从 accessToken 的 JWT payload 中补充邮箱、账号 ID、用户 ID、计划类型和过期时间。
CPA:生成 Codex CPA auth JSON,包含type: "codex"、access_token、session_token、id_token、email、account_id、套餐和过期时间等字段;缺少真实id_token时会根据 session 与 access token claims 构造 Codex 可解析的占位 JWT claims。sub2api:生成兼容 Sub2API 项目的exported_at/proxies/accounts结构,账号平台为openai,类型为oauth;每个账号对象包含expires_at和auto_pause_on_expired,其中expires_at来自该账号 access token 的 JWTexp秒级时间戳。可选择为所有输出账号写入同一个 HTTP、HTTPS、SOCKS5 或 SOCKS5H 代理。Cockpit:生成 Cockpit Tools Codex JSON 导入可识别的扁平 token 格式,包含id_token、access_token、refresh_token、account_id、email、expired等字段。9router:生成 9router Codex OAuth JSON,包含accessToken、refreshToken、expiresAt、providerSpecificData、provider、authType、priority、isActive、createdAt和updatedAt等字段。Codex:生成原生 Codexauth.json,包含auth_mode: "chatgpt"、OPENAI_API_KEY: null、tokens.id_token/access_token/refresh_token/account_id和last_refresh。缺少真实refresh_token时保留空字符串,access token 过期后不能自动刷新。AxonHub:生成 AxonHub Codex auth.json,包含auth_mode: "chatgpt"、last_refresh和tokens.access_token/refresh_token/id_token。缺少真实refresh_token时会写入__missing_refresh_token__占位值,方便在 access token 过期前试用;过期后不能自动刷新。Codex-Manager:生成 Codex-Manager 批量导入 JSON,包含tokens.access_token/refresh_token/id_token和meta.label/workspace_id/chatgpt_account_id/note。缺少真实refresh_token时保留空字符串,避免被 Codex-Manager 误判为可刷新账号。 ChatGPT Web session 通常不包含 OAuth 文件里常见的refresh_token,因此 access token 过期后不能自动刷新。
选择 sub2api 输出格式后,可以开启 写入代理配置 。该功能默认关闭,代理信息只保留在当前页面内存中,不会写入本地存储。
代理地址支持以下形式:
http://host:port
https://user:pass@host:port
socks5://host:port
socks5h://user:pass@host:port
用户名和密码支持 URL 编码,例如密码中的 @、: 或 | 可以分别写成 %40、%3A 或 %7C。导出时会解码为 sub2api 使用的明文字段。代理名称默认根据协议、主机和端口生成,也可以手动修改。
开启后,代理 URL 或名称无效会阻止生成、复制和下载输出,直到配置被修正。输出代理固定使用 status: "active" 和 fallback_mode: "none",不会写入备用代理、过期提醒天数等配置。
直接打开:
docs/index.html
所有解析和转换都在浏览器本地完成,不上传 token,不写入本地存储。