SGProxy 是 gproxy 的精简版,只保留 ClaudeCode 单通道 + Anthropic 原生格式。需要多通道(Codex、OpenAI 等)或多格式转换?请使用完整版 gproxy。
基于 Cloudflare Workers + Durable Objects 的 ClaudeCode 凭证代理,提供 OAuth 导入、凭证轮换、用量查看和 header-only /v1/* 转发。
Deploy Button 会读取 .dev.vars.example,并在部署时提示填写必需的 ADMIN_TOKEN secret。
- 单通道 ClaudeCode — 只代理 Anthropic ClaudeCode 请求
- Header-only 转发 — 仅处理请求头,request/response body 原样透传
- OAuth 导入 — 支持 OAuth2 + PKCE 导入凭证
- 自动刷新 — Token 过期前自动刷新,失败标记为
dead - 用量追踪 — 跟踪 5 小时 / 7 天 / 7 天 Sonnet 限额
- 429 自动切换 — 当前请求不重放,只切换后续请求使用的凭证
- 管理后台 — 内嵌 Web UI,支持中英双语
- 公开用量页 — 无需登录即可查看凭证状态
- 运行时: Cloudflare Workers + Durable Objects (SQLite)
- 语言: Rust -> WebAssembly
- 构建: 本地用
worker-build生成build/,Deploy Button 直接使用仓库内产物
看上面的 Cloudflare 按钮
- Rust 工具链
- Wrangler CLI
- Cloudflare 账号
git clone <repo-url> && cd sgproxy
echo 'ADMIN_TOKEN=your-secret-token' > .env
wrangler dev访问 http://localhost:8787/ 打开管理页。
worker-build --release
wrangler deploy如果没有在 Deploy Button 流程里填写,就需要在 Cloudflare Dashboard 再设置 ADMIN_TOKEN secret。
- OAuth 导入 — 在后台点击
OAuth页签后完成授权 - JSON 导入 — 在后台粘贴:
{ "access_token": "sk-...", "refresh_token": "sk-..." } - API 导入
curl -X POST https://your-worker.dev/api/credentials \ -H "Authorization: Bearer YOUR_ADMIN_TOKEN" \ -H "Content-Type: application/json" \ -d '{"access_token":"sk-...","refresh_token":"sk-..."}'
把客户端基地址指向:
https://your-worker.dev/v1/...
代理会自动覆盖上游 authorization,补齐 anthropic-version 和必需的 anthropic-beta。
/管理后台/usage公开用量页
| 方法 | 路径 | 说明 |
|---|---|---|
| ANY | /v1/* |
代理 ClaudeCode 请求 |
支持 Authorization: Bearer <ADMIN_TOKEN> 或 x-api-key: <ADMIN_TOKEN>。
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/public/credentials |
公开凭证用量 |
| GET | /api/credentials |
列出凭证 |
| POST | /api/credentials |
导入凭证 |
| PUT | /api/credentials/{id} |
更新凭证 |
| DELETE | /api/credentials/{id} |
删除凭证 |
| POST | /api/credentials/{id}/enable |
启用凭证 |
| POST | /api/credentials/{id}/disable |
停用凭证 |
| GET | /api/credentials/usage |
查看全部用量 |
| GET | /api/credentials/usage/{id} |
查看单个用量 |
| POST | /api/oauth/start |
发起 OAuth |
| POST | /api/oauth/callback |
完成 OAuth |
src/
├── lib.rs
├── do_state.rs
├── config.rs
├── proxy.rs
├── oauth.rs
├── state.rs
└── web/
└── index.html