基于 HM2899/grokcli-2api 修改,感谢原作者的开源贡献。
将 Grok OIDC 登录态 转成 OpenAI / Anthropic 兼容 API,附带 Web 管理台。在原版基础上增强了本地过盾、Outlook 邮箱池接码、注册会话持久化等功能。
| 改动 | 说明 |
|---|---|
| 本地 Turnstile Solver | 内置 camoufox 浏览器池,无需第三方过盾服务或 YesCaptcha 付费,自动处理 GitHub API 限流 |
| Outlook 邮箱池 | 支持 邮箱----密码----client_id----refresh_token 四段格式导入,通过 Microsoft Graph API 自动读取注册验证码 |
| 注册会话持久化 | SQLite 写透缓存,容器重启后失败会话不丢失,可继续密码补登录 |
| 凭证回收三页签 | 密码补登录/回收 Token、SSO Cookie 导入、失败会话回收,三大功能统一入口 |
| GitHub Token 支持 | 可配置 GITHUB_TOKEN 环境变量避免 camoufox 浏览器预热时 GitHub API 限流 |
| 安全性清理 | 移除所有硬编码的域名、密码、邮箱等敏感信息,开源即用 |
git clone https://github.com/WR-Class/grokcli-2api.git
cd grokcli-2api
cp .env.example .env
# 编辑 .env:至少修改 GROK2API_ADMIN_PASSWORD
docker compose up -d --build启动后访问:http://127.0.0.1:3000/admin
| 变量 | 默认 | 说明 |
|---|---|---|
GROK2API_ADMIN_PASSWORD |
change_me_please |
管理台密码(首次启动时种子到数据库) |
GROK2API_DEFAULT_MODEL |
grok-4.5 |
默认模型 |
GROK2API_CAPTCHA_PROVIDER |
local |
过盾方式:local(内置 camoufox)/ yescaptcha(云端) |
GROK2API_INLINE_SOLVER |
1 |
是否在主容器内启动本地过盾 |
GROK2API_REG_CONCURRENCY |
3 |
注册并发数 |
TURNSTILE_THREAD |
3 |
过盾浏览器线程数(2 核建议 1-2) |
TURNSTILE_BROWSER_TYPE |
camoufox |
过盾浏览器类型 |
GITHUB_TOKEN |
空 | 可选。GitHub Token 用于避免 camoufox 下载浏览器时 API 限流,不需要任何权限 |
GROK2API_WORKERS |
2 |
API Worker 数 |
GROK2API_STORE_BACKEND |
hybrid |
存储后端(PostgreSQL + Redis) |
完整配置见 .env.example。
| 接口 | 说明 |
|---|---|
/v1/chat/completions |
OpenAI Chat 兼容,支持 SSE 流式 |
/v1/models |
模型列表 |
/v1/responses |
OpenAI Responses 兼容(Claude Code / Codex) |
/v1/messages |
Anthropic Messages 兼容(Claude 系列) |
账号运维
- 设备码登录、SSO/JSON 导入导出
- 账号轮询(round_robin / least_used / random)
- 批量测活、续期、模型探测
注册生产
- 多邮箱服务商(MoeMail / YYDS / GPTMail / CFMail / Outlook 邮箱池)
- 本地 camoufox 过盾,无需第三方付费
- 批量注册、进度实时查看、失败自动重试
凭证回收
- 密码补登录:对注册成功但未拿到 Token 的账号,用邮箱+密码重新登录
- SSO Cookie 导入:已有 SSO 时直接 Device Flow 换 Token
- 失败会话回收:从失败注册记录中一键补登录,重启不丢失
邮箱----密码----client_id----refresh_token
user@outlook.com----password----{client_id}----{refresh_token}
支持 ---- / 制表符 / 逗号分隔,每行一个。注册时自动通过 Microsoft Graph API 读取验证码邮件。
# OpenAI 兼容
export OPENAI_BASE_URL=http://127.0.0.1:3000/v1
export OPENAI_API_KEY=你的API_Key
# Anthropic 兼容(Claude Code / Cursor)
# Base URL 填 http://127.0.0.1:3000/v1,Key 用管理台创建的 API Key客户端 (OpenAI / Anthropic SDK · Claude Code / Codex · new-api / sub2api)
|
/v1/chat/completions · /v1/responses · /v1/messages
|
grokcli-2api (FastAPI · multi-worker)
| 管理台 /admin
| 账号轮询 · 冷却踢出 · 会话粘性
| 本地 Turnstile Solver (camoufox · 127.0.0.1:5072)
| PostgreSQL(持久)+ Redis(热状态)
|
cli-chat-proxy.grok.com
| 服务 | 容器内地址 | 映射宿主机 |
|---|---|---|
| grokcli-2api | 0.0.0.0:3000 |
是 → 127.0.0.1:3000 |
| PostgreSQL | postgres:5432 |
否(内网) |
| Redis | redis:6379 |
否(内网) |
| Turnstile Solver | 127.0.0.1:5072 |
否(主容器 loopback) |
app.py / admin_routes.py # API 与管理路由
account_pool.py # 账号轮询 / 冷却
grok_build_adapter.py # 注册引擎(协议注册 + Outlook 邮箱池)
reg_session_store.py # 注册会话 SQLite 持久化
store/outlook_pool_pg.py # Outlook 邮箱池 PostgreSQL 存储
turnstile-solver/ # 本地 Turnstile 过盾(camoufox)
static/ # 管理台前端
docker-compose.yml # Docker Compose 编排
.env.example # 环境变量模板
.env文件已 gitignore,不会被提交。部署前务必cp .env.example .env并修改密码data/目录已 gitignore,包含数据库、注册会话缓存等运行时数据- 生产环境请修改 PostgreSQL 默认密码(
.env中POSTGRES_PASSWORD) - 导出的 JSON / SSO 含完整凭证,请妥善保管
本项目基于 HM2899/grokcli-2api 修改,感谢原作者的开源贡献。原项目的核心架构、API 兼容层、会话粘性、冷却轮询等基础功能均来自原版。
见 LICENSE。