[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-76269":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},76269,"OpenCodex","RyensX\u002FOpenCodex","RyensX","OpenCodex is a middleware layer for Codex Desktop. It lets you use a phone, tablet, or another computer to access and operate Codex on a target machine through a browser, making it suitable for continuous AI Coding in LAN or remote LAN environments.","",null,"JavaScript",281,26,4,1,0,15,125,181,134,4.29,"GNU Affero General Public License v3.0",false,"main",true,[],"2026-06-12 02:03:41","# OpenCodex\n\n**中文** | [English](docs\u002FREADME_EN.md)\n\nOpenCodex 是一个 Codex 运行环境的轻量实现，通过它能把官方 Codex Renderer 运行在普通 Web 环境中，使用户可以通过任意设备、任意网络，远程访问并操作目标机器上运行的 Codex。\n\n一句话概括：\n\n```text\nbrowser -> web-shell -> official Codex renderer -> bridge polyfill -> gateway -> Codex app-server \u002F local host capabilities\n```\n\n---\n天塌了😭刚准备开源，谁知道一觉醒来ChatGPT App就对Codex做了支持\n\n但对比官方还是有优势的：\n1. 无需魔法上网\n2. 无需Google Play账号\n3. Codex完整功能支持，例如文件树、终端、审查等，便于随时随地AI Coding。\n\n\n> 目前本软件仅为测试版，可能还存在不少问题，如若发现可issue反馈至开发者修复。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fimage\u002Fstart.jpg\" alt=\"OpenCodex start\" width=\"23%\" \u002F>\n  &nbsp;\n  \u003Cimg src=\"docs\u002Fimage\u002Fsettings.jpg\" alt=\"OpenCodex settings\" width=\"23%\" \u002F>\n  &nbsp;\n  \u003Cimg src=\"docs\u002Fimage\u002Fhome.jpg\" alt=\"OpenCodex home\" width=\"23%\" \u002F>\n  &nbsp;\n  \u003Cimg src=\"docs\u002Fimage\u002Fnew.jpg\" alt=\"OpenCodex new session\" width=\"23%\" \u002F>\n\u003C\u002Fp>\n\n## 核心内容\n\n本项目包含三部分核心内容：\n\n| 模块 | 作用 |\n| --- | --- |\n| `web-shell\u002F` | 浏览器入口，用于加载官方 renderer 和搭建Render运行环境。 |\n| `gateway\u002F` | 本地 Node gateway，提供 HTTP、WebSocket、IPC 兼容、本地文件、git、终端、状态同步和 app-server 转发。 |\n| `\u002Felectron-to-web\u002F` | Electron 语义适配层，gateway 默认优先使用它来复用 Electron IPC 行为，另有自实现的DirectGatewayElectronIpcPort。 |\n\n本软件**不会修改**Codex的代码，仅使用对应Render产物。\n\nGateway启动时会自动检查本地Codex是否有更新，有更新时会自动更新使用的Render产物（也就是会自动更新到对应Codex版本）\n\n## 架构概览\n\n```mermaid\nflowchart TB\n  L1[\"访问层\u003Cbr\u002F>远程设备浏览器\u003Cbr\u002F>负责发起访问与展示交互界面\"]\n\n  L2[\"Web 宿主层\u003Cbr\u002F>web-shell\u003Cbr\u002F>负责在普通 Web 环境中承载官方 Renderer\"]\n\n  L3[\"Renderer 兼容层\u003Cbr\u002F>codex-bridge-polyfill\u003Cbr\u002F>负责补齐 Electron Renderer 运行依赖\u003Cbr\u002F>并把 Renderer 调用转换为 Web IPC\"]\n\n  L4[\"Gateway 层\u003Cbr\u002F>gateway\u003Cbr\u002F>负责认证、HTTP \u002F WebSocket、IPC 分发\u003Cbr\u002F>以及目标机器侧的统一入口\"]\n\n  L5[\"宿主能力适配层\u003Cbr\u002F>Gateway IPC \u002F electron-to-web \u002F Direct IPC\u003Cbr\u002F>负责适配 Desktop 宿主语义、本地状态、文件、终端、Git 等能力\"]\n\n  L6[\"Codex 业务能力层\u003Cbr\u002F>Codex app-server\u003Cbr\u002F>负责会话、模型、配置、MCP、任务执行等核心业务能力\"]\n\n  L7[\"官方产物层\u003Cbr\u002F>Codex Desktop \u002F Renderer Bundle\u003Cbr\u002F>负责提供官方 Renderer 产物与版本来源\"]\n\n  L1 --> L2\n  L2 --> L3\n  L3 --> L4\n  L4 --> L5\n  L5 --> L6\n\n  L7 -.提供 Renderer 产物.-> L2\n```\n\n关键原则：\n\n- 复用官方 Renderer，不重写主界面。\n- 浏览器侧只补宿主环境，不承接业务语义。\n- gateway 负责本地能力和 app-server 代理，避免远端浏览器直接接触本机 token 或 app-server。\n- 未覆盖的 Desktop IPC 通过 `reports\u002Funknown-ipc.jsonl` 持续记录并补齐。\n\n## 环境要求\n\n- Node.js 20 或更高版本\n- npm\n- 本机已安装 Codex Desktop（推荐），或通过环境变量显式指定 Codex Desktop \u002F official bundle 路径。\n- Mac\u002FWindows系统，目前Mac完全支持，Windows未测试。\n\n依赖安装：\n\n注意要子模块取\n```\ngit clone --recursive xxx\n```\n\n```bash\nnpm install\n```\n\n## 如何使用\n\n先编译\n\n```bash\nnpm run build:vendor\n```\n```bash\nnpm run build:gateway\n```\n\n启动服务：\n\n```bash\nHOST=0.0.0.0 PORT=3737 CODEX_WEB_PASSWORD=你的密码 npm run web:dev\n```\n\n健康检查：\n\n```text\ncurl http:\u002F\u002F127.0.0.1:3737\u002Fapi\u002Fhealth\n```\n\n远端访问：\n\n配合Tailscale、ZeroTier、企业自建VPN等实现**远程局域网**安全访问，**不建议直接暴露公网**。\n\n\n## 常用环境变量\n\n| 变量 | 默认值 | 说明 |\n| --- | --- | --- |\n| `HOST` | `0.0.0.0` | gateway 监听地址，默认面向远程访问。 |\n| `PORT` | `3737` | gateway 监听端口。 |\n| `CODEX_WEB_PASSWORD` | 空 | **强烈建议设置；设置后会启用 gateway 访问密码，否则远程访问时安全无法保证。** |\n| `CODEX_WEB_AUTH_TOKEN_TTL_MS` | `43200000` | gateway 访问 token 有效期，默认 12 小时。 |\n| `CODEX_WEB_DEBUG` | 空 | 设为 `1` 或 `true` 后输出更多调试日志。 |\n| `CODEX_WEB_SLOW_LOG_MS` | `750` | IPC 慢调用日志阈值。 |\n| `CODEX_WEB_LOCAL_FILE_TOKEN_TTL_MS` | `300000` | 本地文件预览 URL token 有效期。 |\n| `CODEX_DESKTOP_APP_PATH` | 自动扫描 | 指定 Codex Desktop 安装路径或 `app.asar` 所在路径。 |\n| `CODEX_WEB_OFFICIAL_BUNDLE_DIR` | `cache\u002Fofficial-bundle` | 指定官方 webview 解包缓存目录。 |\n| `CODEX_WEB_IPC_IMPL` | `electron-to-web` | 设为 `direct` 可使用 direct IPC 兜底实现。 |\n\n\n## 文件\u002F目录说明\n\n| 路径 | 说明 |\n| --- | --- |\n| `gateway\u002Fsrc\u002Fserver.ts` | gateway 启动入口，组装 HTTP、WebSocket、认证、official bundle、IPC 和 app-server。 |\n| `gateway\u002Fsrc\u002Fcodex-app-server.ts` | Codex app-server 客户端，负责连接、请求转发、缓存预热和健康状态。 |\n| `gateway\u002Fsrc\u002Fipc\u002F` | gateway IPC 抽象和 Electron\u002FCodex 兼容实现。 |\n| `gateway\u002Fsrc\u002Fofficial\u002F` | Codex Desktop app.asar 扫描、识别、缓存和 webview 解包逻辑。 |\n| `web-shell\u002Findex.html` | 浏览器 bootstrap shell，负责登录页、设置入口和加载 patched official renderer。 |\n| `web-shell\u002Fcodex-bridge-polyfill.js` | 浏览器侧 Electron\u002FCodex bridge polyfill。 |\n| `reports\u002Funknown-ipc.jsonl` | 运行时记录的未知 IPC。 |\n\n## npm 脚本\n\n| 脚本 | 说明 |\n| --- | --- |\n| `npm run build:gateway` | 编译 `gateway\u002Fsrc` 到 `gateway\u002Fdist`。 |\n| `npm run web:dev` | 启动已编译的 gateway。 |\n| `npm run build:vendor` | 编译 `vendor\u002Felectron-to-web`。 |\n| `npm run test:vendor` | 运行 `vendor\u002Felectron-to-web` 测试。 |\n\n## 排障\n\n### 打开会话历史聊天空\n\n第一次加载较慢，且受到远程局域网速率限制，一般看不到记录等一会就好。\n\n### 启动后打不开页面\n\n先确认 gateway 是否监听成功：\n\n```bash\ncurl http:\u002F\u002F127.0.0.1:3737\u002Fapi\u002Fhealth\n```\n\n如果端口冲突，换端口启动：\n\n```bash\nPORT=3738 npm run web:dev\n```\n\n### 找不到 Codex Desktop official bundle\n\n显式指定本机 Codex Desktop 路径：\n\n```bash\nCODEX_DESKTOP_APP_PATH=\"\u002FApplications\u002FCodex.app\" npm run web:dev\n```\n\n也可以指定缓存目录：\n\n```bash\nCODEX_WEB_OFFICIAL_BUNDLE_DIR=\".\u002Fcache\u002Fofficial-bundle\" npm run web:dev\n```\n\n### IPC 行为不完整\n\n查看未知 IPC 记录然后报告给开发者：\n\n```bash\ntail -f reports\u002Funknown-ipc.jsonl\n```\n\n### 友链\n\n[LinuxDo](https:\u002F\u002Flinux.do\u002F)\n","OpenCodex 是一个轻量级的 Codex 运行环境，允许用户通过 Web 访问并操作其电脑上的 Codex。项目采用 TypeScript 编写，主要功能包括提供官方 Codex Renderer 的 Web 环境运行支持，实现浏览器与本地 Codex 之间的通信桥梁。它包含三个核心模块：web-shell 作为浏览器入口、gateway 负责本地服务及 IPC 转发、electron-to-web 适配 Electron 语义。适用于需要远程访问和使用 Codex 完整功能（如文件管理、终端操作等）的场景，特别适合开发者在不同设备间灵活切换工作环境时使用。此外，相比官方应用，OpenCodex 不需要特殊网络条件或特定平台账号即可运行。",2,"2026-06-11 03:54:50","CREATED_QUERY"]