[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-93157":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":14,"starSnapshotCount":14,"syncStatus":15,"lastSyncTime":34,"discoverSource":35},93157,"grokbuild-proxy","GreyGunG\u002Fgrokbuild-proxy","GreyGunG","本地自托管的 Grok Build → Claude Code \u002F OpenAI 兼容代理 | Local self-hosted Grok Build compatibility proxy",null,"Go",142,43,61,0,2,67,52.63,"MIT License",false,"main",[22,23,24,25,26,27,28,29,30],"anthropic","claude-code","golang","grok","grok-build","oauth","openai","proxy","self-hosted","2026-07-22 04:02:08","# grokbuild-proxy\n\n**简体中文** | [English](README_EN.md)\n\n[![CI](https:\u002F\u002Fgithub.com\u002FGreyGunG\u002Fgrokbuild-proxy\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002FGreyGunG\u002Fgrokbuild-proxy\u002Factions\u002Fworkflows\u002Fci.yml)\n[![Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FGreyGunG\u002Fgrokbuild-proxy)](https:\u002F\u002Fgithub.com\u002FGreyGunG\u002Fgrokbuild-proxy\u002Freleases)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg)](LICENSE)\n[![Go](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGo-1.26.5-00ADD8?logo=go)](go.mod)\n\n`grokbuild-proxy` 是一个本地、自托管的协议兼容代理，用于将使用者本人\n合法持有的 Grok Build 账号接入 Claude Code、Anthropic SDK 和\nOpenAI 兼容客户端。\n\n项目将 Anthropic Messages 请求转换到 Grok Build Responses 后端，支持\n流式输出、客户端工具、结构化输出、思考强度、CPA 风格 Thinking Block、\n加密推理回放和 Grok 内置 Web Search。\n\n> [!CAUTION]\n> 本项目是非官方、社区维护的技术学习与协议互操作研究项目，与 xAI、\n> Grok、Anthropic、OpenAI 及其关联公司无关，也未获得其授权、赞助或\n> 认可。只能使用你本人合法持有并获准自动化操作的账号。使用本项目可能\n> 违反相关服务条款或导致账号限制，全部风险由使用者自行承担。使用前请\n> 阅读完整的[免责声明](DISCLAIMER.md)。\n\n## 功能\n\n- Anthropic 兼容的 `POST \u002Fv1\u002Fmessages`\n- OpenAI 兼容接口：\n  - `POST \u002Fv1\u002Fresponses`\n  - `POST \u002Fv1\u002Fchat\u002Fcompletions`\n  - `GET \u002Fv1\u002Fmodels`\n- 增量 SSE 转换，不缓冲完整响应\n- 客户端函数工具和并行工具调用\n- Anthropic `web_search_*` 映射到 Grok 内置 Web Search\n- Anthropic JSON Schema 映射到 Responses `text.format`\n- Adaptive \u002F Manual Thinking 与思考强度兼容\n- Summarized \u002F Omitted Thinking Block\n- 工具轮次间的加密 Reasoning 回放\n- 多账号选择、会话粘滞、冷却和故障切换\n- Grok\u002FCPA JSON、多文件及可选 SSO 批量导入\n- 全局与凭据级 HTTP(S)\u002FSOCKS 出站代理\n- 保守的自动巡检、401 确认隔离、429 冷却及可选延迟清理\n- Grok Build 共享周额度主视图与原始账单诊断\n- 浏览器 OAuth Device Login\n- 带文件锁、原子写入和备份恢复的本地 JSON 存储\n- 内嵌 Admin Web UI\n- 健康检查、Readiness、Prometheus 指标、Request ID 和结构化日志\n- 多平台归档、校验和、SBOM 与 GHCR 容器镜像\n\n## 架构\n\n```text\nClaude Code \u002F Anthropic SDK       OpenAI SDK \u002F 兼容客户端\n              |                              |\n              +-------------+----------------+\n                            |\n                    grokbuild-proxy\n                \u002Fv1\u002Fmessages | \u002Fv1\u002Fresponses\n                            |\n              凭据池 \u002F OAuth 刷新 \u002F 重试切换\n                            |\n                cli-chat-proxy.grok.com\u002Fv1\n```\n\n组件边界和协议决策见 [DESIGN.md](DESIGN.md)。\n\n## 环境要求\n\n- Go 1.26.5 或更高版本，或者 Docker\n- 使用者本人合法持有的 Grok CLI \u002F Grok Build 账号\n- 可信的本机或私有网络环境\n\n## 一键安装\n\nLinux \u002F macOS：\n\n```bash\ncurl -fsSL \\\n  https:\u002F\u002Fraw.githubusercontent.com\u002FGreyGunG\u002Fgrokbuild-proxy\u002Fmain\u002Fscripts\u002Finstall.sh \\\n  | sh\n```\n\nWindows PowerShell：\n\n```powershell\nirm https:\u002F\u002Fraw.githubusercontent.com\u002FGreyGunG\u002Fgrokbuild-proxy\u002Fmain\u002Fscripts\u002Finstall.ps1 | iex\n```\n\n安装脚本会自动识别系统与架构、下载最新 Release、验证 SHA-256、安装\n二进制并生成本地配置。可以通过 `GROKBUILD_VERSION=v0.2.0` 固定版本。\n\n## 源码运行\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FGreyGunG\u002Fgrokbuild-proxy.git\ncd grokbuild-proxy\n\ncp config.example.yaml config.yaml\ngo run .\u002Fcmd\u002Fgrokbuild-proxy\n```\n\n默认监听 `127.0.0.1:8080`。\n\n`api_key` 和 `admin_key` 留空时，首次启动会将随机密钥写入\n`data\u002Fmeta.json`。该文件包含敏感信息，禁止提交或分享。\n\n```bash\njq -r .api_key data\u002Fmeta.json\njq -r .admin_key data\u002Fmeta.json\n```\n\n打开 Admin UI：\n\n```text\nhttp:\u002F\u002F127.0.0.1:8080\u002Fadmin\n```\n\n在 Admin UI 中完成浏览器登录、导入 Grok CLI 凭据、管理账号池，以及\n创建或撤销客户端密钥。\n\n建议优先使用代理自己的浏览器 Device Login。直接导入\n`~\u002F.grok\u002Fauth.json` 可能复制一份已经旋转或撤销的 Refresh Token。\n\n## Claude Code\n\n```bash\nexport ANTHROPIC_BASE_URL=http:\u002F\u002F127.0.0.1:8080\nexport ANTHROPIC_AUTH_TOKEN=\"$(jq -r .api_key data\u002Fmeta.json)\"\nexport ANTHROPIC_MODEL=grok-4.5\n\nclaude --effort high\n```\n\n也可以使用配置过的 Claude 模型别名：\n\n```bash\nexport ANTHROPIC_MODEL=claude-sonnet-5\n```\n\n通过 `anthropic.model_aliases` 可以把 Claude 模型映射到指定 Grok 模型。\n\n## OpenAI 兼容客户端\n\n```bash\nexport OPENAI_BASE_URL=http:\u002F\u002F127.0.0.1:8080\u002Fv1\nexport OPENAI_API_KEY=\"$(jq -r .api_key data\u002Fmeta.json)\"\n```\n\n```bash\ncurl --fail --silent --show-error \\\n  http:\u002F\u002F127.0.0.1:8080\u002Fv1\u002Fresponses \\\n  -H \"Authorization: Bearer ${OPENAI_API_KEY}\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"grok-4.5\",\n    \"input\": \"Reply with exactly: ok\",\n    \"max_output_tokens\": 16\n  }'\n```\n\n## Docker Compose\n\n```bash\ncp config.example.yaml config.yaml\ndocker compose up --build -d\ndocker compose exec grokbuild-proxy sh -c 'cat \u002Fapp\u002Fdata\u002Fmeta.json'\n```\n\nCompose 只在宿主机发布 `127.0.0.1:8080`，运行状态保存在命名卷中。\n\n### 可选 SSO 批量导入服务\n\nSSO 转换 sidecar 默认不启动，也不向宿主机发布端口。启用前生成一个随机\nBearer Key，并在 `config.yaml` 的 `sso_converter` 中填写同一个值：\n\n```yaml\nsso_converter:\n  enabled: true\n  endpoint: \"http:\u002F\u002Fsso-import:8090\"\n  api_key: \"替换为随机密钥\"\n  allow_insecure_http: true\n  timeout_sec: 300\n  max_batch: 50\n```\n\n随后用相同密钥启动 `sso-import` profile：\n\n```bash\nexport SSO_CONVERTER_API_TOKEN='替换为与 config.yaml 相同的随机密钥'\ndocker compose --profile sso-import up --build -d\ndocker compose --profile sso-import ps\n```\n\n以上命令适用于源码检出。GitHub Release 的二进制归档还包含一个仅使用已发布\nGHCR 镜像的 Compose 文件，无需 Go、Python 或本地镜像构建：\n\n```bash\ncp config.example.yaml config.yaml\nexport SSO_CONVERTER_API_TOKEN='替换为与 config.yaml 相同的随机密钥'\nexport GROKBUILD_CONTAINER_TAG=0.1.1\ndocker compose -f docker-compose.release.yml --profile sso-import pull\ndocker compose -f docker-compose.release.yml --profile sso-import up -d\n```\n\n发布版 Compose 要求显式设置同一个精确版本标签，避免代理与 sidecar 因移动标签更新不同步而混用版本。\n\n`allow_insecure_http` 只用于 Compose 的隔离内部网络。sidecar 通过独立出站网络\n访问 x.ai；不要为 `sso-import` 添加 `ports`。如需为转换流程配置代理，可额外\n设置 `SSO_CONVERTER_PROXY`。完整安全和运维说明见\n[SSO 转换服务说明](grok2api-sso-to-grokbuild\u002FREADME)。\n\n代理访问 loopback、私网 IP 或单标签 sidecar 名称时强制直连，不会把原始 SSO\n和 sidecar Bearer Key 转发给全局 HTTP 代理；sidecar 访问 x.ai 的代理策略独立配置。\n\n`max_batch` 硬上限为 100，`timeout_sec` 范围为 1–300 秒。代理不会跟随\nsidecar 返回的重定向，避免 SSO 与 Bearer 密钥被重放到其他地址。\n\n预构建镜像：\n\n```text\nghcr.io\u002Fgreygung\u002Fgrokbuild-proxy\nghcr.io\u002Fgreygung\u002Fgrokbuild-proxy-sso-import\n```\n\n## 配置\n\n以 [config.example.yaml](config.example.yaml) 为起点。\n\n| 配置项 | 用途 |\n|---|---|\n| `listen` | HTTP 监听地址，默认仅 Loopback |\n| `allow_public_listen` | 非 Loopback 监听必须显式开启 |\n| `data_dir` | 凭据、客户端密钥和启动密钥目录 |\n| `api_key` | 客户端 API 鉴权；留空自动生成 |\n| `admin_key` | Admin API\u002FUI 鉴权；留空自动生成 |\n| `upstream.*` | Grok CLI 上游地址与客户端请求头 |\n| `oauth.*` | xAI OAuth Issuer、Client、Scope 和回调 |\n| `anthropic.model_aliases` | Claude 模型到 Grok 模型的映射 |\n| `lb.*` | 凭据选择、会话粘滞、刷新和冷却策略 |\n| `proxy.*` | 默认出站代理模式和 URL；Admin 运行时设置可覆盖 |\n| `sso_converter.*` | 可选 SSO 转换服务地址、密钥和边界 |\n| `inspection.*` | 定时巡检、并发、熔断和延迟清理策略 |\n| `import.*` | 文件数、单文件\u002F总大小、条目数、全局排队任务\u002F字节预算和任务保留期 |\n| `limits.*` | Body、超时和并发限制 |\n| `logging.level` | `debug`、`info`、`warn` 或 `error` |\n\n未知 YAML 字段会导致启动失败。\n\n## 探针与指标\n\n```bash\ncurl http:\u002F\u002F127.0.0.1:8080\u002Fhealthz\ncurl http:\u002F\u002F127.0.0.1:8080\u002Freadyz\ncurl http:\u002F\u002F127.0.0.1:8080\u002Fmetrics\n```\n\n- `\u002Fhealthz`：进程存活\n- `\u002Freadyz`：存储可用且至少存在一个可用凭据\n- `\u002Fmetrics`：Prometheus 文本格式指标\n\n## 兼容性与已知限制\n\n本项目只实现文档中列出的 Anthropic \u002F OpenAI 兼容子集。\n\n- Anthropic `count_tokens` 尚未实现，返回 404。\n- Thinking Signature 仅限本代理和原模型\u002F账号路径回放。\n- 部分 Anthropic 推理控制只能近似映射。\n- `top_k` 和 `stop_sequences` 不会转发给 Grok Reasoning 模型。\n- Anthropic Server Tool 的富结果与 Citation UI 尚未完整复刻。\n- 目前只有 Server Web Search 做了专门映射。\n- OAuth 刷新由请求触发，尚无后台预刷新调度器。\n- 上游 CLI 协议并不稳定，可能随时变化。\n- 项目面向可信单一操作者，不是多租户 SaaS。\n\n完整矩阵见 [COMPATIBILITY.md](COMPATIBILITY.md)。\n\n## 文档\n\n- [构建与运行指南](docs\u002Fbuild-and-run.md)\n- [设计文档](DESIGN.md)\n- [兼容性矩阵](COMPATIBILITY.md)\n- [运维指南](docs\u002Foperations.md)\n- [安全策略](SECURITY.md)\n- [免责声明](DISCLAIMER.md)\n- [贡献指南](CONTRIBUTING.md)\n\n## 构建与测试\n\n```bash\nmake build\nmake check\nmake release-snapshot\n\n# 或直接使用 Go\ngofmt -w .\u002Fcmd .\u002Finternal\ngo vet .\u002F...\ngo test .\u002F...\ngo test -race .\u002F...\ngo build .\u002Fcmd\u002Fgrokbuild-proxy\n```\n\n跨平台编译、Docker、GoReleaser、Live Probe 和故障排查见\n[构建与运行指南](docs\u002Fbuild-and-run.md)。\n\n## 社区\n\n友情链接：[LINUX DO](https:\u002F\u002Flinux.do)\n\n## 参考与致谢\n\n项目在设计和协议研究过程中参考了以下开源项目：\n\n- [CLIProxyAPI](https:\u002F\u002Fgithub.com\u002Frouter-for-me\u002FCLIProxyAPI)：协议转换器、\n  Executor 设计和 CPA 风格 Thinking 兼容\n- [open-grok-build](https:\u002F\u002Fgithub.com\u002Fkenryu42\u002Fopen-grok-build)：Grok CLI\n  OAuth、请求规范化、模型和 Billing 行为\n- [pi-grok-cli](https:\u002F\u002Fgithub.com\u002Fkenryu42\u002Fpi-grok-cli)：Grok CLI 端点、\n  请求头、鉴权和模型行为\n- [kiro.rs](https:\u002F\u002Fgithub.com\u002Fhank9999\u002Fkiro.rs)：凭据池和紧凑型自托管\n  Admin 设计\n- [Sub2API](https:\u002F\u002Fgithub.com\u002FWei-Shaw\u002Fsub2api)：多账号运维和 Admin\n  工作流参考\n\n感谢上述项目公开的实现、文档和协议研究。它们均为独立项目，不代表其\n作者认可、赞助或支持本仓库。\n\n## 免责声明摘要\n\n- 仅使用你本人合法持有并获准操作的账号和凭据。\n- 禁止用于违法活动、未授权访问、账号共享、凭据转售、支付或配额绕过、\n  限制规避、恶意自动化及其他滥用。\n- 使用者自行负责遵守法律法规和所有相关服务条款。\n- 使用本项目可能导致额度消耗、服务中断、账号限制、暂停或封禁。\n- 作者和贡献者不对账号、数据、额度、业务、利润或其他直接\u002F间接损失\n  承担责任。\n- 本项目按“现状”提供，不承诺可用性、稳定性、兼容性或安全性。\n- 第三方名称与商标归其各自权利人所有。\n- MIT 许可证只覆盖仓库代码，不授予第三方服务、账号、API、额度或商标\n  权利。\n\n使用前请阅读[完整免责声明](DISCLAIMER.md)。\n\n## 贡献\n\n请阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。协议行为变更应同时补充测试\n并更新 [COMPATIBILITY.md](COMPATIBILITY.md)。\n\n## 许可证\n\n本项目使用 [MIT License](LICENSE)。\n","grokbuild-proxy 是一个本地自托管的协议兼容代理服务，用于将合法持有的 Grok Build 账号接入 Anthropic（Claude Code）和 OpenAI 兼容的客户端工具。它实现双向协议转换：接收 Anthropic Messages 或 OpenAI 格式的请求（如 \u002Fv1\u002Fchat\u002Fcompletions），转发至 Grok Build 后端，并原生支持流式响应、工具调用、Web Search 映射、CPA 风格思考块、加密推理回放及多账号轮换。项目采用 Go 编写，提供内嵌 Admin Web UI、OAuth 设备登录、本地 JSON 凭据管理与 Prometheus 监控，适用于需在私有环境复用 Grok Build 能力、同时保持现有 Claude\u002FOpenAI 工具链兼容性的开发者与技术团队。","2026-07-12 02:30:05","CREATED_QUERY"]