Skip to content

YYH123123813/CLIProxyAPI

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

92 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Codex Proxy

ๆ‚จ็š„ๆœฌๅœฐ Codex ็ผ–็จ‹ๅŠฉๆ‰‹ไธญ่ฝฌ็ซ™

ๅฐ† Codex Desktop ็š„่ƒฝๅŠ›ไปฅ OpenAI ๆ ‡ๅ‡†ๅ่ฎฎๅฏนๅค–ๆšด้œฒ๏ผŒๆ— ็ผๆŽฅๅ…ฅไปปๆ„ AI ๅฎขๆˆท็ซฏใ€‚

Node.js TypeScript Hono Docker License

ๅฟซ้€Ÿๅผ€ๅง‹ โ€ข ๆ ธๅฟƒๅŠŸ่ƒฝ โ€ข ๆŠ€ๆœฏๆžถๆž„ โ€ข ๅฎขๆˆท็ซฏๆŽฅๅ…ฅ โ€ข ้…็ฝฎ่ฏดๆ˜Ž

็ฎ€ไฝ“ไธญๆ–‡ | English


Codex Proxy ๆ˜ฏไธ€ไธช่ฝป้‡็บงๆœฌๅœฐไธญ่ฝฌๆœๅŠก๏ผŒๅฐ† Codex Desktop ็š„ Responses API ่ฝฌๆขไธบ OpenAI ๆ ‡ๅ‡†็š„ /v1/chat/completions ๆŽฅๅฃใ€‚้€š่ฟ‡ๆœฌ้กน็›ฎ๏ผŒๆ‚จๅฏไปฅๅœจ Cursorใ€Continueใ€VS Code ็ญ‰ไปปไฝ•ๅ…ผๅฎน OpenAI ๅ่ฎฎ็š„ๅฎขๆˆท็ซฏไธญ็›ดๆŽฅไฝฟ็”จ Codex ็ผ–็จ‹ๆจกๅž‹ใ€‚

ๅช้œ€ไธ€ไธช ChatGPT ่ดฆๅท๏ผŒ้…ๅˆๆœฌไปฃ็†ๅณๅฏๅœจๆœฌๅœฐๆญๅปบไธ€ไธชไธ“ๅฑž็š„ AI ็ผ–็จ‹ๅŠฉๆ‰‹็ฝ‘ๅ…ณใ€‚

CPA / Codex OAuth ๅนถๅ‘ๆŽˆๆƒ่ฏดๆ˜Ž

ๆœฌๆœๅŠกๆšด้œฒ CPA ๅ…ผๅฎน็ฎก็†็ซฏ็‚น๏ผš

  • GET /v0/management/codex-auth-url
  • POST /v0/management/oauth-callback
  • GET /v0/management/auth-files
  • GET /v0/management/auth-files/download?name=...

/v0/management/codex-auth-url ๆฏๆฌก่ฏทๆฑ‚้ƒฝไผšๅˆ›ๅปบ็‹ฌ็ซ‹ OAuth state ไธŽ PKCE ไธŠไธ‹ๆ–‡๏ผŒ/v0/management/oauth-callback ไผšไปŽๅฎขๆˆท็ซฏๆไบค็š„ redirect_url ่งฃๆž state ๅนถๆŒ‰ state ๆŸฅๆ‰พๅฏนๅบ”ไธŠไธ‹ๆ–‡ใ€‚state ๆˆๅŠŸๆถˆ่ดนๅŽไผš็ซ‹ๅณๅˆ ้™ค๏ผŒๅ› ๆญคๅŒไธ€ไธช callback ไธ่ƒฝ้‡ๅคๅฏผๅ…ฅใ€‚

้ป˜่ฎค state TTL ไธบ 30 ๅˆ†้’Ÿ๏ผŒๅฏ็”จ็Žฏๅขƒๅ˜้‡่ฐƒๆ•ด๏ผš

CPA_OAUTH_STATE_TTL_MS=1800000

ๅ•ๅฎžไพ‹้ƒจ็ฝฒ้ป˜่ฎคไฝฟ็”จๅ†…ๅญ˜ state storeใ€‚ๅคš็บฟ็จ‹ๅนถๅ‘่ฏทๆฑ‚ๅœจๅ• Node ่ฟ›็จ‹ๅ†…ๅฎ‰ๅ…จ๏ผ›ๅฆ‚ๆžœ้ƒจ็ฝฒไธบๅคšๅฎžไพ‹/ๅคš่ฟ›็จ‹/Zeabur ๅคšๅ‰ฏๆœฌ/PM2 cluster๏ผŒๅฟ…้กปไฝฟ็”จๅ…ฑไบซ state store๏ผˆๆŽจ่ Redis๏ผ‰๏ผŒๅฆๅˆ™ callback ๅฏ่ƒฝ่ขซ่ทฏ็”ฑๅˆฐๅฆไธ€ไธชๅฎžไพ‹่€Œๅ‡บ็Žฐ unknown_or_expired_stateใ€‚ๅฝ“ๅ‰ไปฃ็ ๅทฒๅฐ† state store ๆŠฝ่ฑกไธบ CpaOAuthStateStore๏ผŒๆŽฅ Redis ๆ—ถๅบ”ไฝฟ็”จ REDIS_URL ๆˆ– CPA_STATE_REDIS_URL๏ผŒๅนถไฟ่ฏ consume(state) ๆ˜ฏๅŽŸๅญๆ“ไฝœ๏ผˆRedis GETDEL ๆˆ– Lua๏ผ‰ใ€‚

็ฎก็†้‰ดๆƒไฟๆŒไธๅ˜๏ผš่ฏทๆฑ‚้œ€ๅธฆ Authorization: Bearer <management-key> ๆˆ– X-Management-Key: <management-key>ใ€‚

๐Ÿš€ ๅฟซ้€Ÿๅผ€ๅง‹ (Quick Start)

git clone https://github.com/icebear0828/codex-proxy.git
cd codex-proxy

Docker๏ผˆๆŽจ่๏ผŒๆ‰€ๆœ‰ๅนณๅฐ้€š็”จ๏ผ‰

docker compose up -d
# ๆ‰“ๅผ€ http://localhost:8080 ็™ปๅฝ•

ๆ•ฐๆฎๆŒไน…ๅŒ–้€š่ฟ‡ volume ๆ˜ ๅฐ„๏ผšdata/๏ผˆ่ดฆๅทใ€Cookie๏ผ‰ๅ’Œ config/๏ผˆ้…็ฝฎๆ–‡ไปถ๏ผ‰ใ€‚

่ทจๅฎนๅ™จ่ฎฟ้—ฎๆ็คบ๏ผšๅฆ‚ๆžœๅ…ถไป– Docker ๅฎนๅ™จ๏ผˆๅฆ‚ OpenClawใ€Cursor Server ็ญ‰๏ผ‰้œ€่ฆ่ฟžๆŽฅ codex-proxy๏ผŒๅปบ่ฎฎไฝฟ็”จๅฎฟไธปๆœบ็š„ๅฑ€ๅŸŸ็ฝ‘ IP๏ผˆๅฆ‚ http://192.168.x.x:8080/v1๏ผ‰่€Œ้ž host.docker.internal๏ผŒไปฅ้ฟๅ… Docker DNS ่งฃๆž้—ฎ้ข˜ใ€‚

macOS / Linux

npm install                # ๅฎ‰่ฃ…ๅŽ็ซฏไพ่ต– + ่‡ชๅŠจไธ‹่ฝฝ curl-impersonate
cd web && npm install && cd ..   # ๅฎ‰่ฃ…ๅ‰็ซฏไพ่ต–
npm run dev                # ๅผ€ๅ‘ๆจกๅผ๏ผˆ็ƒญ้‡่ฝฝ๏ผ‰
# ๆˆ–๏ผšnpm run build && npm start  # ็”Ÿไบงๆจกๅผ

ไนŸๆ”ฏๆŒ pnpm ๆˆ– bun๏ผŒๅฐ†ไธŠๆ–น npm ๆ›ฟๆขๅณๅฏใ€‚

Windows

npm install                # ๅฎ‰่ฃ…ๅŽ็ซฏไพ่ต–
cd web && npm install && cd ..   # ๅฎ‰่ฃ…ๅ‰็ซฏไพ่ต–
npm run dev                # ๅผ€ๅ‘ๆจกๅผ๏ผˆ็ƒญ้‡่ฝฝ๏ผ‰

Windows ไธ‹ curl-impersonate ๆš‚ไธๅฏ็”จ๏ผŒ่‡ชๅŠจ้™็บงไธบ็ณป็ปŸ curl๏ผˆๆ—  Chrome TLS ไผช่ฃ…๏ผ‰ใ€‚ๅปบ่ฎฎๆญ้…ๆœฌๅœฐไปฃ็†ไฝฟ็”จ๏ผŒๆˆ–้€š่ฟ‡ Docker / WSL ้ƒจ็ฝฒไปฅ่Žทๅพ—ๅฎŒๆ•ด TLS ไผช่ฃ…่ƒฝๅŠ›ใ€‚

้ชŒ่ฏ

# ๆ‰“ๅผ€ http://localhost:8080 ไฝฟ็”จ ChatGPT ่ดฆๅท็™ปๅฝ•๏ผŒ็„ถๅŽ๏ผš
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "codex",
    "messages": [{"role": "user", "content": "Hello!"}],
    "stream": true
  }'

๐ŸŒŸ ๆ ธๅฟƒๅŠŸ่ƒฝ (Features)

1. ๐Ÿ”Œ ๅ…จๅ่ฎฎๅ…ผๅฎน (Multi-Protocol API)

  • ๅฎŒๅ…จๅ…ผๅฎน /v1/chat/completions๏ผˆOpenAI๏ผ‰ใ€/v1/messages๏ผˆAnthropic๏ผ‰ๅ’Œ Gemini ๆ ผๅผ
  • ๆ”ฏๆŒ SSE ๆตๅผ่พ“ๅ‡บ๏ผŒๅฏ็›ดๆŽฅๅฏนๆŽฅๆ‰€ๆœ‰ OpenAI SDK ๅ’Œๅฎขๆˆท็ซฏ
  • ่‡ชๅŠจๅฎŒๆˆ Chat Completions โ†” Codex Responses API ๅŒๅ‘ๅ่ฎฎ่ฝฌๆข

2. ๐Ÿ” ่ดฆๅท็ฎก็†ไธŽๆ™บ่ƒฝ่ฝฎๆข (Auth & Multi-Account)

  • OAuth PKCE ็™ปๅฝ• โ€” ๆต่งˆๅ™จไธ€้”ฎๆŽˆๆƒ๏ผŒๆ— ้œ€ๆ‰‹ๅŠจๅคๅˆถ Token
  • ๅคš่ดฆๅท่ฝฎๆข โ€” ๆ”ฏๆŒ least_used๏ผˆๆœ€ๅฐ‘ไฝฟ็”จไผ˜ๅ…ˆ๏ผ‰ๅ’Œ round_robin๏ผˆ่ฝฎ่ฏข๏ผ‰ไธค็ง่ฐƒๅบฆ็ญ–็•ฅ
  • Token ่‡ชๅŠจ็ปญๆœŸ โ€” JWT ๅˆฐๆœŸๅ‰่‡ชๅŠจๅˆทๆ–ฐ๏ผŒๆŒ‡ๆ•ฐ้€€้ฟ้‡่ฏ•๏ผˆ5 ๆฌก๏ผ‰๏ผŒไธดๆ—ถๅคฑ่ดฅ 10 ๅˆ†้’Ÿๆขๅค่ฐƒๅบฆ
  • ้…้ขๅฎžๆ—ถ็›‘ๆŽง โ€” ๆŽงๅˆถ้ขๆฟๅฑ•็คบๅ„่ดฆๅทๅ‰ฉไฝ™็”จ้‡๏ผŒ้™ๆต็ช—ๅฃๆปšๅŠจๆ—ถ่‡ชๅŠจ้‡็ฝฎ่ฎกๆ•ฐๅ™จ
  • ๅ…ณ้”ฎๆ•ฐๆฎๅณๆ—ถๆŒไน…ๅŒ– โ€” ๆ–ฐๅขž/ๅˆทๆ–ฐ Token ็ซ‹ๅณๅ†™็›˜๏ผŒไธไธขๅคฑ
  • ็จณๅฎš่ฟžๆŽฅ โ€” ่‡ชๅŠจๅฏน้ฝ Codex Desktop ่ฏทๆฑ‚็‰นๅพ๏ผŒCookie ๆŒไน…ๅŒ–ๅ‡ๅฐ‘้‡ๅค้ชŒ่ฏ
  • Web ๆŽงๅˆถ้ขๆฟ โ€” ่ดฆๅท็ฎก็†ใ€็”จ้‡็›‘ๆŽงใ€็Šถๆ€ๆ€ป่งˆ๏ผŒไธญ่‹ฑๅŒ่ฏญ

๐Ÿ—๏ธ ๆŠ€ๆœฏๆžถๆž„ (Architecture)

                            Codex Proxy
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                                                     โ”‚
โ”‚  Client (Cursor / Continue / SDK)                   โ”‚
โ”‚       โ”‚                                             โ”‚
โ”‚  POST /v1/chat/completions                          โ”‚
โ”‚  POST /v1/messages (Anthropic)                      โ”‚
โ”‚       โ”‚                                             โ”‚
โ”‚       โ–ผ                                             โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  Routes   โ”‚โ”€โ”€โ–ถโ”‚  Translation  โ”‚โ”€โ”€โ–ถโ”‚  Proxy   โ”‚  โ”‚
โ”‚  โ”‚  (Hono)  โ”‚   โ”‚ OpenAIโ†’Codex  โ”‚   โ”‚ curl TLS โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚       โ–ฒ                                   โ”‚        โ”‚
โ”‚       โ”‚          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”‚        โ”‚
โ”‚       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚  Translation  โ”‚โ—€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ”‚
โ”‚                  โ”‚ Codexโ†’OpenAI  โ”‚  SSE stream     โ”‚
โ”‚                  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                  โ”‚
โ”‚                                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚   Auth   โ”‚  โ”‚  Fingerprint  โ”‚  โ”‚   Session   โ”‚  โ”‚
โ”‚  โ”‚ OAuth/JWTโ”‚  โ”‚  Headers/UA   โ”‚  โ”‚   Manager   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚
โ”‚  โ”‚  Auto-Maintenance (update-checker + scripts) โ”‚   โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚
โ”‚                                                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                         โ”‚
                    curl subprocess
                    (Chrome TLS)
                         โ”‚
                         โ–ผ
                    chatgpt.com
              /backend-api/codex/responses

๐Ÿ“ฆ ๅฏ็”จๆจกๅž‹ (Available Models)

ๆจกๅž‹ ID ๅˆซๅ ่ฏดๆ˜Ž
gpt-5.3-codex codex ๆœ€ๆ–ฐๆ——่ˆฐ agentic ็ผ–็จ‹ๆจกๅž‹๏ผˆ้ป˜่ฎค๏ผ‰
gpt-5.2-codex โ€” ไธŠไธ€ไปฃ agentic ็ผ–็จ‹ๆจกๅž‹
gpt-5.1-codex-max codex-max ๆทฑๅบฆๆŽจ็†็ผ–็จ‹ๆจกๅž‹
gpt-5.2 โ€” ้€š็”จๆ——่ˆฐๆจกๅž‹
gpt-5.1-codex-mini codex-mini ่ฝป้‡ๅฟซ้€Ÿ็ผ–็จ‹ๆจกๅž‹

ๆจกๅž‹ๅˆ—่กจไผš้š Codex Desktop ็‰ˆๆœฌๆ›ดๆ–ฐ่‡ชๅŠจๅŒๆญฅใ€‚

๐Ÿ”— ๅฎขๆˆท็ซฏๆŽฅๅ…ฅ (Client Setup)

Claude Code

ๅœจ็ปˆ็ซฏ่ฎพ็ฝฎ็Žฏๅขƒๅ˜้‡๏ผŒๅณๅฏ่ฎฉ Claude Code ้€š่ฟ‡ codex-proxy ไฝฟ็”จ Codex ๆจกๅž‹๏ผš

export ANTHROPIC_BASE_URL=http://localhost:8080
export ANTHROPIC_API_KEY=your-api-key
export ANTHROPIC_MODEL=claude-opus-4-6     # Opus โ†’ gpt-5.3-codex๏ผˆ้ป˜่ฎค๏ผ‰
# export ANTHROPIC_MODEL=claude-sonnet-4-6   # Sonnet โ†’ gpt-5.2-codex
# export ANTHROPIC_MODEL=claude-haiku-4-5-20251001  # Haiku โ†’ gpt-5.1-codex-mini

claude   # ๅฏๅŠจ Claude Code
Claude Code ๆจกๅž‹ ๆ˜ ๅฐ„ๅˆฐ Codex ๆจกๅž‹
Opus (claude-opus-4-6) gpt-5.3-codex
Sonnet (claude-sonnet-4-6) gpt-5.2-codex
Haiku (claude-haiku-4-5-20251001) gpt-5.1-codex-mini

ไนŸๅฏไปฅๅœจๆŽงๅˆถ้ขๆฟ (http://localhost:8080) ็š„ Anthropic SDK Setup ๅก็‰‡ไธญไธ€้”ฎๅคๅˆถ็Žฏๅขƒๅ˜้‡ใ€‚

Cursor

Settings โ†’ Models โ†’ OpenAI API Base:

http://localhost:8080/v1

API Key๏ผˆไปŽๆŽงๅˆถ้ขๆฟ่Žทๅ–๏ผ‰:

your-api-key

Continue (VS Code)

~/.continue/config.json:

{
  "models": [{
    "title": "Codex",
    "provider": "openai",
    "model": "codex",
    "apiBase": "http://localhost:8080/v1",
    "apiKey": "your-api-key"
  }]
}

OpenAI Python SDK

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8080/v1",
    api_key="your-api-key"
)

response = client.chat.completions.create(
    model="codex",
    messages=[{"role": "user", "content": "Hello!"}],
    stream=True
)

for chunk in response:
    print(chunk.choices[0].delta.content or "", end="")

OpenAI Node.js SDK

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "http://localhost:8080/v1",
  apiKey: "your-api-key",
});

const stream = await client.chat.completions.create({
  model: "codex",
  messages: [{ role: "user", content: "Hello!" }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content || "");
}

โš™๏ธ ้…็ฝฎ่ฏดๆ˜Ž (Configuration)

ๆ‰€ๆœ‰้…็ฝฎไฝไบŽ config/default.yaml๏ผš

ๅˆ†็ฑป ๅ…ณ้”ฎ้…็ฝฎ ่ฏดๆ˜Ž
server host, port, proxy_api_key ๆœๅŠก็›‘ๅฌๅœฐๅ€ไธŽ API ๅฏ†้’ฅ๏ผˆ่งไธ‹ๆ–น่ฏดๆ˜Ž๏ผ‰
api base_url, timeout_seconds ไธŠๆธธ API ๅœฐๅ€ไธŽ่ฏทๆฑ‚่ถ…ๆ—ถ
client app_version, build_number, chromium_version ๆจกๆ‹Ÿ็š„ Codex Desktop ็‰ˆๆœฌไธŽ Chromium ็‰ˆๆœฌ
model default, default_reasoning_effort ้ป˜่ฎคๆจกๅž‹ไธŽๆŽจ็†ๅผบๅบฆ
auth rotation_strategy, rate_limit_backoff_seconds ่ฝฎๆข็ญ–็•ฅไธŽ้™ๆต้€€้ฟ
tls curl_binary, impersonate_profile, proxy_url TLS ไผช่ฃ…ไธŽไปฃ็†้…็ฝฎ

API ๅฏ†้’ฅ (proxy_api_key)

ๅœจ config/default.yaml ไธญ่ฎพ็ฝฎๅฎขๆˆท็ซฏ่ฎฟ้—ฎไปฃ็†ๆ—ถไฝฟ็”จ็š„ API Key๏ผš

server:
  proxy_api_key: "pwd"          # ่‡ชๅฎšไน‰ๅฏ†้’ฅ๏ผŒๅฎขๆˆท็ซฏ่ฏทๆฑ‚ๆ—ถไฝฟ็”จๆญคๅ€ผ
  # proxy_api_key: null          # ่ฎพไธบ null ๅˆ™่‡ชๅŠจ็”Ÿๆˆ codex-proxy-xxxx ๆ ผๅผ็š„ๅฏ†้’ฅ
  • ่‡ชๅฎšไน‰ๅฏ†้’ฅ๏ผš่ฎพ็ฝฎไธบไปปๆ„ๅญ—็ฌฆไธฒ๏ผˆๅฆ‚ "pwd"๏ผ‰๏ผŒๅฎขๆˆท็ซฏไฝฟ็”จ Authorization: Bearer pwd ่ฎฟ้—ฎ
  • ่‡ชๅŠจ็”Ÿๆˆ๏ผš่ฎพไธบ null๏ผŒไปฃ็†ไผšๆ นๆฎ่ดฆๅทไฟกๆฏ่‡ชๅŠจ็”Ÿๆˆไธ€ไธช codex-proxy- ๅ‰็ผ€็š„ๅ“ˆๅธŒๅฏ†้’ฅ
  • ๅฝ“ๅ‰ๅฏ†้’ฅๅง‹็ปˆๆ˜พ็คบๅœจๆŽงๅˆถ้ขๆฟ๏ผˆhttp://localhost:8080๏ผ‰็š„ API Configuration ๅŒบๅŸŸ

็Žฏๅขƒๅ˜้‡่ฆ†็›–

็Žฏๅขƒๅ˜้‡ ่ฆ†็›–้…็ฝฎ
PORT server.port
CODEX_PLATFORM client.platform
CODEX_ARCH client.arch
HTTPS_PROXY tls.proxy_url

๐Ÿ“ก API ็ซฏ็‚นไธ€่งˆ (API Endpoints)

็ซฏ็‚น ๆ–นๆณ• ่ฏดๆ˜Ž
/v1/chat/completions POST ่Šๅคฉ่กฅๅ…จ โ€” OpenAI ๆ ผๅผ๏ผˆๆ ธๅฟƒ็ซฏ็‚น๏ผ‰
/v1/messages POST ่Šๅคฉ่กฅๅ…จ โ€” Anthropic ๆ ผๅผ
/v1/models GET ๅฏ็”จๆจกๅž‹ๅˆ—่กจ
/health GET ๅฅๅบทๆฃ€ๆŸฅ
/auth/accounts GET ่ดฆๅทๅˆ—่กจ๏ผˆ?quota=true ๅซ้…้ข๏ผ‰
/auth/accounts/login GET OAuth ็™ปๅฝ•ๅ…ฅๅฃ
/debug/fingerprint GET ่ฐƒ่ฏ•๏ผšๆŸฅ็œ‹ๅฝ“ๅ‰ไผช่ฃ…ๅคดไฟกๆฏ

๐Ÿ”ง ๅ‘ฝไปค (Commands)

ๅ‘ฝไปค ่ฏดๆ˜Ž
npm run dev ๅผ€ๅ‘ๆจกๅผๅฏๅŠจ๏ผˆ็ƒญ้‡่ฝฝ๏ผ‰
npm run build ็ผ–่ฏ‘ TypeScript ๅˆฐ dist/
npm start ่ฟ่กŒ็ผ–่ฏ‘ๅŽ็š„็”Ÿไบง็‰ˆๆœฌ
npm run update ๆ‰‹ๅŠจ่งฆๅ‘ๅฎŒๆ•ดๆ›ดๆ–ฐๆตๆฐด็บฟ

๐Ÿ“‹ ็ณป็ปŸ่ฆๆฑ‚ (Requirements)

  • Node.js 18+๏ผˆๆŽจ่ 20+๏ผ‰
  • curl โ€” ็ณป็ปŸ่‡ชๅธฆๅณๅฏ๏ผ›npm install ่‡ชๅŠจไธ‹่ฝฝ curl-impersonate ่Žทๅพ—ๅฎŒๆ•ด Chrome TLS ไผช่ฃ…
  • ChatGPT ่ดฆๅท โ€” ๆ™ฎ้€šๅ…่ดน่ดฆๅทๅณๅฏ
  • Docker๏ผˆๅฏ้€‰๏ผ‰ โ€” ๆŽจ่ไฝฟ็”จ Docker ้ƒจ็ฝฒ

โš ๏ธ ๆณจๆ„ไบ‹้กน (Notes)

  • Codex API ไธบๆตๅผ่พ“ๅ‡บไธ“็”จ๏ผŒ่ฎพ็ฝฎ stream: false ๆ—ถไปฃ็†ไผšๅ†…้ƒจๆตๅผๆ”ถ้›†ๅŽ่ฟ”ๅ›žๅฎŒๆ•ด JSON
  • ๆœฌ้กน็›ฎไพ่ต– Codex Desktop ็š„ๅ…ฌๅผ€ๆŽฅๅฃ๏ผŒไธŠๆธธ็‰ˆๆœฌๆ›ดๆ–ฐๆ—ถไผš่‡ชๅŠจๆฃ€ๆต‹ๅนถๆ›ดๆ–ฐๆŒ‡็บน
  • config/default.yaml ไธญ็š„ๆณจ้‡Šๅœจ่‡ชๅŠจๆ›ดๆ–ฐๅŽไผšไธขๅคฑ๏ผˆไฝฟ็”จ็ป“ๆž„ๅŒ– YAML ๅ†™ๅ…ฅ๏ผ‰

๐Ÿ“„ ่ฎธๅฏๅ่ฎฎ (License)

ๆœฌ้กน็›ฎ้‡‡็”จ ้žๅ•†ไธš่ฎธๅฏ (Non-Commercial)๏ผš

  • ๅ…่ฎธ๏ผšไธชไบบๅญฆไน ใ€็ ”็ฉถใ€่‡ช็”จ้ƒจ็ฝฒ
  • ็ฆๆญข๏ผšไปปไฝ•ๅฝขๅผ็š„ๅ•†ไธš็”จ้€”๏ผŒๅŒ…ๆ‹ฌไฝ†ไธ้™ไบŽๅ‡บๅ”ฎใ€่ฝฌๅ”ฎใ€ๆ”ถ่ดนไปฃ็†ใ€ๅ•†ไธšไบงๅ“้›†ๆˆ

ๆœฌ้กน็›ฎไธŽ OpenAI ๆ— ๅ…ณ่”ใ€‚ไฝฟ็”จ่€…้œ€่‡ช่กŒๆ‰ฟๆ‹…้ฃŽ้™ฉๅนถ้ตๅฎˆ OpenAI ็š„ๆœๅŠกๆกๆฌพใ€‚


Built with Hono + TypeScript | Powered by Codex Desktop API

About

Wrap Gemini CLI, Antigravity, ChatGPT Codex, Claude Code, Qwen Code, iFlow as an OpenAI/Gemini/Claude/Codex compatible API service, allowing you to enjoy the free Gemini 2.5 Pro, GPT 5, Claude, Qwen model through API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 99.6%
  • Other 0.4%