通过 sharedchat.cc 公益站免费使用 OpenAI Codex CLI,暴露为标准 OpenAI 兼容 API。
sharedchat.cc 使用 TLS 指纹检测——只有官方 Codex CLI 发出的请求才会被放行,Python/curl 等普通 HTTP 客户端直接返回 codex_access_restricted(403)。
Proxy 不自己构造 HTTP 请求,而是 每次调用 spawn codex exec 子进程,由 Codex CLI 自己完成全部网络通信(含 TLS 握手),从而绕过指纹检测。
外部应用
│ (OpenAI API 格式)
▼
Sub2API (:8080) ← 统一网关,管理账号/路由/额度
│
▼
codex_api_proxy.py (:19080) ← 本项目
│ 提取 prompt → spawn codex exec
▼
Codex CLI (本地)
│ 带正确 TLS 指纹 + 认证
▼
sharedchat.cc (公益站)
| 文件 | 说明 |
|---|---|
codex_api_proxy.py |
核心 proxy,暴露 /v1/chat/completions 和 /v1/responses 接口 |
start_codex_proxy.sh |
启动脚本(含 clash 代理 + 环境变量配置) |
sharedchat_codex_sop.md |
完整运维 SOP:部署/排查/冷启动/模型映射 |
- 安装 Codex CLI:
npm install -g @openai/codex - 安装 Clash 或其他代理(sharedchat.cc 直连 403)
- 在 sharedchat.cc 网站领取 Codex 订阅额度
编辑 ~/.codex/config.toml:
[model_providers.OpenAI]
base_url = "https://new.sharedchat.cc/codex"
wire_api = "responses"
requires_openai_auth = falsechmod +x start_codex_proxy.sh
./start_codex_proxy.sh或手动启动:
HTTPS_PROXY=http://127.0.0.1:7890 \
CODEX_API_KEY=sk-your-api-key \
python3 -u codex_api_proxy.py# Health check
curl http://localhost:19080/health
# Chat completions 格式
curl http://localhost:19080/v1/chat/completions \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.5","messages":[{"role":"user","content":"hi"}]}'
# Responses 格式
curl http://localhost:19080/v1/responses \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.5","input":"hi"}'- Sub2API 中添加账号 → 类型选
api,base URL 填http://localhost:19080 - 添加对应的 API Key(
CODEX_API_KEY的值) - 在模型映射中将
gpt-5.5等模型映射到该账号
| 变量 | 默认值 | 说明 |
|---|---|---|
CODEX_PROXY_PORT |
19080 |
监听端口 |
CODEX_TIMEOUT |
30 |
单次 codex exec 超时(秒) |
CODEX_API_KEY |
— | API 鉴权 key |
CODEX_BIN |
codex |
Codex CLI 路径 |
HTTPS_PROXY |
— | 必须设置,否则 sharedchat.cc 403 |
- 并发限制:同一时间只能处理一个请求(sharedchat.cc 服务端限制,报错 "Only one Codex conversation can run at a time")
- TLS 指纹依赖:必须通过
codex exec子进程发请求,不能自己构造 HTTP 连接 sharedchat.cc - 会话锁:如果 Codex 进程异常退出,sharedchat.cc 服务端可能残留会话锁(几分钟后自动释放,或关闭浏览器中 sharedchat.cc 页面)
- 单轮对话:每次请求是全新的 codex 进程,无上下文连续性
HTTPS_PROXY未设置或代理未运行- Codex CLI 版本过旧,升级到最新:
npm update -g @openai/codex
- sharedchat.cc 服务端会话锁未释放
- 检查是否有浏览器打开了 sharedchat.cc 的 vibe-code/dashboard 页面,关闭后等 10-15 秒
- 检查是否有残留 codex 进程:
ps aux | grep codex
CODEX_TIMEOUT默认 30s,复杂任务可能需要更长时间- 检查 proxy 日志:
cat /tmp/proxy.log
- 这是正常的:sharedchat.cc 的认证不走 OAuth token,而是通过网站端的订阅状态
- 需要在 sharedchat.cc 网站上领取/开通 Codex 订阅