乐于分享
好东西不私藏

AI 编程工具被锁死在单一后端? | 这个开源项目让 Grok Bot 自由切换 Cursor / Claude / Codex

AI 编程工具被锁死在单一后端? | 这个开源项目让 Grok Bot 自由切换 Cursor / Claude / Codex


痛点与破局

你有没有过这种体验:白天在 Cursor 里写代码,切到 Claude Code 处理复杂任务,又想用 Codex 试试新模型——每换一个 AI 后端,就要换一套工具、重学一套交互、重配一遍 MCP 工具。工具之间的墙,正在消耗你的生产力。

同时,作为一名对桌面应用架构好奇的开发者,你是否也想扒开那些闭源 Electron 应用的外壳,看看里面的 Electron 主进程、沙箱执行、协议层到底是怎么搭起来的?

今天介绍的项目一次满足两个愿望:Grok Bot 0.18 Reconstructed——一个针对公开发布的 Grok Bot 0.18.0 macOS 应用做的源码级重构项目。它不仅用可读的 TypeScript 重建了应用的运行时边界,还额外加上了推理路由(Inference Router):让 Grok Bot 的对话可以在 Cursor、Claude Code、Codex、OpenRouter 之间自由切换。注意:这是一个逆向研究项目,不是官方发布。

核心功能深挖

1. 推理路由:四个后端,一套 UI

打开 Settings -> Router,即可选择新对话使用的推理后端:

Provider认证方式工具支持
Cursor现有 Grok Bot/Cursor 会话原生 Grok Bot 工具与插件
Claude Code现有 Claude Code 登录路由的 Grok Bot MCP 工具
Codex现有本地 ChatGPT/Codex 登录直接 Responses 传输 + Grok Bot 工具
OpenRouter通过桌面 secrets bridge 保存的 API keyGrok Bot 工具执行循环

亮点细节:

  • Cursor 是默认后端
  • Claude Code 和 Codex 不需要单独的 API key,只要本地客户端已登录即可复用认证;
  • 路由切换时保留流式响应、thinking 状态、reactions、富插件 mention 以及 MCP 工具执行——体验无缝;
  • Usage & Billing 页面展示本地记录的请求与 token 统计(注意:这只是活动记录,不是服务商账单)。

2. 本地 Docker 沙箱:不连远程 box

Router 页面还有一个 Use local Docker VM 开关。开启后,Grok Bot 会在本地自有容器中运行 box host 和执行 daemon,替代远程沙箱。容器特性:

  • 仅绑定 loopback 端口;
  • 以只读方式挂载内容寻址的 host 与 daemon 产物;
  • 需要时复用用户已有的 provider 认证;
  • coordinator 连接前会先验证容器;
  • 通过同一套 settings 生命周期停止或替换。

前提:需要 Docker Desktop 或兼容的本地 Docker daemon。远程模式仍是默认。

3. 混合式架构重构:源码 + 锁定渲染器

为什么前端不重写?作者解释得很诚实:官方发布包里只有压缩混淆后的 JS/CSS chunk,没有原始 React 组件、注释和设计系统源码,周末项目重写整个前端不现实。所以采用混合策略:

  • 应用运行时由 source/ 下的可读源码编译;
  • 保留官方精修渲染器作为 UI 基线;
  • 用一个窄范围的确定性 transform 注入重构的 Router 设置 UI;
  • 原始与补丁后的渲染器 chunk hash 均被记录和校验;
  • 成品使用独立 bundle identifier 和 ad-hoc 签名,绝不覆盖机器上已装的官方应用

官方安装器以 Git LFS 归档保存,且校验 SHA-256:

平台文件SHA-256
macOS arm64macos-arm64/Grok_Bot_0.18.0.dmga253ccd8aab01e083f9812a0264354c5034d8ba7f0610bbb557e82ae77d203eb
Windows x64windows-x64/Grok_Bot_0.18.0_Setup.exe464079a15ef5fa8b61ccea8fffcc78f63cfcf6df65fb0ad5e725d8b95f7e437e

4. 整体架构一览

polished shipped renderer

│ desktop preload / RPC

Electron main

├── settings, secrets, auth and plugin lifecycle
├── remote box connector
└── owned local Docker connector


coordinator + host

inference router
┌───────────┼───────────┐
Cursor Claude Codex / OpenRouter

Grok Bot MCP tools

主要源码区域:

  • source/electron-main/ — 桌面生命周期、settings、auth、box 连接器、coordinator 所有权与 RPC 处理;
  • source/electron-preload/ — 暴露给 UI 的窄信任桥;
  • source/host/ — 推理、工具、MCP、settings 与 turn 执行;
  • source/node-agent-coordinator/ — 转录路由、流式活动、reactions 与路由 MCP 桥;
  • source/shared/ — 共享契约、协议与 provider 辅助;
  • frontend/ — 可读的 React/TypeScript 渲染器重构与设计工作区;
  • scripts/tests/ — 构建链与回归测试。

实战演示

环境要求:macOS Apple Silicon、Node.js 26.5.x、Xcode Command Line Tools、Git LFS;本地沙箱需 Docker Desktop;路由 Claude Code / Codex 需对应的本地登录。

从克隆到启动:

git clone <your-repository-url>
cd grok-bot-0.18-reconstructed
git lfs install
git lfs pull
npm ci
npm run bootstrap
npm run check
npm run package
open "dist/Grok Bot 0.18 Reconstructed.app"

说明几个关键步骤:

  • npm run bootstrap 优先使用 Git LFS 保存的 0.18.0 DMG;若归档缺失则回退到公开 URL;也可用 GROK_BOT_018_APP 指向已有应用副本。Bootstrap 会校验 DMG 和 app.asar、缓存匹配的 Electron 运行时。
  • npm run package 编译重构运行时、应用渲染器 transform、创建 app bundle、赋予独立标识、ad-hoc 签名并验证,输出到:
dist/Grok Bot 0.18 Reconstructed.app

常用开发命令:

npm test                  # 聚焦回归测试
npm run typecheck # 渲染器 TypeScript
npm run source:typecheck # 运行时 TypeScript
npm run frontend:build # 构建可读渲染器重构
npm run package # 构建、签名并验证 macOS 应用
npm run verify # 验证已打包应用
npm run smoke # 有界原生冒烟检查
npm run publication:check # 证明全新历史导出无损

避坑指南与总结

几个必须知道的坑:

  • 仅锁定单一版本:只针对 0.18.0 macOS/arm64,不承诺兼容未来的 Grok Bot 版本;
  • 依赖外部 provider 会话:Cursor/Claude Code/Codex 的登录态由外部客户端管理,会话失效会影响路由;
  • 非官方项目:这是逆向重构,模块名和边界可能与原始源码不同;
  • 隐私方面,重构包默认关闭上游 Sentry 与遥测、禁用上游更新器,但显式提供的环境配置仍会被尊重;
  • frontend/ 只是部分重构与设计工作区,别误以为是完整前端源码。

适合谁:想研究 Electron 桌面应用逆向与架构分层(main/preload/host/coordinator)的开发者;想在 Grok Bot UI 里统一使用多个推理后端的重度 AI 编程用户;对 MCP 工具路由感兴趣的人。不适合:追求稳定生产工具链的团队,或非 Apple Silicon 用户。

一句话总结:这是一个把“逆向研究”和“实用工具”结合得相当漂亮的项目——源码可读、hash 可验证、架构文档齐全,值得一读。


GitHub开源地址:https://github.com/b-nnett/grok-bot-0.18-reconstructed