[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-79950":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":13,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":16,"compositeScore":17,"rankGlobal":8,"rankLanguage":8,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":8,"pushedAt":8,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":15,"lastSyncTime":26,"discoverSource":27},79950,"chatgpt2cpa","WTFGEDelphia\u002Fchatgpt2cpa","WTFGEDelphia",null,"Python",81,14,79,1,0,2,3,43.73,"MIT License",false,"main",true,[],"2026-06-12 04:01:26","# chatgpt2cpa\n\n把 ChatGPT \u002F Codex session JSON 转成可下载的 CPA `auth.json` 或 sub2api `sub2api-data` 的本地工具。\n\n这个项目提供一个本地 Web UI，用来提取和整理 OpenAI\u002FCodex 会话里的认证字段，并导出为兼容 CPA \u002F sub2api 的 JSON。它默认面向本机使用，因为会处理高敏感度 token。\n\n项目灵感参考自 [tocpa.pages.dev](https:\u002F\u002Ftocpa.pages.dev)，但当前仓库是独立维护的 Python 实现，并额外补充了 `session -> sub2api` 导出能力。\n\n本项目与 OpenAI 无官方关联，也不适合部署到公网。\n\n## 能做什么\n\n- 粘贴 ChatGPT \u002F Codex session JSON\n- 自动提取 `access_token`、`refresh_token`、`id_token`、`account_id`、`plan_type`\n- 在缺少真实 `id_token` 时自动合成 CPA 占位 token\n- 直接导出兼容 CPA 的 `auth.json`\n- 直接导出兼容 sub2api 的 `sub2api-data`\n- 在 sub2api 导出里，自动把当前项目生成的 CPA auth JSON 原样放进 `accounts[0].credentials`\n- 在页面里显示摘要、告警，并自动触发下载\n\n## 快速开始\n\n如果你只是想本地跑起来，最短路径是：\n\n```bash\npython -m venv .venv\nsource .venv\u002Fbin\u002Factivate\npython -m pip install -U pip\npython -m pip install -e '.[dev]'\nchatgpt2cpa --host 127.0.0.1 --port 8000\n```\n\n然后打开 `http:\u002F\u002F127.0.0.1:8000`。\n\n要求：Python 3.10 或更高版本。\n\n## 安装方式\n\n### 1. 源码开发安装\n\n适合本地开发、调试和跑测试。\n\n```bash\npython -m venv .venv\nsource .venv\u002Fbin\u002Factivate\npython -m pip install -U pip\npython -m pip install -e '.[dev]'\n```\n\n### 2. 从 GitHub tag 直接安装\n\n适合希望直接按 tag 安装源码包的场景。\n\n```bash\npython -m pip install \"chatgpt2cpa @ git+https:\u002F\u002Fgithub.com\u002FWTFGEDelphia\u002Fchatgpt2cpa.git@v0.1.0\"\n```\n\n说明：\n\n- `v0.1.0` 是示例版本标签；如果后续发了新 tag，替换成目标版本即可\n- 这种方式会从 GitHub 拉取对应 tag 的源码并安装\n- 如果你更偏好安装构建产物，见下面的 wheel 安装方式\n\n### 3. 从 GitHub Release 的 wheel 安装\n\n适合不想直接拉源码、只想安装发布产物的场景。\n\n```bash\npython -m pip install .\u002Fchatgpt2cpa-0.1.0-py3-none-any.whl\n```\n\n## 启动方式\n\n### 1. 开发模式\n\n```bash\nsource .venv\u002Fbin\u002Factivate\nuvicorn chatgpt2cpa.app:app --app-dir src --reload\n```\n\n### 2. 安装包模式\n\n```bash\nchatgpt2cpa --host 127.0.0.1 --port 8000\n```\n\n也可以用模块方式启动：\n\n```bash\npython -m chatgpt2cpa --host 127.0.0.1 --port 8000\n```\n\n### 3. 显式对外监听\n\n默认应该只绑定 `127.0.0.1`。如果你确实需要在局域网、容器或远程调试环境里暴露服务，才显式指定：\n\n```bash\nchatgpt2cpa --host 0.0.0.0 --port 8000\n```\n\n## 页面使用说明\n\n- 点击 `生成下载（CPA）` 会执行 `session -> cpa`\n- 点击 `生成下载（sub2api）` 会执行 `session -> sub2api`\n- 默认文件名：\n  - CPA: `codex-\u003Cemail>-\u003Cplan_type>-cpa.json`\n  - sub2api: `codex-\u003Cemail>-\u003Cplan_type>-sub2api.json`\n- 手动输入文件名时，后端会自动补上 `-cpa` 或 `-sub2api`\n- 成功生成后，结果标题右侧的 `下载 JSON` \u002F `复制文件名` 会启用\n- 如果浏览器拦截自动下载，可以在结果标题右侧再次点击 `下载 JSON`\n\n## 构建与发布\n\n### 本地构建发布包\n\n```bash\nsource .venv\u002Fbin\u002Factivate\npython -m pip install -U pip\npython -m pip install -e '.[dev]'\npython -m build\npython -m twine check dist\u002F*\n```\n\n### 发布前推荐做的完整校验\n\n```bash\nbash scripts\u002Frelease_check.sh\n```\n\n当 `main` 上的代码已经准备好发布，并且你推送了和 `pyproject.toml` 版本一致的 `v*` tag 之后，GitHub Actions 会自动：\n\n- 跑测试\n- 执行打包校验\n- 创建 GitHub Release\n- 上传 `wheel` 和 `sdist` 到 Release 附件\n\n例如当前版本是 `0.1.0`，对应 tag 应该是 `v0.1.0`。\n\n这个脚本会做几件事：\n\n- 清理旧的 `build\u002F` 和 `dist\u002F`\n- 构建 `wheel` 和 `sdist`\n- 执行 `twine check`\n- 检查模板和静态资源是否真的被打进包里\n- 在临时虚拟环境里安装 wheel，并验证 `chatgpt2cpa --help`\n\n更完整的发版步骤，以及“旧 tag 不会自动补触发 release”的补救方式，见 [docs\u002Frelease-runbook.md](docs\u002Frelease-runbook.md)。\n\n## 测试\n\n```bash\nsource .venv\u002Fbin\u002Factivate\npython -m pytest -v\n```\n\n## 安全说明\n\n- 这个工具会处理高敏感度 token，只建议在本机运行\n- 不要把它直接部署到公网\n- 不要把真实 token 提交到 Git 仓库、Issue、日志或截图中\n- 默认保持 `127.0.0.1` 绑定；只有确实需要时，才显式改成 `0.0.0.0`\n\n如果你发现了安全问题，请先看 [SECURITY.md](SECURITY.md)，不要直接在公开 Issue 里贴真实 token 或可复用的敏感数据。\n\n## 贡献\n\n- 提交代码前先看 [CONTRIBUTING.md](CONTRIBUTING.md)\n- 行为规范见 [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)\n\n## 开源协议\n\n本项目使用 [MIT License](LICENSE)。\n\n## 发布边界\n\n- 当前发布链路聚焦 GitHub Releases，不自动发布到公共 PyPI\n- `build_payload.py` 只作为设计参考，不属于项目运行时依赖\n","chatgpt2cpa 是一个本地工具，用于将 ChatGPT 或 Codex 会话的 JSON 转换为兼容 CPA 和 sub2api 的认证文件。其核心功能包括自动提取和整理 OpenAI\u002FCodex 会话中的认证字段（如 access_token、refresh_token 等），并导出为 `auth.json` 或 `sub2api-data` 格式的 JSON 文件。该工具提供了一个本地 Web UI 来简化操作流程，并支持在缺少真实 id_token 时自动生成占位 token。适用于需要从 ChatGPT 或 Codex 会话中提取认证信息并在本地环境中使用的场景，特别适合开发者进行本地调试或测试使用。由于涉及高敏感度 token 的处理，项目建议仅限于本机运行，不推荐部署到公网。","2026-06-11 03:58:39","CREATED_QUERY"]