号池工具CLIProxyAPI 使用流程详解

6 阅读2分钟

🎯 什么是 CLIProxyAPI?

CLIProxyAPI 是一个开源代理工具,它可以将网页版 ChatGPT/Codex 的账号通过 OAuth 认证转换成标准的 OpenAI 兼容 API。

核心价值

  • 🔓 网页账号转 API:免费/低价的网页版账号也能当 API 用
  • 🔄 多账号轮询:一个账号额度用完,自动切到下一个
  • 🌐 标准兼容:转换后任何支持 OpenAI API 的工具都能用
  • 💰 降低成本:使用网页版订阅,远比直接买 API 便宜

📊 整体架构流程图

graph TB
    subgraph "Web 账号来源"
        A1[ChatGPT 网页版]
        A2[Claude Code 网页版]
        A3[Gemini CLI]
    end

    subgraph "OAuth 认证"
        B1[OAuth 登录]
        B2[获取凭据文件]
        B3[id_token + access_token + refresh_token]
    end

    subgraph "CLIProxyAPI 代理服务器"
        C1[本地 Docker/源码部署]
        C2[配置文件 config.yaml]
        C3[Token 管理模块]
        C4[API 转换模块]
        C5[多账号轮询模块]
    end

    subgraph "客户端工具"
        D1[Continue VS Code 插件]
        D2[Claude Code CLI]
        D3[OpenCode]
        D4[Cursor]
        D5[任何 OpenAI 兼容工具]
    end

    A1 -->|OAuth 授权| B1
    A2 -->|OAuth 授权| B1
    A3 -->|OAuth 授权| B1
    B1 --> B2
    B2 --> B3

    B3 -->|复制到 config.yaml| C2
    C2 --> C3
    C3 --> C4
    C4 --> C5

    C5 -->|"localhost:8317/v1"| D1
    C5 -->|"localhost:8317/v1"| D2
    C5 -->|"localhost:8317/v1"| D3
    C5 -->|"localhost:8317/v1"| D4
    C5 -->|"localhost:8317/v1"| D5

    %% 颜色配置 - 深色背景 + 白色文字
    classDef webAccount fill:#1565C0,stroke:#0D47A1,stroke-width:3px,color:#FFFFFF,font-size:14px
    classDef oauthAuth fill:#EF6C00,stroke:#BF360C,stroke-width:3px,color:#FFFFFF,font-size:14px
    classDef cliProxy fill:#7B1FA2,stroke:#4A148C,stroke-width:3px,color:#FFFFFF,font-size:14px
    classDef client fill:#2E7D32,stroke:#1B5E20,stroke-width:3px,color:#FFFFFF,font-size:14px

    %% 应用样式类
    class A1,A2,A3 webAccount
    class B1,B2,B3 oauthAuth
    class C1,C2,C3,C4,C5 cliProxy
    class D1,D2,D3,D4,D5 client

🔄 详细工作流程

步骤 1:获取网页账号

graph LR
    A["注册/拥有网页账号"] --> B["ChatGPT Plus<br/>或 Claude Code 订阅"]
    B --> C["越南/印尼等地区<br/>Shopee 送 3 个月"]
    C --> D["成本约 30 元/3月"]

    %% 颜色配置
    classDef step1 fill:#1565C0,stroke:#0D47A1,stroke-width:3px,color:#FFFFFF
    classDef step2 fill:#1565C0,stroke:#0D47A1,stroke-width:3px,color:#FFFFFF
    classDef step3 fill:#F9A825,stroke:#F57F17,stroke-width:3px,color:#000000
    classDef step4 fill:#2E7D32,stroke:#1B5E20,stroke-width:3px,color:#FFFFFF

    class A step1
    class B step2
    class C step3
    class D step4

步骤 2:OAuth 认证获取凭据

graph TB
    subgraph OAuth认证流程
        A[访问 OAuth 授权页面] --> B[登录 ChatGPT 账号]
        B --> C[授权 CLIProxyAPI 访问]
        C --> D[获取凭据文件]
    end

    D --> E["id_token<br/>包含用户信息"]
    D --> F["access_token<br/>用于 API 调用"]
    D --> G["refresh_token<br/>用于自动续期"]

    %% 颜色配置
    classDef oauthFlow fill:#1565C0,stroke:#0D47A1,stroke-width:3px,color:#FFFFFF
    classDef credential fill:#FF9800,stroke:#F57C00,stroke-width:3px,color:#FFFFFF
    classDef token fill:#2E7D32,stroke:#1B5E20,stroke-width:3px,color:#FFFFFF

    class A,B,C oauthFlow
    class D credential
    class E,F,G token

步骤 3:配置 CLIProxyAPI

graph TB
    A[部署 CLIProxyAPI] --> B{部署方式}
    B -->|推荐| B1[Docker 部署]
    B -->|高级| B2[源码编译部署]

    B1 --> C[编辑 config.yaml]
    B2 --> C

    C --> D["codex-api-key:<br/>api-key: 你的凭据文件内容"]

    D --> E[启动服务]
    E --> F["监听 localhost:8317"]

    %% 颜色配置
    classDef start fill:#1565C0,stroke:#0D47A1,stroke-width:3px,color:#FFFFFF
    classDef config fill:#FF9800,stroke:#F57C00,stroke-width:3px,color:#FFFFFF
    classDef success fill:#2E7D32,stroke:#1B5E20,stroke-width:3px,color:#FFFFFF
    classDef choice fill:#9C27B0,stroke:#6A1B9A,stroke-width:3px,color:#FFFFFF

    class A start
    class B choice
    class B1,B2 choice
    class C,D config
    class E,F success

步骤 4:客户端工具调用

graph LR
    A[客户端工具] --> B[配置 API Base URL]
    B --> C["localhost:8317/v1"]
    C --> D["API Key 随意填<br/>例如 dummy"]
    D --> E[调用 API]

    E --> F[CLIProxyAPI 处理]
    F --> G[多账号轮询]
    G --> H[Token 自动刷新]
    H --> I[返回标准 OpenAI 响应]

    %% 颜色配置
    classDef client fill:#1565C0,stroke:#0D47A1,stroke-width:3px,color:#FFFFFF
    classDef config fill:#FF9800,stroke:#F57C00,stroke-width:3px,color:#FFFFFF
    classDef process fill:#9C27B0,stroke:#6A1B9A,stroke-width:3px,color:#FFFFFF
    classDef success fill:#2E7D32,stroke:#1B5E20,stroke-width:3px,color:#FFFFFF

    class A client
    class B,C,D config
    class E,F,G,H process
    class I success

🎬 完整调用时序图

sequenceDiagram
    autonumber

    participant U as 👤 用户
    participant T as 💻 客户端工具<br/>(Continue/Codex)
    participant P as 🔄 CLIProxyAPI
    participant O as 🌐 OpenAI 服务

    U->>T: 发送请求 "帮我写个函数"
    T->>P: POST localhost:8317/v1/chat/completions

    Note over P: 📊 检查可用账号
    alt 有多个账号
        P->>P: 选择未限流的账号
    end

    Note over P: 🔑 检查 Token 是否过期
    alt access_token 过期
        P->>O: 用 refresh_token 刷新
        O-->>P: 返回新 access_token
    end

    P->>O: 转发请求 (使用 access_token)
    O-->>P: 返回 AI 响应

    alt 触发 429 限流
        P->>P: ⚠️ 标记该账号限流
        P->>P: 🔄 切换到下一个账号
        P->>O: 🔄 重试请求
    end

    P-->>T: 返回标准 OpenAI 格式响应
    T-->>U: 显示 AI 回复

    Note over U: ✅ 用户感觉就像在用标准 OpenAI API

📝 实际配置示例

config.yaml 示例

# API 密钥(客户端工具使用)
api-keys:
  - "proxy_001"    # 客户端工具填这个 key

# Codex OAuth 配置
codex-api-key:
  # 复制你下载的那个 JSON 文件的内容
  - type: "codex"
    email: "0nuvmzj99uf@duckmail.sbs"
    expired: "2026-03-08T19:34:16+08:00"
    id_token: "eyJhbGciOiJSUzI1NiIs..."
    account_id: "7e7509ba-87b5-4b30-b682-53a940ce3101"
    access_token: "eyJhbGciOiJSUzI1NiIs..."
    refresh_token: "rt_6RIsdPLsZq_sfQXaLDXK7Cw..."
    last_refresh: "2026-02-26T19:34:19+08:00"

VS Code Continue 插件配置示例

{
  "models": [
    {
      "title": "GPT-5",
      "provider": "openai",
      "model": "gpt-5",
      "apiBase": "http://localhost:8317/v1",
      "apiKey": "proxy_001"
    }
  ]
}

⚠️ 注意事项

1. 账号有效期

  • 你下载的凭据文件有效期到 2026-03-08
  • 临时邮箱 duckmail.sbs 可能也会过期
  • 建议:用自己的长期邮箱注册 ChatGPT 账号

2. 使用限制

  • Codex 网页版有并发限制(约每 3 小时 150 次请求)
  • CLIProxyAPI 会自动轮询多账号
  • 如果只有一个账号,可能触发 429 限流

3. 安全性

  • config.yaml 包含敏感凭据,不要提交到 Git
  • CLIProxyAPI 只在本地运行,不会上传凭据
  • 生产环境建议使用环境变量存储凭据

🚀 快速开始

# 1. 克隆 CLIProxyAPI
git clone https://github.com/router-for-me/CLIProxyAPI.git
cd CLIProxyAPI

# 2. 安装依赖(根据你的系统)
npm install  # 或使用 Docker

# 3. 编辑配置文件
cp config.example.yaml config.yaml
# 将你的凭据文件内容粘贴到 config.yaml 的 codex-api-key 部分

# 4. 启动服务
npm start  # 或 docker-compose up -d

# 5. 测试 API
curl http://localhost:8317/v1/models \
  -H "Authorization: Bearer proxy_001"

📚 相关资源


💡 总结

网页 ChatGPT/Codex 账号
         ↓
   OAuth 认证获取凭据
         ↓
   配置到 CLIProxyAPICLIProxyAPI 转换为标准 API
         ↓
   任何 OpenAI 兼容工具都能用

核心优势:把网页版的免费/低价账号,变成像 OpenAI API 一样通用的开发能力!