Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

grokcli-2api

基于 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 限流
安全性清理 移除所有硬编码的域名、密码、邮箱等敏感信息,开源即用

快速开始

Docker Compose(推荐)

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

核心功能

API 兼容

接口 说明
/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
  • 失败会话回收:从失败注册记录中一键补登录,重启不丢失

Outlook 邮箱池导入格式

邮箱----密码----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 默认密码(.envPOSTGRES_PASSWORD
  • 导出的 JSON / SSO 含完整凭证,请妥善保管

致谢

本项目基于 HM2899/grokcli-2api 修改,感谢原作者的开源贡献。原项目的核心架构、API 兼容层、会话粘性、冷却轮询等基础功能均来自原版。

License

LICENSE

About

Grok reverse proxy with registration, local Turnstile solver, and admin panel

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages