Codex 的远程连接不是一个功能,而是两套相互独立的方案,分别服务于 Desktop App 和 CLI,适用场景和限制也完全不同。
两套方案概览
| 主机端 | 客户端 | 传输协议 | |
|---|---|---|---|
| Remote Connections | Codex Desktop App | ChatGPT 手机 App | 专有协议 |
| Remote TUI | Codex CLI(app-server) | 另一台机器的 Codex CLI | WebSocket |
两者之间没有交集:手机 App 只能连 Desktop App,另一台 CLI 只能连 CLI 的 app-server,不能混用。
Desktop App 远程连接
这是文档里 Remote Connections 页面描述的方案,体验上和 Claude Code Remote Control 最像。
前置条件
- 主机装有 Codex Desktop App(Mac 或 Windows),保持在线登录状态
- 客户端用 ChatGPT 手机 App(iOS / Android),同一账号或工作区有 Codex 权限
- 如果账号开启了 MFA、SSO 或 Passkey,连接时需要完成验证
配置流程
在主机的 Codex App 里发起配对,App 会生成一个 QR 码;用手机 ChatGPT App 扫码,经过账号验证后连接完成。
连入后可以做的事:
- 在手机上继续进行中的线程,发送指令、审批操作
- 查看输出、diff、截图
- 任务完成时收到通知
- 在多台主机和线程之间切换
主机上的仓库文件、shell 环境、插件、MCP server、credentials 都通过主机端提供,Computer Use 和浏览器能力需要在主机端显式开启。
SSH 主机
如果主机是远程 SSH 服务器,需要在 ~/.ssh/config 里配置,验证 SSH 访问,并在远端安装 Codex。连接通过 SSH 隧道建立,不对外暴露公网端口。
常见问题
| 现象 | 原因 |
|---|---|
| 连接中断 | 主机休眠或网络断开 |
| 认证失败 | MFA / SSO 未完成 |
| 找不到主机 | Codex App 未在前台运行或未登录 |
CLI Remote TUI
这是 Codex CLI 的远程方案,在 features 页面的 Session Management 部分有描述。
工作原理
Codex CLI 内置一个 app-server,支持三种传输协议:
- stdio(默认):换行符分隔的 JSON
- WebSocket(experimental):每帧一条 JSON-RPC 消息
- Unix socket:标准 HTTP Upgrade 握手上的 WebSocket
Remote TUI 走的是 WebSocket 传输:在一台机器上启动 app-server,另一台机器的 Codex CLI 通过 WebSocket 连入,操控同一个 TUI。认证支持 capability token 和带 TLS 的 signed bearer token。
使用方式
在主机上启动 app-server 模式后,另一台机器指定连接地址和认证 token 接入。两端都需要安装 Codex CLI。
设计边界
app-server 的文档明确说明,ws://127.0.0.1:PORT 的设计面向 localhost 和 SSH port-forwarding,不是公网直连。手机或浏览器无法直接连接 CLI 的 app-server——除非自行在上层搭转发和认证层。
这也解释了一个常见的混淆:虽然 CLI 和 Desktop App 共用同一套 app-server 基础设施(GitHub issue #28913 记录了两者复用同一 app-server 导致 conda 环境错配的 bug),但手机 App 只认识 Desktop App 暴露出来的那个入口,不会自动发现 CLI 启动的 app-server。
和 Claude Code Remote Control 的对比
Claude Code 的 Remote Control 是单一方案:CLI 在本地跑,从浏览器(claude.ai/code)或手机 Claude App 接入,不需要在另一端安装任何东西。
| Codex Desktop App | Codex CLI Remote TUI | Claude Code Remote Control | |
|---|---|---|---|
| 手机 App 接入 | ChatGPT App | — | Claude App |
| 浏览器接入 | — | — | claude.ai/code |
| 另一台 CLI 接入 | — | 支持 | 支持(SSH) |
| 无需客户端安装 | 需要 ChatGPT App | 需要 Codex CLI | 支持 |
Codex 把"手机接入"和"CLI 远程"拆成两个独立方案,分别需要 Desktop App 或 CLI 在主机端,缺乏统一入口。Claude Code 则用一个方案覆盖了浏览器和手机,主机只需要 CLI。