在手机上用 Claude Code 和 Codex:三种方式对比
想在手机上继续用 Claude Code 或 Codex,有三种做法:官方远程控制(Claude Code 的 Remote Control、ChatGPT 手机 App 里的 Codex),手机只是遥控器,Agent 仍在你的电脑上运行;云端任务,Agent 在厂商的云端沙箱里运行;SSH 加 tmux,用手机终端直接连到运行 Agent 的服务器。前两种上手最快,但对订阅、主机系统和 API 接入方式有要求;第三种适用于任何命令行 Agent 和任何能 SSH 登录的机器。
本文按 2026 年 10 月的官方文档核对,命令在 Claude Code 2.1.302、Codex CLI 0.163 上验证过。
三种方式速查
| 官方远程控制 | 云端任务 | SSH + tmux | |
|---|---|---|---|
| Agent 运行在 | 你的电脑 | 厂商云端 | 你的服务器或电脑 |
| 手机上用 | Claude App / ChatGPT App | Claude App / ChatGPT App | SSH 终端 App |
| 主机要求 | Claude:能跑 claude 的任意系统;Codex:Mac 或 Windows 上的 ChatGPT 桌面版 | 无,代码要能被云端环境拉取 | 能 SSH 登录的 Linux、macOS、BSD 或 Windows |
| 账号 | Claude:Pro / Max / Team / Enterprise 订阅,不支持 API Key;Codex:ChatGPT 账号,按灰度开放 | 对应厂商的订阅 | 不限,API Key、Bedrock、自建网关都可以 |
| 支持的 Agent | 各自只支持自家的 | 各自只支持自家的 | 任何命令行 Agent:Claude Code、Codex、Gemini CLI、Grok…… |
| 手机端体验 | 原生聊天界面,有推送通知 | 原生聊天界面 | 完整终端界面,需要习惯在小屏上操作 TUI |
方式一:Claude Code Remote Control
Remote Control 把 Claude App(iOS、Android)或网页 claude.ai/code 接到你电脑上正在运行的 Claude Code 会话。Claude 始终在你的机器上运行,文件、MCP 服务器和项目配置都照常可用;手机和终端可以交替发消息,对话同步。
启动
# 在项目目录里启动一个可远程控制的交互会话
claude --remote-control "my-project"
# 或者以服务模式运行,手机上可以新建多个会话
claude remote-control
# 已经在 Claude Code 里了:把当前会话交给手机
/remote-control
服务模式下按空格会显示二维码,手机扫码即可打开会话;也可以在 Claude App 的会话列表里找到它。
要求与限制
- 订阅:需要 Pro、Max、Team 或 Enterprise,用
/login登录 claude.ai 账号。Team 和 Enterprise 要管理员先在后台打开 Remote Control 开关。 - 不支持 API Key 和第三方接入:用 Amazon Bedrock、Google Cloud、Microsoft Foundry,或把
ANTHROPIC_BASE_URL指向代理、网关时都不可用。 claude进程必须一直运行:关掉终端,会话就下线。官方文档建议在远程服务器上用 tmux 或 screen 启动,SSH 断开后会话仍在。- 断网:交互会话会一直重试,网络恢复后自动重连;服务模式断网约 10 分钟后进程退出,要重新运行。
- 部分命令只能在终端里用:例如
/plugin、/resume;/model、/compact、/context等可以在手机上用。 - 可在
/config中打开推送:需要你批准操作或回答问题时,手机收到通知。
方式一:ChatGPT 手机 App 里的 Codex
OpenAI 在 ChatGPT 手机 App 里提供了 Codex。手机可以连到一台已配对的电脑,Agent 在那台电脑上运行,手机上启动任务、看终端输出和 diff、批准命令。
- 在 Mac 或 Windows 电脑上打开 ChatGPT 桌面版,进入 设置 → Connections → Control this Mac or PC,选择 Set up 并完成验证。
- 用手机扫描显示的二维码,登录同一个 ChatGPT 账号和工作区,批准连接。
- 在手机 App 里打开 Codex,选择这台电脑和项目,描述任务。
- 电脑要保持开机、不休眠、联网。
- 官方文档只写了 Mac 和 Windows 的桌面版作为被控端,没有提到 Linux 服务器或单独的 Codex CLI。代码和工具链在 Linux 开发机上时,这条路走不通。
- 官方说明“是否可用取决于灰度和工作区设置”,具体以你账号里看到的为准。
方式二:云端任务
Claude Code 和 Codex 都能在厂商的云端环境里跑任务:在手机上选仓库、写需求,Agent 在云端沙箱里改代码,你看 diff、开 PR。电脑不用开着,适合“想到一个改动先丢出去”。
代价是 Agent 看不到你本机的环境:内网服务、本地数据库、私有依赖、GPU、已经登录的命令行工具都用不上,构建和测试要能在云端环境里重现。这类任务和本地开发是两回事,下文不再展开。
方式三:SSH + tmux 直接连服务器
最通用的做法是让 Agent 在服务器的 tmux 里运行,手机用 SSH 连上去。tmux 让任务和手机的连接脱钩:锁屏、断网、换网络,任务都在服务器上继续,下次连上重新附着即可。任何命令行 Agent 都能这么用,账号和 API 接入方式也不受限制。
1. 服务器上准备好 Agent 和 tmux
# Ubuntu / Debian
sudo apt install openssh-server tmux mosh
# 先在服务器上登录一次 Agent
claude # 或 codex、gemini
mosh 可选,装上后手机在 Wi-Fi 和蜂窝网络之间切换也不断线,配置和常见报错见mosh 与 tmux 配置指南。
2. 在 tmux 里启动 Agent
tmux new -A -s claude # 有同名会话就附着,没有就新建
cd ~/my-project
claude --permission-mode plan # 先出计划,批准后才修改
断开后再次运行 tmux new -A -s claude 就回到原来的界面,Agent 的输出一行不少。Codex 对应的只读启动方式是 codex --sandbox read-only。不要在手机上随手用 --dangerously-skip-permissions 或 --dangerously-bypass-approvals-and-sandbox:它们跳过所有确认,你在小屏上很难及时发现 Agent 做了什么。
3. 从外网连回来
服务器在家里或公司内网时,用 Tailscale 组网,手机直接连服务器的 100.x.y.z 地址,SSH 不用暴露在公网。在国内延迟高时,可以自建 DERP 中继。
4. 两者结合
Remote Control 和 tmux 并不冲突:在服务器的 tmux 里运行 claude --remote-control,手机上既能用 Claude App 聊天,也能随时 SSH 进去看完整的终端,或者在同一台机器上顺手跑 Codex、看日志。
在手机终端里用 TUI 的难点
SSH 方式最大的问题不在连接,而在手机键盘:Claude Code 和 Codex 的界面依赖 Esc、Shift+Tab、方向键、Ctrl+C,手机输入法上都没有。常用的几个按键:
| 按键 | Claude Code | Codex |
|---|---|---|
| Esc | 打断当前回复 | 打断当前回复 |
| Esc Esc | 回退到之前的消息 | 编辑上一条消息 |
| Shift+Tab | 切换模式(默认 / 接受编辑 / 计划) | 切换 Plan 模式 |
| ↑ ↓ | 翻阅历史输入、在选项间移动 | 翻阅历史输入、在选项间移动 |
| Ctrl+C | 清空输入或取消 | 清空输入或退出 |
其他问题:长提示词在终端输入框里不好改;想把截图发给 Agent,得先把图片传到服务器;多个 Agent 同时跑时,要一个个附着进去才知道谁在等你批准。
用 Roamtty 走 SSH 方式
Roamtty 是为这个场景做的手机 SSH 终端(Android 和 iPhone),把上面这些步骤做成了按钮:
- 一键启动 Agent:选主机、文件夹、Agent(Claude Code、Codex、Grok)和权限模式,应用在服务器上新建独立的 tmux 会话并带上对应参数,例如计划模式就是
claude --permission-mode plan。 - 会话卡片:首页按待确认、运行中、已完成分组列出所有 Agent,等待批准的卡片上直接点“允许”,完成的卡片上点“追问”接着下指令,不用打开终端。
- tmux 和 mosh:每个会话对应一个远端 tmux 会话,回来时自动重新附着;装了 mosh 优先走 UDP,8 秒无回应回退到 SSH。两者都可以在应用里一键安装。
- 按键:按住屏幕边缘的小幽灵弹出快捷键环,按前台是 Claude Code、Codex、Grok 还是 Gemini CLI 给出各自的按键(Esc Esc、Shift+Tab、Ctrl+C 等);左右滑动发送方向键,双击发送 Tab。
- 图片和长文本:一次插入最多 9 张图片,上传后把服务器上的路径填进输入框;在大输入框里写好长提示词再发送。
Roamtty 没有后端服务器,不经手你的 Agent 账号和 API Key,连接只发往你自己添加的主机。Roamtty 即将开源;iPhone 版已在 App Store 上架(中国大陆区暂未提供),Android 版即将上架 Google Play。操作细节见使用文档。
怎么选
- 只用 Claude Code,有 Pro 或 Max 订阅,主要在自己的电脑上开发:先用 Remote Control,最省事。
- 只用 Codex,主机是 Mac 或 Windows:用 ChatGPT 手机 App 里的 Codex。
- 改动不依赖本地环境,电脑不想一直开着:用云端任务。
- 代码在 Linux 服务器或开发机上、用 API Key 或企业网关、同时跑多种 Agent,或者想在手机上看到完整终端:用 SSH + tmux。
常见问题
| 问题 | 回答 |
|---|---|
| 手机锁屏后 Agent 会停吗? | Remote Control 和 SSH + tmux 下都不会,Agent 在电脑或服务器上运行。前提是 claude 进程或 tmux 会话还在,电脑没有休眠。 |
| Remote Control 报错要求 claude.ai 订阅 | 当前用的是 API Key 或第三方接入。用 /login 登录订阅账号,并取消 ANTHROPIC_BASE_URL 等变量;做不到就用 SSH 方式。 |
| ChatGPT App 里找不到要连的电脑 | 被控端必须是 Mac 或 Windows 上的 ChatGPT 桌面版,保持唤醒,并且和手机登录同一个账号与工作区。 |
| SSH 断开后 Agent 也退出了 | Agent 没在 tmux 里运行。先 tmux new -A -s 名称,再启动 Agent。 |
| 在外面连不上家里的服务器 | 用 Tailscale 组网,见使用文档的从外网连接;国内延迟高时自建 DERP 中继。 |