Use this command to install OpenCodex:
winget install --id=RyensX.OpenCodex -e Copy WinGet command to clipboard 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.
Features
- Access Codex on the target machine through a browser, with no proxy network or extra account requirements, and support for phones, tablets, computers, and other devices.
- Native Codex experience.
- Supports local access, LAN access, and remote LAN access with Tailscale / ZeroTier / VPN.
- Supports setting an access password to avoid unauthenticated exposure.
- Provides a launcher for visual configuration of the listen address, port, access password, and more.
- Automatically updates to the local Codex Desktop version on startup, keeping compatibility with new-version features.
- Provides optimizations for mobile devices.
OpenCodex
中文 | English
OpenCodex 是一个Codex Desktop中间层,它可以让你直接使用手机、平板或另一台电脑通过浏览器访问并操作目标机器上的 Codex,让你可以随时随地AI Coding。
天塌了😭刚准备开源,谁知道一觉醒来 ChatGPT App 就对 Codex 做了支持。
但对比官方还是有一些使用场景上的优势:
无需魔法上网。
无需外区Google Play/苹果账号。
支持 Codex 的完整功能,例如文件树、终端、审查等,便于随时随地 AI Coding。
自由搭配内网穿透/公网,无需经过官方中继服务器,速度快且数据易于保护隐私数据。
特性
通过浏览器访问目标机器上的 Codex,无需魔法网络和账号,支持手机、平板、电脑等多种设备。
原汁原味Codex使用体验。
支持本机访问、局域网访问和配合 Tailscale / ZeroTier / VPN 的远程局域网访问。
支持设置访问密码,避免无认证暴露。
提供桌面启动器,可可视化配置监听地址、端口和访问密码等。
启动时会自动更新到本地 Codex Desktop 版本,自动兼容新版本功能。
针对移动端提供优化。
环境要求
Node环境
pnpm
本机已安装 Codex Desktop(无需启动,但也支持同时使用)。
macOS 或 Windows(Linux暂未测试)。
如何使用
桌面启动器
下载安装:
打开release下载安装包安装
本地调试:
pnpm install
pnpm run launcher:dev
生成 macOS 安装包:
pnpm run launcher:dist:mac
生成 Windows 安装包:
pnpm run launcher:dist:win
产物会输出到 release/。首次启动会随机选择一个可用端口,修改监听地址、端口或访问密码后会自动重启服务让配置生效。
> 使用前需要本机已安装 Codex Desktop。
命令行启动
如果只是临时调试,也可以通过命令行启动:
局域网:
pnpm install
PORT=3737 pnpm run web:dev
支持远程访问:
pnpm install
HOST=0.0.0.0 PORT=3737 pnpm run web:dev
强烈建议设置访问密码和修改端口。可以复制示例配置后编辑其中的密码:
cp config.example.yaml config.yaml
配置示例:
auth:
password: "你的密码"
启动后访问:
http://127.0.0.1:3737
无头服务器启动
配置步骤
远程访问
OpenCodex本身不提供远程访问服务,如果需要在其他设备中远程访问,请使用Tailscale、ZeroTier、Cloudflare Tunnel、企业自建 VPN 等方式搭建网络,然后在启动器中打开局域网模式进行访问。
> 也可以使用公网,但不建议把 OpenCodex 直接暴露到公网,还是推荐上述工具,更加安全可控
常用环境变量
变量 默认值 说明 HOST0.0.0.0命令行 gateway 监听地址。 PORT3737命令行 gateway 监听端口。 OPENCODEX_HOST127.0.0.1Launcher 首次启动 gateway 时使用的默认监听地址。 OPENCODEX_PORT随机可用端口 Launcher 首次启动 gateway 时使用的默认端口。 OPENCODEX_PREFERRED_LANGUAGESzh-CNOpenCodex 自有界面语言首选列表,支持 JSON 数组或逗号分隔,例如 ["zh-Hans-CN","en-CN"]。Launcher 会自动传入系统首选语言。 OPENCODEX_PLUGIN_DIRS空 外部插件根目录,结构需与 web-shell/plugins 一致;多个目录可用系统路径分隔符或 JSON 数组传入。 OPENCODEX_LOG_MAX_MB10Launcher 写入的 gateway.log 单文件大小上限,单位 MB;最多额外保留一个 gateway.log.old。 CODEX_WEB_CONFIG_PATHconfig.yamlgateway 认证配置文件路径。 CODEX_WEB_AUTH_TOKEN_TTL_MS43200000gateway 访问 token 有效期,默认 12 小时。 CODEX_WEB_DEBUG空 设为 1 或 true 后输出更多调试日志。 CODEX_WEB_SLOW_LOG_MS750IPC 慢调用日志阈值,单位毫秒。 CODEX_WEB_LOCAL_FILE_TOKEN_TTL_MS300000本地文件预览 URL token 有效期,单位毫秒。 CODEX_DESKTOP_APP_PATH自动扫描 指定 Codex Desktop 安装路径或 app.asar 所在路径。 CODEX_DESKTOP_EXECUTABLE_PATH自动扫描 Windows/Linux 下指定 Codex Desktop Electron 可执行文件路径。 CODEX_APP_SERVER_BINARY_PATH自动扫描 Windows 下指定 Codex app-server/CLI 可执行文件路径。 CODEX_CLI_PATH自动扫描 Windows 下指定 Codex CLI 可执行文件路径。 CODEX_WEB_RUNTIME_DIR.data/runtime
高级调试环境变量
变量 默认值 说明 CODEX_WEB_PICKED_FILES_MAX_COUNT20Web 端临时 picked file 请求目录数量上限。 CODEX_WEB_PICKED_FILE_MAX_BYTES52428800单个 picked file 大小上限,单位字节。 CODEX_WEB_PICKED_FILES_MAX_TOTAL_BYTES104857600picked file 临时目录总大小上限,单位字节。 CODEX_WEB_PICKED_FILE_TTL_MS86400000picked file 临时目录保留时间,单位毫秒。 CODEX_WEB_DISABLE_ASSET_CACHE空 设为 1 后禁用 gateway 静态资源缓存。 CODEX_WEB_DISABLE_GZIP空 设为 1 后禁用 gateway gzip 响应压缩。 OPENCODEX_DEBUG_WS空 设为 1 后启用 WebSocket/app-host 链路诊断。 OPENCODEX_WS_LARGE_LOG_BYTES262144WebSocket 大消息日志阈值,单位字节。 OPENCODEX_WS_SEND_SLOW_MS80WebSocket 发送慢日志阈值,单位毫秒。 OPENCODEX_WS_STRINGIFY_SLOW_MS20WebSocket JSON 序列化慢日志阈值,单位毫秒。 OPENCODEX_WS_BUFFERED_LOG_BYTES524288WebSocket bufferedAmount 日志阈值,单位字节。 OPENCODEX_APP_HOST_TRAFFIC_FLUSH_MS2000app-host 流量统计 flush 间隔,单位毫秒。 OPENCODEX_APP_HOST_LARGE_FRAME_BYTES65536app-host 大帧日志阈值,单位字节。 OPENCODEX_WS_DISABLE_DEFLATE空 设为 1 后关闭 WebSocket permessage-deflate。 OPENCODEX_WS_DEFLATE_THRESHOLD65536WebSocket 压缩启用阈值,单位字节。 OPENCODEX_WS_DEFLATE_CONCURRENCY4WebSocket 压缩并发限制。 OPENCODEX_WS_DEFLATE_LEVEL3WebSocket zlib 压缩等级。
常见问题
第一次打开会话历史为空
第一次加载可能较慢,也会受到远程局域网网速影响。稍等一会后再刷新或重新进入即可。
会话同步不及时
如果你把OpenCodex和官方Desktop同时使用,因为两者都各自维护一个会话状态,虽然是同一个数据但是可能并不会完全实时同步。
推荐无论是本地还是远程都直接只使用OpenCodex,可以配合PWA,体验和官方Desktop相差无几。
启动后打不开页面
可以先确认服务是否正常:
curl http://127.0.0.1:3737/api/health
如果端口被占用,可以换一个端口:
PORT=3738 pnpm run web:dev
插件系统
OpenCodex自带插件系统,可以通过插件对Codex做一些功能增强,欢迎广大开发者基于本系统开发插件
友链
LinuxDo