Grok Bot 0.18 — 重建与扩展

本仓库是对公开发布的 Grok Bot 0.18.0 macOS 应用的非官方、源码导向重建。
项目始于理解桌面应用构建方式的一次尝试。现在它包含了该应用 Electron、主机、协调器、本地执行、协议和渲染器边界的可读 TypeScript 实现,以及一套确定性工具链,可将这些源码重新转换为可用的 macOS 应用。
它还添加了一些实用实验:
- 面向 Cursor、Claude Code、Codex 和 OpenRouter 的推理路由器;
- Grok Bot 插件/MCP 工具跨路由提供商的支持;
- 路由推理的本地使用量追踪;
- 可选的本地 Docker 沙箱,替代远程盒子;以及
- 集成在精美官方 UI 中的重建设置界面。
这是一个黑客与研究项目,不是 Anysphere 的原始 monorepo,也不是官方的 Grok Bot 版本。从编译后的应用中推断出的名称和模块边界可能与原始源码不同。
仓库中包含什么?
已检入的目录树包含经过审查的重建代码、测试、清单、构建脚本,以及原始 macOS arm64 和 Windows x64 安装程序的 Git LFS 保存副本。它刻意不提交解压后的上游应用、构建输出、本地凭证或大型取证恢复工作区。
公开的 Grok Bot 0.18.0 应用被视为固定的构建输入。在引导过程中,工具链会下载它,验证其 SHA-256 身份,并提取重建所需的部件。
最终应用是有意设计的混合体:
- 应用运行时从
source/下的可读源码编译; - 精美的官方渲染器仍然是 UI 基线;
- 一个窄的确定性变换添加了重建的 Router 设置 UI;
- 原始和修补后的渲染器区块哈希被记录并验证;以及
- 最终应用使用独立的 bundle 标识符和即席签名。
机器上已安装的上游应用永远不会被覆盖。
为什么保留官方渲染器?
分发的应用不包含原始前端源码或源码映射。它包含优化、压缩的生产级 JavaScript 和 CSS 区块:足以检查行为并恢复契约,但不足以恢复作者编写的 React 组件、名称、注释、文件结构或设计系统源码。
以同样的精美程度和行为重建完整前端将是一个单独的、更大的逆向工程项目。对于周末项目来说这不是现实的目标。因此务实的做法是重建运行时和控制平面代码,保留经过校验和固定的官方渲染器,并为新的 Router 设置做最小的可审计 UI 补丁。
frontend/ 是可读的部分重建和设计工作区。它有助于理解 UI 契约和实验干净组件,但不应被误认为是 Anysphere 缺失的原始前端源码,也不应被视为打包渲染器的像素级完美替代品。
保留的原始安装程序
确切的 0.18.0 安装程序的研究副本位于 research-archives/original/0.18.0/ 下,并使用 Git LFS 存储:
| 平台 | 文件 | SHA-256 |
|---|---|---|
| macOS arm64 | macos-arm64/Grok_Bot_0.18.0.dmg | a253ccd8aab01e083f9812a0264354c5034d8ba7f0610bbb557e82ae77d203eb |
| Windows x64 | windows-x64/Grok_Bot_0.18.0_Setup.exe | 464079a15ef5fa8b61ccea8fffcc78f63cfcf6df65fb0ad5e725d8b95f7e437e |
有关源 URL、大小、验证命令和机器可读的工件清单,请参阅 research-archives/README.md。
当前功能
推理路由器
打开 设置 → Router 选择新回合使用的后端:
| 提供商 | 身份验证 | 工具支持 |
|---|---|---|
| Cursor | 现有 Grok Bot/Cursor 会话 | 原生 Grok Bot 工具和插件 |
| Claude Code | 现有 Claude Code 登录 | 路由的 Grok Bot MCP 工具 |
| Codex | 现有本地 ChatGPT/Codex 登录 | 直接响应传输,带 Grok Bot 工具 |
| OpenRouter | 通过桌面密钥桥保存的 API 密钥 | Grok Bot 工具执行循环 |
Cursor 是默认选项。当 Claude Code 和 Codex 的本地客户端已经过身份验证时,它们不需要单独的 API 密钥。应用在路由的对话中保留流式响应、思考状态、反应、富插件提及和 MCP 工具执行。
使用量与计费 显示从返回使用数据的提供商本地记录的请求和 token 总量。这些数字是活动记录,不是权威的提供商发票。
本地 Docker 沙箱
Router 页面还有一个 使用本地 Docker VM 开关。启用后,Grok Bot 将其盒子主机和执行守护进程运行在拥有的本地容器中,而不是连接到远程沙箱。
容器:
- 仅绑定到回环端口;
- 以只读方式挂载内容寻址的主机和守护进程工件;
- 在需要时重用用户现有的提供商身份验证;
- 在协调器连接前经过验证;以及
- 通过相同的设置生命周期停止或替换。
必须运行 Docker Desktop 或其他兼容的本地 Docker 守护进程。远程模式仍然是默认设置。
要求
- 搭载 Apple Silicon 的 macOS
- Node.js 26.5.x
- Xcode 命令行工具
- Git LFS
- Docker Desktop(可选,仅用于本地沙箱)
- 本地 Claude Code 或 Codex 身份验证,用于这些路由器选项
快速开始
git clone <你的仓库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 首先使用固定 0.18.0 DMG 的 Git LFS 保存副本。如果该归档不存在,它会回退到原始公共 URL;环境变量 GROK_BOT_018_APP 也可以指向现有的应用副本。Bootstrap 会验证 DMG 和 app.asar,缓存匹配的 Electron 运行时,并填充被忽略的 src/app/dist 构建输入。
npm run package 编译重建的运行时,应用窄的渲染器/设置变换,创建应用包,分配重建的 bundle 标识,进行即席签名,并验证结果。输出写入:
dist/Grok Bot 0.18 Reconstructed.app
重建的包在打包边界禁用上游更新器,并默认关闭上游 Sentry 和遥测发送。显式提供的环境配置仍然会被尊重。
架构
精美的官方渲染器
│
│ 桌面 preload / RPC
▼
Electron 主进程
│
├── 设置、密钥、身份验证和插件生命周期
├── 远程盒子连接器
└── 拥有的本地 Docker 连接器
│
▼
协调器 + 主机
│
推理路由器
┌───────────┼───────────┐
Cursor Claude Codex / OpenRouter
│
Grok Bot MCP 工具
主要源码区域是:
source/electron-main/— 桌面生命周期、设置、身份验证、盒子连接器、协调器所有权和 RPC 处理程序;source/electron-preload/— 暴露给 UI 的窄的受信任桥接层;source/host/— 推理、工具、MCP、设置和回合执行;source/node-agent-coordinator/— 转录路由、流式活动、反应和路由的 MCP 桥接;source/shared/— 共享契约、设置、协议和提供商辅助函数;frontend/— 可读的 React/TypeScript 渲染器重建和设计工作区;scripts/— 引导、编译、渲染器修补、打包、签名和验证;以及tests/— 发布和路由器回归测试。
更多细节请参阅 docs/ARCHITECTURE.md。
开发命令
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 # 证明全新历史导出是无损的
生成的目录包括 .cache、.build、dist、src/app/dist、recovered、recovery 和本地探针根目录都会被忽略。
项目状态
应用可以启动,核心重建流程可用,包括路由推理、连接的插件和本地 Docker 沙箱。这仍然是一个实验性重建:它针对一个固定的 macOS/arm64 版本,依赖外部提供商会话,并且不保证与未来 Grok Bot 版本兼容。
有关变更,请阅读 CONTRIBUTING.md。有关干净历史导出流程,请参阅 docs/PUBLISHING.md。技术来源和保留的上游边界在 PROVENANCE.md 和 NOTICE.md 中描述。