cc-sync

一款可以从 cc-switch 导出 ChatGPT OAuth 登录凭证,支持 CPA / Sub2API / Cockpit / 9Router 四种格式,的工具

项目背景

cc-switch 是一个 AI 客户端配置管理工具,把多个 OpenAI ChatGPT 账号的 OAuth session 信息(id_tokenaccess_tokenrefresh_tokensession_token)统一存储在 SQLite 中。

但 cc-switch 的数据库格式和各个中转工具(cli-proxy-api、Sub2API、Anti-Gravity Cockpit、9Router 等)所需的导入格式不同。cc-sync 就是中间的格式转换桥工具。

安装

依赖

  • Python 3.12+
  • curl(用于令牌刷新)
git clone https://github.com/hzhsec/cc-sync.git
cd cc-sync
pip install -r requirements.txt  # 实际上无外部依赖,仅 Python 标准库

快速开始

1. 查看帮助

python export_codex.py --help

2. 只导出不刷新(适用于已有有效令牌)

python export_codex.py --no-refresh

输出到当前目录:

xx@gmail.com.cpa.2026-05-12_09-26-01.json
xx@gmail.com.sub2api.2026-05-12_09-26-01.json
xx@gmail.com.cockpit.2026-05-12_09-26-01.json
xx@gmail.com.9router.2026-05-12_09-26-01.json
...

3. 刷新令牌后导出(如果令牌失效)

python export_codex.py --proxy http://127.0.0.1:7897

4. 指定输出目录

python export_codex.py --output ./exports

5. 只导出特定格式

python export_codex.py --formats cpa sub2api

6. 只导出某个账号

python export_codex.py --account quposev825dd

7. 指定数据库路径

python export_codex.py --db ~/.cc-switch/cc-switch.db

实测CPA可以用
image.png

输出格式

CPA

用于 cli-proxy-api 等 OpenAI Codex 工具。

{
  "type": "codex",
  "account_id": "00000000-0000-4000-9000-000000000000",
  "email": "mark@example.com",
  "plan_type": "plus",
  "id_token": "eyJhbGciOiJub25l...",
  "id_token_synthetic": true,
  "access_token": "eyJhbGciOiJSUzI1Ni...",
  "session_token": "eyJhbGciOiJkaXIi...",
  "last_refresh": "2026-05-12T04:43:58.105Z",
  "expired": "2026-08-06T14:29:36.155Z"
}

Sub2API

Sub2API 格式

{
  "accounts": [{
    "platform": "openai",
    "type": "oauth",
    "credentials": {
      "access_token": "eyJ...",
      "chatgpt_account_id": "...",
      "expires_in": 7465538
    }
  }]
}

Cockpit

Anti-Gravity Cockpit 格式。

{
  "type": "codex",
  "id_token": "eyJhbGciOiJub25l...",
  "access_token": "eyJ...",
  "account_id": "...",
  "email": "mark@example.com",
  "expired": "2026-08-06T14:29:36.155Z"
}

9Router

9Router 格式。

{
  "accessToken": "eyJ...",
  "testStatus": "active",
  "providerSpecificData": {
    "chatgptAccountId": "...",
    "chatgptPlanType": "plus"
  },
  "provider": "codex",
  "authType": "oauth"
}

完整示例见 examples/ 目录。

项目结构

cc-sync/
├── export_codex.py          # 主脚本
├── examples/                # 各格式示例(占位符)
│   ├── mark@example.cpa.2026-05-12_12-44-36.json
│   ├── mark@example.sub2api.2026-05-12_12-44-12.json
│   ├── mark@example.cockpit.2026-05-12_12-44-24.json
│   └── mark@example.9router.2026-05-12_12-44-31.json
├── LICENSE
└── README.md
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐