2504 字
13 分钟

Codex Pocket:把远程 Codex 装进安卓手机

在服务器上交给 Codex 一个耗时任务后,人不一定还能一直守在电脑前。也许只是临时离开工位,也许服务器本来就放在云端;这时真正需要的往往不是一套完整远程桌面,而是能用手机看进度、回复问题、处理审批,再补一句后续要求。

Codex Pocket 正是围绕这个场景制作的独立安卓客户端。它通过 SSH 连接 Linux 服务器,启动服务器上的 codex app-server,再把会话、流式回答、命令输出和审批请求整理成适合手机操作的界面。实际命令和文件修改仍发生在服务器中,手机承担的是随身控制台的角色。

Codex Pocket 是社区开源项目,并非 OpenAI 官方应用。它能够操作远程服务器上的 Codex、项目文件与命令,使用前应当像对待 SSH 客户端一样审慎配置访问权限。

它是怎样工作的#

Codex Pocket 的连接路径很直接:

安卓手机
└─ SSH
└─ Linux 服务器
└─ codex app-server
└─ 项目文件、命令与 Codex 会话

服务器只需要开放原本的 SSH 端口,不必再部署网页桥接服务,也不需要把 Codex 的 HTTP 或 WebSocket 接口暴露到网络。应用使用 bash -lc 启动 Codex,默认从服务器的 PATH、常见安装目录和 nvm 的 Node 目录中自动查找程序,同时识别远程用户的主目录。

这套设计适合已经拥有 Linux 云服务器、虚拟机或家用主机的人。服务器负责保存项目、开发环境和 Codex 会话;手机随时连接同一台机器,因此不会把工作环境复制到移动设备上。

在手机上可以做什么#

应用把每台服务器作为一个一级工作区,各自保存所属聊天。连接后可以新建任务,也可以导入服务器中已有的 Codex 会话,用远程 thread ID 继续之前的上下文。

聊天页不仅显示普通文本,还支持:

  • 流式回答、标题、列表、表格、引用与链接;
  • 代码高亮、行内代码和代码块单独复制;
  • 命令执行输出与文件改动;
  • 命令或文件操作审批;
  • Codex 发起的问题与选项回答;
  • 停止当前任务,以及重命名、搜索和删除手机本地记录。

一台手机可以保存多台服务器,同时连接不同服务器;同一台服务器上,由应用发起的任务则保持一次只运行一个。手机端删除聊天记录不会删除服务器文件,也不会归档远程会话。

界面默认使用深色主题,也能切换为浅色。手机上采用抽屉侧栏,大屏设备使用双栏布局,因此平板或横屏使用时也不会只是把手机版简单拉宽。

SSH 连接与主机指纹#

Codex Pocket 支持 SSH 密码认证、OpenSSH/PEM 私钥,以及带口令的私钥。首次连接一台服务器时,应用会显示 SHA-256 主机指纹;确认后会固定这把主机密钥,之后若指纹发生变化便阻止连接。

这一步不要直接凭感觉点确认。可以先在云服务商控制台或已经可信的终端中核对指纹,再让应用保存。主机重装或 SSH 密钥确实更换后,也应先确认变更原因,避免把中间人攻击误当成普通连接异常。

添加或编辑服务器时,可以直接测试当前表单中的 SSH 认证、路径识别与 Codex 握手。测试不会保存尚未提交的修改,也不会打断已经存在的连接。完整连接过程设有 30 秒总超时,并显示当前阶段;遇到地址解析、TCP 连接、SSH 响应、算法协商或认证问题时,比单一的“连接失败”更容易定位原因。

下载与准备#

截至 2026 年 10 月 29 日,最新正式版为 v0.2.0,支持 Android 8.0(API 26)及以上,并需要较新的 Android System WebView。

APK 大小约 3.21 MiB。下载后可以用发布页提供的校验文件核对完整性,再安装到手机。

从 0.1.2 起,正式安装包沿用固定签名,后续版本可以直接覆盖安装并保留连接配置、凭据和聊天记录。0.1.0 与 0.1.1 使用的是已经无法继续沿用的临时 debug 签名,升级到新版本前需要卸载旧包;卸载会清除手机本地数据,但不会影响服务器上的 Codex 会话与项目文件。

连接手机前,先在 Linux 服务器上以今后用于 SSH 登录的同一用户安装并登录 Codex:

Terminal window
curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex --version
codex login --device-auth

按照终端提示,在手机浏览器中完成设备授权。账号需要具备 Codex 使用权限;也可以预先在服务器上配置 API key,应用本身不要求在手机里再次保存 OpenAI API key。

然后在应用中完成以下设置:

  1. 添加虚拟机,填写名称、地址、SSH 端口和用户名;
  2. 选择密码或私钥认证并保存;
  3. 工作目录与 Codex 路径先保持自动识别;
  4. 连接时核对服务器主机指纹;
  5. 选择服务器,新建聊天并指定一个真实存在的 Linux 绝对目录。

第一次可以先发送一个只读任务:

查看当前项目结构,介绍如何启动,先不要修改文件。

如果自动识别没有找到 Codex 或项目目录,再到高级设置中填写路径。服务器启动脚本也不要向 stdout 输出欢迎横幅,因为 stdout 用于传输 JSON 协议。

后台保活不是任务重试#

连接成功后,Codex Pocket 会通过 Android 前台服务和连接期间的部分唤醒锁维持 SSH。网络中断后,它会按 5 秒到 5 分钟的退避间隔尝试重连;网络恢复时会提前重试。主动点击“断开”或“断开全部连接”后,应用会取消保活意图,不再自行连接。

这里最重要的边界是:自动重连只恢复连接,不会自动重发消息、继续审批或重跑被中断的任务。 这样可以避免同一条命令因为网络抖动被执行两次。重新连接后,应当先刷新远程记录,检查服务器上的文件和进程状态,再决定是否继续。

为了提高熄屏后的稳定性,可以在“设置 → 后台连接 → 设置”中允许应用不受电池优化限制。vivo 等对后台限制较强的系统,通常还需要单独允许自启动和后台高耗电。即便如此,系统强制停止、厂商策略或彻底断网仍可能中断连接,而且持续保活会增加耗电。

本地凭据与日志怎样保存#

密码、私钥和聊天记录统一使用 Android Keystore 生成的 AES-GCM 密钥加密保存,并且系统备份已关闭。应用的 WebView 只加载 APK 内的本地界面资源,禁止跳转和访问外部资源;远程回答中的 HTML 会作为文字显示,图片也不会自动加载。

排查问题时,可以在设置中导出最近 24 小时的调试日志。日志记录客户端与系统版本、目标地址、连接阶段、耗时线索和错误,但不记录私钥、密码、验证码或聊天正文。导出的日志文件由用户自行管理,提交 Issue 前仍应检查其中是否含有不希望公开的服务器信息。

当前还不适合哪些场景#

Codex Pocket 的定位是远程 Codex 控制台,不是完整的 Linux 桌面或通用 SSH 工具。当前版本不包含:

  • Linux 图形桌面的鼠标与窗口操作;
  • 离线任务队列和消息自动重试;
  • SFTP 文件浏览;
  • 跳板机与端口转发配置;
  • 跨手机历史同步或凭据导出;
  • 复杂 MCP 表单与额外权限请求的授权界面。

它也不会替你在服务器上安装或登录 Codex。由于应用能够触发服务器命令与文件改动,最好为 SSH 用户配置与任务相称的最小权限,并继续使用 on-request 审批和 workspace-write 沙箱,而不是把手机端连接当成绕过服务器安全策略的入口。

适合谁使用#

如果日常工作主要发生在 Linux 服务器上,又经常需要离开电脑后查看 Codex 进度,Codex Pocket 提供了一条足够短的路径:不搭建额外桥接服务,只通过 SSH 把已有环境延伸到安卓手机。

它尤其适合云服务器开发、家用实验室和远程虚拟机用户。对于只在本地桌面项目中使用 Codex、没有长期在线 Linux 主机的人,现阶段继续使用电脑端会更直接;如果需要随时浏览服务器文件、传输文件或操作图形界面,则仍要配合专业 SSH/SFTP 客户端或远程桌面。

v0.2.0 已经覆盖了移动端最常用的一条闭环:连接服务器、查看与继续会话、处理审批、后台保活,并在断线后安全地恢复连接。它没有试图把整台电脑塞进手机,而是把真正需要随身处理的 Codex 操作做成了一个轻量入口。

项目链接#

Codex Pocket:把远程 Codex 装进安卓手机
https://shenqihl.cn/posts/codex-pocket/
作者
博主
发布于
2026-10-29
许可协议
CC BY-NC-SA 4.0

评论

欢迎交流。昵称必填,邮箱选填且不会公开。

评论加载中…