
Codex 这阵子有多火不用我多说终端里跑 AI 编程代理丢一个帮我把登录模块重构了的任务出去它自己就吭哧吭哧干半天。问题在于Codex 跑在电脑上电脑不可能一直带在身边。出门在外手机想看一眼任务进度、临时改一下指令甚至在路上让它继续跑个测试咋办传统思路是给电脑搞个公网 IP再配上证书、端口映射麻烦不说大部分人家里的宽带根本拿不到独立公网地址。Paseo 这个方案就是冲着这个痛点来的不需要公网 IP手机也能流畅接管 Codex。我花了两天时间把整套链路跑通从安装 Codex 到 Paseo 配通再到手机端实际操作把过程完整记录下来。这篇文章适合所有在用或者准备用 Codex 的人尤其你如果经常需要远程查看任务、在人不在电脑前的时候想继续干活那这套方案值得花十分钟看完。1. 为什么要折腾手机接管 Codex这件事1.1 我对 Codex 的使用场景和真实痛点先说我的使用场景。Codex 这类终端 AI 编程代理最大的特点就是一次给指令长时间跑任务。我经常在下班前给它丢一个开发任务比如给项目加一个数据导出功能包含 CSV 和 Excel 两种格式写完后跑一遍现有测试。这种任务在本地执行要读取代码库、逐文件修改、运行测试、失败了再自己修跑起来半小时起步。问题就出在这个半小时上。我人不可能一直守在电脑前晚饭时间、通勤路上、睡觉前躺在床上我都想掏出来看一眼现在跑到哪一步了是不是又卡在某个测试用例上了能不能临时打断它换个方向很多人的第一反应是搞远程桌面或者给电脑开 SSH 端口映射。真去做了就会发现一堆坑。第一公网 IP 这东西不是家家都有运营商给不给还要看运气。第二有 IP 还得配端口映射、动态 DNS家里路由器设置一通操作猛如虎。第三就算映射成功了裸奔一个 SSH 端口在公网上扫描攻击分分钟教你做人还得搞证书、改默认端口、配密钥认证。一套下来半天时间没了体验还稀烂。1.2 传统方案为什么都不太顺手如果说用 TeamViewer、向日葵这类远程控制软件呢能用是能用但它们是图形界面远程而 Codex 的核心操作场景是终端。远程桌面看终端字体发虚、卡顿明显、缩放别扭在手机上用更是灾难——虚拟鼠标点终端窗口输个命令能急死人。还有一种思路是把 Codex 跑在云服务器上手机上 SSH 过去。这个方案的问题是Codex 要读取代码库代码得同步到服务器上本地改动和远端改动来回同步太分裂而且长期租服务器也是一笔开销。折腾一圈你会发现最好的方式其实是让你的电脑这个执行环境不变只把操作入口延伸到手机。Paseo 就是解决这个问题的。1.3 Paseo 能解决的问题和适用人群Paseo 的核心卖点就是标题里那句话不用公网 IP手机上流畅接管 Codex。它没有把 Codex 搬到云端而是让手机通过一个加密隧道连接到你的电脑打开一个终端界面去操作跑在本地电脑上的 Codex。这个方案适合几类人一是像前面说的Codex 跑长任务时需要远程查看进度的开发者二是白天在公司电脑上跑任务下班回家想继续用手机接管的人三是手里有不带公网 IP 的机器比如家里台式机、老笔记本但想当Codex 执行机用的人。不需要公网 IP意味着它天然适配家庭宽带、公司内网这种躲在 NAT 后面的场景。2. Paseo 的核心思路把被动等待连接改成主动建立通道2.1 公网 IP 方案的本质困境要理解 Paseo 为什么能绕开公网 IP先得搞清楚传统方案的本质。你在家里跑一个 Web 服务想让手机在外面访问常规做法是让路由器把外部请求转发给内网的这台机器。这里有两个硬性前提第一你必须有公网 IP否则外部根本找不到你家路由器的门第二你必须在路由器上做一个端口映射把外部端口 X对应到内网机器端口 Y。这种模式叫被动等待连接——你的电脑像一个门面得先有门牌号公网 IP然后把门开着端口映射别人才能进来。门牌号没有这事就黄了。而 Paseo 换了一个思路不让你家的机器当被连接方而是让它主动向外发起一个加密连接连接到一个中转节点然后手机也连到同一个中转节点两边的数据在中转节点汇合。你的电脑不需要任何公网 IP只需要能访问外网——这个绝大多数网络环境都做得到。2.2 快递柜类比数据在中转站碰头用生活里的事来类比。传统公网 IP 方案就像把你的家门牌号公布出去别人凭地址找到你家取东西隐私和安全性全靠门锁。而 Paseo 的模式更像快递柜你的电脑把包裹放进一个专属柜子建立加密隧道手机凭取件码连接令牌到同一个柜子取件两边全程不需要知道对方在哪里。你家不需要挂招牌也不需要对外开放但快递照样能到手里。这个模式的好处很明显。第一不需要公网 IP因为电脑和手机都是主动出门只是目的地相同第二不需要在路由器上做任何端口映射家里网络环境零改动第三所有数据走的是加密通道电脑上没有开放任何公网端口攻击者连门都摸不到。2.3 证书和加密是怎么自动解决的说到加密就绕不开证书话题。热搜里有一个高频词是Lets Encrypt 公网 IP 证书说明很多人卡在 HTTPS 证书上。自己搭公网服务证书要么花钱买要么用 Lets Encrypt 申请免费证书——但申请证书本身要求你有一个可被验证的域名和公网地址这又回到了需要公网 IP的死循环。Paseo 这类隧道方案通常把证书问题一并解决了加密通道的证书由工具链自动签发、自动续期用户全程感知不到证书的存在。手机上打开 Paseo 客户端看到的是一个可信的加密连接不会有浏览器那种你的连接不是私密连接的红屏警告。这一点特别重要——折腾过自签名证书的人都知道手机上信任自签名证书有多麻烦Paseo 把这个环节藏掉了。3. 先把 Codex 装好安装配置阶段的高频坑3.1 Codex 的安装方式和首次验证聊 Paseo 之前得先把 Codex 本体准备好。Codex 是 OpenAI 出的终端 AI 编程代理目前主流安装方式是 npm。机器上装好 Node.js建议 18 以上然后执行 npm 安装命令。如果你 npm 源拉不动可以用国内镜像源加速安装这点属于常规操作改一下 registry 就行。装完以后先验证一下能不能正常跑起来。在终端里输入 Codex 的启动命令如果能看到交互式提示符说明安装成功。首次使用需要认证用它提供的登录命令走一遍认证流程或者把 API Key 配置到环境变量里。这一步是所有后续操作的基础Paseo 只是帮你远程打开 Codex 的操作窗口Codex 自己得先能跑。3.2 初始化失败排查auth token is unavailable热搜词里有个很高频的报错codex auth token is unavailable。这个报错的本质是 Codex 找不到可用的认证令牌。我遇到过几种情况一是还没有执行登录操作就急着用二是配置了 API Key 但环境变量没生效比如改了配置文件后终端还是旧环境三是 Codex 的配置文件里认证信息格式不对。排查思路建议按顺序走先确认登录凭证是否已经生成再看当前终端会话有没有加载对应的环境变量最后检查配置文件语法。还有一个容易忽略的点如果你装了多个 Node 版本Codex 的全局安装路径和当前终端 PATH 不一致会出现命令找到了但读不到配置的怪问题。解决方式是确认 which 到的路径和 npm 全局目录一致。3.3 模型配置与第三方模型接入Codex 默认使用的模型一般是最新版的推理模型但使用中可能碰到某个模型不受支持的报错。比如热搜里有句报错原文the gpt-5.6-sol model is not supported when using codex with a...这句话的意思是当前配置的模型在这个接入模式下不被支持。原因通常是两类一类是你把模型名写错了比如大小写不对、楼层名写成了完整模型 ID另一类是你在 Codex 配置里接入了第三方模型服务很多人会接入 deepseek 这类 OpenAI 兼容接口而对方服务端只支持特定模型列表。这时候去第三方服务商官网查一下它支持哪些模型名把 Codex 配置里的 model 字段改成对应值就好。另外如果你用了转发工具来切换不同模型供应商还要确保转发工具那边接收的模型名和 Codex 发送的一致大小写差一个字符都会报不支持。4. Paseo 落地实操从电脑到手机的完整链路4.1 整体架构和准备清单前面讲完了原理这一节进入实操。Paseo 的整个链路分三段你的电脑上跑 Codex同时跑一个 Paseo 的主机端进程手机上安装 Paseo 的客户端 App主机端与客户端通过加密隧道在中转节点相会。你不需要懂网络协议也能配通但理解三段结构有助排查问题。准备工作清单如下电脑上 Codex 已经能正常运行手机能访问外网Wi-Fi 或流量都行下载并安装 Paseo 的主机端程序和手机客户端。整个过程不涉及路由器设置不需要申请公网 IP不需要弄证书。我第一次用时还是有点不放心特意确认了三遍真的不需要路由器做端口转发吗答案是确实不需要。4.2 主机端配置生成连接身份Paseo 安装完成后在电脑终端里初始化主机端。初始化过程一般会做两件事生成一对密钥用于身份验证以及建立一个常驻后台进程来维持隧道。你可以把它理解成你的电脑在 Paseo 的网络里注册了一个身份之后手机连接时认这个身份就够了不需要知道电脑的 IP 地址。初始化成功后终端会显示一个连接身份标识或者配对码。这个信息很关键一定要记好手机连接时要用。用生活类比来说这就是你快递柜的取件码——别人拿到它就能连到你的电脑所以别外传。配置完成后可以查看一下主机端运行状态确认隧道状态是已连接。如果显示未连接多半是网络环境只允许普通 HTTPS 流量可以检查防火墙是否放行了相关通信。4.3 手机端连接三步完成接管手机端的操作更简单。安装 App 后打开它输入电脑端生成的连接信息点击连接。App 会要求你确认对方身份指纹——这一步是为了防中间人攻击把电脑端显示的指纹和手机端显示的指纹对比一下一致就确认。整个验证过程几十秒比配置远程桌面省事多了。连接成功后手机会得到一个终端界面。这个界面本质上是电脑上的一个 shell 会话。你可以直接在这个会话里输入 codex 的启动命令把 Codex 跑起来然后就会看到它熟悉的交互提示符出现在手机屏幕上。到这里你就实现了在手机上接管 Codex——你敲的每一个指令都会在电脑上真实执行Codex 读写的是电脑本地文件模型调用走的还是电脑的网络手机只是一个遥控器。4.4 断线重连和常驻策略手机接管有一个躲不开的场景锁屏、切后台、换 Wi-Fi。网络一断终端会话可能会假死。我测试下来Paseo 的客户端有自动重连机制网络恢复后能重新接上会话。但有几个操作能帮你减少断线带来的影响。第一和在电脑上跑 Codex 一样远程跑长任务时最好配合终端复用工具比如 tmux使用。先在远程会话里开一个 tmux 窗口在 tmux 里启动 Codex这样即使 Paseo 手机端断了Codex 进程还在 tmux 里继续跑重新连接后回到同一个 tmux 窗口就能看到完整输出。这一步极其重要强烈建议任何用 Paseo 接管 Codex 的人都这么做。第二手机端可以调整锁屏保持连接的选项iOS 和 Android 上都有对应的后台保活设置打开后锁屏状态也能维持连接。第三临时断网不用慌重连后回到 tmux 窗口Codex 该继续跑还在继续跑。5. 手机操作 Codex 的体验优化让终端不再难用5.1 终端显示和字体设置Codex 的界面是纯终端交互手机上最影响体验的是字符显示效果。手机屏幕窄默认字号看全角字符和代码缩进都费劲。我第一次连上去时Codex 输出的一行表格直接折成了三行看得脑壳疼。解决思路是调字号和换行策略。Paseo 手机端一般支持等宽字体选项建议开启等宽字体能显著改善对齐效果。字号可以稍微调小一点保证单行能容纳 80 到 100 个字符这样 Codex 输出的表格和代码块不会折行。还有一个细节Codex 输出里经常有 emoji 状态符号虽然我写文章不用 emoji但 Codex 运行日志里确实有如果手机端字体不支持这些符号会出现方块乱码换一个字符集更全的等宽字体基本能解决。5.2 快捷键和输入体验终端操作离不开快捷键。手机上没有物理 Ctrl 键所以需要在客户端里设置虚拟快捷键映射。最常见的是把 CtrlC终止当前操作、CtrlD退出会话、方向键、Tab 补全这些映射到屏幕可点区域。Paseo 手机端一般都自带一个快捷工具栏把高频按键放上去实际用起来比想象中顺手。还有一个实用技巧Codex 的交互模式里你经常会输入多行指令。手机软键盘不支持 ShiftEnter 换行这时候可以在快捷工具栏里加一个发送换行符的按键或者利用 Codex 支持的括号语法分段输入。我个人的习惯是远程接管时指令尽量写得短、一次一义反正随时能看执行结果没必要憋一条超长指令。5.3 多设备同时连接和权限控制出差时手机和电脑可能同时在身边有人会问能不能电脑上也开着终端手机也连着两边同时控制。Paseo 是支持多端接入的但要注意并发控制。Codex 本身同一时间只适合一个交互会话如果你电脑终端里已经跑着一个 Codex手机又启动一个新会话两个会话会各自独立执行容易冲突。我的建议是远程接管时明确谁主谁从。要么在电脑上退出交互只在手机上操作要么约定好电脑端只看不改。因为 Codex 会真实修改本地文件两个人同时给它下指令结果可能互相覆盖——这跟在 Git 里同时改同一行代码产生冲突是同一个道理只不过 Codex 不会提示你冲突了请合并。6. 高频报错排查实录我踩过的坑都在这里6.1 认证和登录类报错codex auth token is unavailable。前面提到过大多数情况是认证信息没写入或没加载。一个容易被忽略的坑是用 Paseo 远程打开终端时这个远程会话可能没有继承你电脑上原有的环境变量。你在本地终端里明明配置好了 API Key但手机连进去发现 Codex 读不到。解决方式是把认证所需的密钥显式写入 Codex 的配置文件里而不是只放在 shell 的启动脚本中。远程会话不走 shell 的交互式启动流程那些 export 语句全都不生效。codex 无法加载组织设置。这个报错我遇到过通常和网络有关Codex 启动时要去拉取账号的组织信息。在通过 Paseo 连接时如果是走手机流量可以试试切回 Wi-Fi如果家里网络本身对某些接口访问不稳定这个报错会时好时坏。另外确认 Codex 版本不是太老老版本和当前服务端的组织设置接口不兼容也会报这个。6.2 模型和转发链路报错the gpt-5.6-sol model is not supported when using codex with a...。这个报错之前说了一半继续补充排查方法。当你配置了第三方模型接入时Codex 会按配置里的模型名向服务端发请求服务端如果返回模型不支持多半是服务商还没更新到该模型或者你用了对方不支持的具体模型版本。去服务商的文档页确认支持的模型列表把 Codex 配置里的 model 字段改成支持的名字。如果你用了本地转发通道来切换模型供应商还需要检查转发通道的版本和配置——有些报错字样会提到cc switch local proxy failed while handling codex endpoint /responses这里的核心是转发通道在处理 /responses 接口时出了问题常见原因是转发工具版本和 Codex 的接口版本不匹配升级转发工具或者降级 Codex 都能解决。我把这个问题的排查顺序总结为先确认模型名拼写和大小写再确认服务商支持列表最后检查转发通道版本。三步走完九成问题都能解决。6.3 连接和隧道类问题Paseo 主机端显示未连接。最常见的原因是电脑上防火墙拦截了对外连接。有些防火墙软件默认只放行浏览器流量对其他应用的对外通信一律拦截。去防火墙设置里看一下 Paseo 主机端程序的出站连接权限允许即可。还有一种情况是企业网络里出口策略严格限制了非标准端口的通信这时候往往只能换网络环境。手机端能连上但看不到终端界面。先确认主机端是不是真的启动了交互式 shell。有个细节Paseo 只能接管已经存在的终端会话如果你电脑上压根没开终端窗口手机连上后自然啥也看不到。主机端需要保持一个常驻的 shell 会话。连接速度慢、操作延迟高。Paseo 走的是自定义加密隧道延迟主要取决于两端到中转节点的网络质量。如果手机在电梯里信号差延迟当然高——这一步不用排查工具问题。排除信号因素后还卡就看手机端是不是走了流量节省模式有些手机会限制后台 App 的网速。6.4 其他杂项Windows 安装和汉化热搜词里有codex windows 设置未完成和codex 汉化这两个词条。Windows 上安装 Codex 确实多一些坑主要是环境变量和默认 shell 的问题。启动 Codex 前把 Node 和 npm 的路径都加到系统 PATH 里用管理员身份的终端执行初始化这两个动作能避掉一大半 Windows 专属问题。设置未完成这个提示通常是首次运行引导流程被中断重新执行初始化命令即可。汉化这块Codex 本身是英文界面但它处理的是代码任务中文自然语言完全没问题——你发给它的指令用中文写它理解得很好。想在界面层面做汉化的话去翻一下第三方做的汉化包但这属于新增的中间层建议谨慎使用尤其在远程接管场景下中间层越多越容易出兼容问题。结尾一点实战心得整套方案跑了快两周我现在下班通勤时基本都靠 Paseo 在手机上看 Codex 的进度。最深的体会是远程接管这事前期的配置成本其实不高真正的分水岭是能不能扛住断线——一定要配合 tmux 使用这比研究任何网络优化手段都管用。哪怕手机断连半路任务还在电脑上老老实实跑着回去一接完整的执行日志就在那等着你。还有一个小技巧是出门前给 Codex 下任务时让它每完成一个重要节点就把结果写入一个日志文件这样哪怕手机上终端显示不全也能直接查看文件内容拿到关键信息。Paseo 这个工具本身不算复杂但它把手机接管电脑终端这件事的门槛降到了可以日常使用的程度。如果你也被 Codex 长任务的无法离开电脑问题困扰过照着这个思路搭一套体验完全不一样。