本服务把 GitHub Copilot 订阅 + Anthropic OAuth + ChatGPT (Codex) OAuth 三个号池统一包装成 OpenAI / Anthropic 兼容 API,让 Codex CLI、Claude Code CLI 等任意客户端都能复用。号池调度 + 自动 OAuth 续期,按 X-Backend header 选链路;ChatGPT 池经 AWS EC2 出口中转绕过 chatgpt.com 对 CF Workers 的 WAF 封禁。
所有接入都需要一个 nadt_… bearer token:
nadt_xxxxxxxx… 字符串(只展示一次)。Claude Code 走 Anthropic 原生 /v1/messages 协议,proxy 自动翻译到 Copilot 后端。
npm install -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code
路径:~/.claude/settings.json(macOS / Linux / WSL)或 %USERPROFILE%\.claude\settings.json(Windows)。不存在就新建。
{
"env": {
"ANTHROPIC_BASE_URL": "https://nadoutong-proxy.saiswjcn.workers.dev",
"ANTHROPIC_AUTH_TOKEN": "nadt_把上面拿到的token贴在这里",
"ANTHROPIC_MODEL": "claude-sonnet-4.6",
"ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4.5"
}
}
env 块注入进程,等价于 export,但只对 claude 生效,不污染全局 shell。mkdir -p ~/.claude && cat > ~/.claude/settings.json <<'EOF'
{
"env": {
"ANTHROPIC_BASE_URL": "https://nadoutong-proxy.saiswjcn.workers.dev",
"ANTHROPIC_AUTH_TOKEN": "nadt_把token贴这里",
"ANTHROPIC_MODEL": "claude-sonnet-4.6",
"ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4.5"
}
}
EOF
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.claude" | Out-Null
@'
{
"env": {
"ANTHROPIC_BASE_URL": "https://nadoutong-proxy.saiswjcn.workers.dev",
"ANTHROPIC_AUTH_TOKEN": "nadt_把token贴这里",
"ANTHROPIC_MODEL": "claude-sonnet-4.6",
"ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4.5"
}
}
'@ | Set-Content -Encoding UTF8 "$env:USERPROFILE\.claude\settings.json"
claude --version
echo "你好,请用一句话介绍自己" | claude
/v1/messages 命中记录。| ANTHROPIC_MODEL | 说明 |
|---|---|
claude-sonnet-4.6 | 最新 Sonnet,日常首选 |
claude-opus-4.7 | 最新 Opus |
claude-opus-4.6 | 上一代 Opus,稳定可用 |
claude-haiku-4.5 | 轻快,适合 small_fast_model |
claude-sonnet-4-5-20250929 等),请看下面的「Claude 直连」段。如果你想绕开 Copilot,直接打到 api.anthropic.com(用 proxy 内置的 sk-ant-oat01-… OAuth 池),加一行 ANTHROPIC_CUSTOM_HEADERS 头即可。模型 ID 必须用 Anthropic 原生格式。
{
"env": {
"ANTHROPIC_BASE_URL": "https://nadoutong-proxy.saiswjcn.workers.dev",
"ANTHROPIC_AUTH_TOKEN": "nadt_把token贴这里",
"ANTHROPIC_MODEL": "claude-opus-4-7",
"ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4-5",
"ANTHROPIC_CUSTOM_HEADERS": "X-Backend: claude"
}
}
| 真实 Anthropic ID | 说明 |
|---|---|
claude-opus-4-7 | Opus 4.7 (最新) |
claude-sonnet-4-6 | Sonnet 4.6 |
claude-haiku-4-5 | Haiku 4.5 |
claude-sonnet-4-5-20250929 | Sonnet 4.5 (上代) |
claude-opus-4-1-20250805 | Opus 4.1 (上代) |
X-Backend 头 + 用 Copilot 别名 ⇒ 走 Copilot 池;加上 X-Backend: claude + 用 Anthropic 原生 ID ⇒ 走 sk-ant-oat 池。Codex CLI 走 OpenAI /responses 协议(base_url 后自动加 /responses)。
npm install -g @openai/codex
npm install -g @openai/codex
路径:~/.codex/config.toml(macOS / Linux)或 %USERPROFILE%\.codex\config.toml(Windows)。不存在就新建。
preferred_auth_method = "apikey"
model_provider = "nadoutong"
model = "gpt-5-codex"
[model_providers.nadoutong]
name = "nadoutong"
base_url = "https://nadoutong-proxy.saiswjcn.workers.dev"
wire_api = "responses"
env_key = "OPENAI_API_KEY"
http_headers = { "X-Backend" = "copilot" } # 走 Copilot 池(默认推荐,便宜稳定)
# http_headers = { "X-Backend" = "openai" } # 改成这行 → 走 ChatGPT (Codex) OAuth 池
copilot(默认)—— 走 GitHub Copilot 后端,支持 gpt-5.x / claude-sonnet-4.x / gemini-3.x 等所有别名模型。openai —— 走真正的 ChatGPT (Codex CLI) OAuth 池,经 AWS EC2 中转打到 chatgpt.com/backend-api/codex/responses(绕开 CF Workers 出口被 chatgpt.com WAF 封 403 的限制)。仅 gpt-5 系列可用。http_headers ⇒ 跟填了 copilot 等价,默认走 Copilot。路径:~/.codex/auth.json(macOS / Linux)或 %USERPROFILE%\.codex\auth.json(Windows)。不存在就新建。
{
"OPENAI_API_KEY": "nadt_把token贴这里"
}
auth.json 里的字段灌进进程 env,env_key 就能读到。完全不依赖系统环境变量。npm i -g @openai/codex@latest 即可),临时在启动前 export OPENAI_API_KEY=nadt_xxx 也能跑。mkdir -p ~/.codex
cat > ~/.codex/config.toml <<'EOF'
preferred_auth_method = "apikey"
model_provider = "nadoutong"
model = "gpt-5-codex"
[model_providers.nadoutong]
name = "nadoutong"
base_url = "https://nadoutong-proxy.saiswjcn.workers.dev"
wire_api = "responses"
env_key = "OPENAI_API_KEY"
http_headers = { "X-Backend" = "copilot" }
EOF
cat > ~/.codex/auth.json <<'EOF'
{ "OPENAI_API_KEY": "nadt_把token贴这里" }
EOF
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.codex" | Out-Null
@'
preferred_auth_method = "apikey"
model_provider = "nadoutong"
model = "gpt-5-codex"
[model_providers.nadoutong]
name = "nadoutong"
base_url = "https://nadoutong-proxy.saiswjcn.workers.dev"
wire_api = "responses"
env_key = "OPENAI_API_KEY"
http_headers = { "X-Backend" = "copilot" }
'@ | Set-Content -Encoding UTF8 "$env:USERPROFILE\.codex\config.toml"
@'
{ "OPENAI_API_KEY": "nadt_把token贴这里" }
'@ | Set-Content -Encoding UTF8 "$env:USERPROFILE\.codex\auth.json"
codex --version
codex "用 Python 写个快速排序"
| model | X-Backend | 说明 |
|---|---|---|
gpt-5.5 | copilot 或 openai | 最新旗舰,默认推荐;走 openai 即真正的 ChatGPT (Codex) OAuth 池 |
gpt-5.4 | copilot | 上代旗舰 |
gpt-5.4-mini | copilot | 更便宜的轻量版 |
gpt-5-codex | openai | ChatGPT Codex 系列原生 ID |
claude-sonnet-4.6 | copilot | Codex 也能调 Claude(走 Copilot 链路) |
wire_api = "responses",已弃用 "chat"。所以仅 GPT-5 系列、Claude 系列等支持 /v1/responses 的模型可在 Codex CLI 里直接用;GPT-4o / GPT-4.1 / GPT-3.5 等仅 chat-completions 的模型,请改用下面的 OpenAI SDK / curl 方式。preferred_auth_method = "apikey" 至关重要,否则它会跳 ChatGPT OAuth 而不是用 env_key。支持的 endpoint(带不带 /v1 前缀都可以,proxy 会自动归一化):
POST /chat/completions 或 /v1/chat/completions — 标准 Chat CompletionsPOST /responses 或 /v1/responses — Responses API(新协议)POST /messages 或 /v1/messages — Anthropic MessagesPOST /embeddings 或 /v1/embeddings — embeddingsGET /models 或 /v1/models — 模型列表https://nadoutong-proxy.saiswjcn.workers.dev 就够了,无需 /v1。Claude Code 和 Codex CLI 配置里的 base 现在完全一致。from openai import OpenAI
client = OpenAI(
base_url="https://nadoutong-proxy.saiswjcn.workers.dev",
api_key="nadt_把token贴这里",
)
resp = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hi"}],
)
print(resp.choices[0].message.content)
curl https://nadoutong-proxy.saiswjcn.workers.dev/chat/completions \
-H "Authorization: Bearer nadt_xxx" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o","messages":[{"role":"user","content":"Hi"}]}'
curl.exe https://nadoutong-proxy.saiswjcn.workers.dev/chat/completions `
-H "Authorization: Bearer nadt_xxx" `
-H "Content-Type: application/json" `
-d '{\"model\":\"gpt-4o\",\"messages\":[{\"role\":\"user\",\"content\":\"Hi\"}]}'
curl.exe,否则会调到 PowerShell 内置的 Invoke-WebRequest 别名,参数语法完全不同。curl https://nadoutong-proxy.saiswjcn.workers.dev/chat/completions ^
-H "Authorization: Bearer nadt_xxx" ^
-H "Content-Type: application/json" ^
-d "{\"model\":\"gpt-4o\",\"messages\":[{\"role\":\"user\",\"content\":\"Hi\"}]}"
curl.exe。注意 JSON 双引号需要 \" 转义,行尾续行符是 ^。实际可用模型由 GitHub Copilot 后台控制,会随时变化。查看实时清单 →(需要 Authorization: Bearer nadt_xxx)
常见可用:
| 现象 | 原因 / 处理 |
|---|---|
401 Unauthorized | token 错 / 没设环境变量 / 用错变量名(claude 看 ANTHROPIC_AUTH_TOKEN,codex 看 config.toml 的 env_key) |
429 rate_limit | 命中 token 自身的 RPM/日额度 → 在 /admin 调大;或所有号池账号都被 Copilot 拉黑了 → 看 /admin 的「号池」里 needs_reauth 状态 |
503 upstream_unavailable | 号池没有可用账号。去 /admin → 号池 → 「+ 添加账号」走一键 device flow 加一个 |
| codex 仍然弹 ChatGPT 登录 | config.toml 漏了 preferred_auth_method = "apikey" |
| claude 一直转圈 | 检查 ANTHROPIC_BASE_URL 是否带了多余的 /v1(不要带) |
X-Backend: claude 报 not_found_error | 用了 Copilot 别名(claude-sonnet-4.6)打直连,必须换成 Anthropic 原生 ID(claude-sonnet-4-5-20250929) |
X-Backend: claude 报 needs_reauth / 401 | Claude 池里所有 sk-ant-oat01-… token 都失效了,去 /admin → Claude 池重新加一把 |
X-Backend: openai 报 503 upstream_unavailable | ChatGPT 池里没号 → /admin → ChatGPT 池 → 加一把(贴 ~/.codex/auth.json 全文) |
X-Backend: openai 报 relay_unreachable / 502 | EC2 relay 挂了或 EIP 变了。去 AWS console 起 relay、然后 wrangler secret put OPENAI_RELAY_URL 重写并 deploy |
codex CLI 启动报 wire_api = "chat" is no longer supported | 当前 codex 版本只能用 responses。改 config.toml 把 wire_api 改回 responses,并换成 GPT-5 系列模型 |
| SSE 流断断续续 | 检查代理 / 公司网络是否吃 SSE。直连测试:curl --noproxy '*' … |
| Windows: 中文乱码 / 反斜杠错 | 用 VS Code 以 UTF-8(无 BOM)保存 settings.json / config.toml / auth.json;路径分隔符用反斜杠 \ 或正斜杠 / 都行 |
| Windows: 找不到 ~ 这个目录 | Windows 不识别 ~,全部换成 %USERPROFILE%\(cmd)或 $env:USERPROFILE\(PowerShell) |
一次配好,享受所有 Copilot 模型。问题反馈 → 联系管理员或在 GitHub 提 issue。