说明
本文基于社区检索整理(2026-04-01),重点面向“手机 Termius + 远程 Linux + Codex CLI”场景。
先看结论
- 手机端要稳定用 Codex,核心不是“让 Termius 后台常驻”,而是“让工作负载在服务器端持久化”。
tmux new-session -A -s <name>是最稳妥的基础模式(有则附加,无则创建)。codex resume --last现在默认按当前目录筛选会话,跨项目误恢复问题比早期版本明显改善。- 默认建议优先
--full-auto(on-request + workspace-write)而不是直接--yolo。 - 需要跨重启恢复时,再上
tmux-resurrect + tmux-continuum,不要一开始就堆复杂度。
1. 为什么是 tmux,而不是“保持 App 后台”
Termius 官方文档明确提到:iOS/iPadOS 背景执行受系统限制,App 进入后台后进程会很快被系统挂起。官方给出的建议之一就是使用 screen/tmux 保住会话内容。
这意味着:手机断网、锁屏、切 App 都是常态,你要把“会话持续性”放在服务器端解决。
2. Codex 会话恢复:当前目录优先
Codex CLI 官方文档现在已明确:
codex resume --last默认恢复“当前工作目录”内最近会话;- 需要跨目录时再加
--all。
这对多仓库场景非常关键,能避免“在 A 项目里误恢复到 B 项目”。
3. 推荐的最小可用入口(bashrc 版)
下面这段是当前社区里最常见且实用的统一入口形态:
tmux-codex() {
local session="solo-codex"
local cmd='env -u http_proxy -u https_proxy -u all_proxy -u no_proxy -u HTTP_PROXY -u HTTPS_PROXY -u ALL_PROXY -u NO_PROXY codex'
if [ "$#" -eq 0 ]; then
cmd="$cmd --full-auto"
else
local escaped_args
escaped_args="$(printf '%q ' "$@")"
cmd="$cmd $escaped_args"
fi
tmux new-session -A -s "$session" "$cmd"
}
常用法:
tmux-codex:启动/附加默认会话tmux-codex --yolo:在已隔离环境中按需启用高权限模式tmux-codex resume --last:恢复当前项目最近会话tmux-codex resume --all:跨目录找最近会话
4. 安全模式建议:先 full-auto,再 yolo
Codex 官方 CLI 说明里:
--yolo(--dangerously-bypass-approvals-and-sandbox)会绕过审批和沙箱;--full-auto是--ask-for-approval on-request + --sandbox workspace-write的快捷组合。
生产/日常建议:
- 默认入口用
--full-auto。 --yolo仅在“外层已隔离(专用 VM/容器/低权限账号)”时使用。- 需要额外目录写权限时,用
--add-dir,不要直接切到danger-full-access。
5. 手机网络抖动场景:SSH keepalive 要配
tmux 解决的是“远端进程不中断”,但 SSH 链路本身仍会掉。
OpenSSH 官方参数里更推荐用协议层 keepalive(ServerAliveInterval / ServerAliveCountMax)来尽早感知僵死连接并重连。
可在 ~/.ssh/config 对移动场景主机加:
Host your-host
ServerAliveInterval 15
ServerAliveCountMax 3
TCPKeepAlive yes
上面这组参数的效果是:约 45 秒无响应时主动断开,减少“假在线”卡死。
6. 可观测与自检:把 /status 当成日常命令
Codex CLI slash commands 里,最实用的是:
/status:看模型、审批策略、可写目录、上下文用量/statusline:把关键状态放到底部状态栏/resume:会话恢复/ps:看后台 terminal 状态(启用相关执行模式时)
建议每次重连后第一件事就是 /status,确认当前策略是否符合预期。
7. 进阶:跨重启恢复(社区常见做法)
如果你不仅要“断线可回连”,还要“服务器重启后可恢复”,社区常见组合是:
TPM(tmux plugin manager)tmux-resurrect(保存/恢复会话、pane、目录)tmux-continuum(定时自动保存、tmux 启动时自动恢复)
注意两个细节:
tmux-continuum依赖status line机制执行定时逻辑;- 主题或其他插件覆盖
status-right时可能导致自动保存失效(需按其 README 建议放置插件顺序)。
8. 社区大规模实践信号
社区项目 codex-cli-farm 的核心思路与上面一致:
- 长生命周期 tmux session;
- 多实例管理、日志聚合;
- 保存/恢复;
- 可选 systemd user 自动恢复。
这说明“tmux 持久化 + 统一入口命令”已经是 Codex CLI 多实例使用的主流工程化方向。
9. 推荐落地顺序(避免过度设计)
阶段 A(今天就能用)
- 配
tmux-codex统一入口 - 配 SSH keepalive
- 用
codex resume --last作为默认续跑方式
阶段 B(稳定后再上)
- 把默认
--yolo调整为--full-auto - 会话名按项目拆分(如
codex-<repo>) - 增加
/status和/statusline的日常检查
阶段 C(重启恢复需求明确后)
- 引入 TPM
- 引入
tmux-resurrect - 再引入
tmux-continuum
参考链接
- Codex CLI 命令选项(含
resume、--yolo、--full-auto):https://developers.openai.com/codex/cli/reference - Codex CLI Features(含恢复会话行为说明):https://developers.openai.com/codex/cli/features
- Codex CLI Slash Commands(
/status、/statusline、/resume等):https://developers.openai.com/codex/cli/slash-commands - Termius 后台连接说明(iOS 限制与 tmux 建议):https://support.termius.com/hc/en-us/articles/900006226306-Keep-your-Termius-sessions-alive-in-the-background
- tmux 手册(
new-session -A语义):https://man.openbsd.org/tmux - OpenSSH 客户端配置(
ServerAliveInterval/ServerAliveCountMax):https://man7.org/linux/man-pages/man5/ssh_config.5.html - Codex 社区需求(背景会话诉求):https://github.com/openai/codex/issues/3968
- 社区工程化示例(codex-cli-farm):https://github.com/waskosky/codex-cli-farm
- TPM:https://github.com/tmux-plugins/tpm
- tmux-resurrect:https://github.com/tmux-plugins/tmux-resurrect
- tmux-continuum:https://github.com/tmux-plugins/tmux-continuum
- Mosh(移动网络下的替代交互链路):https://mosh.org/