Litter 是一个开源的 原生 iOS + Android 客户端 ,专门用于连接和使用 OpenAI Codex(主要是桌面端的 Codex 服务器),让你可以在手机上流畅地访问运行在 Mac(或其它电脑)上的 Codex 会话。
它特别适合想在手机上远程使用 Codex 的用户,支持通过 本地网络(LAN) 、Tailscale 或 SSH 连接 Mac 上的 Codex 服务,界面是原生风格,体验比较丝滑。

主要功能
- 在手机上查看和继续 Mac 上已有的 Codex 会话(会话按当前工作目录
cwd区分)。 - 支持直接发现运行中的 Codex,或通过 SSH 远程启动服务器。
- iOS 和 Android 都有原生 App。
- 底层使用 Rust 桥接实现跨平台客户端逻辑。
如何使用(最常用流程)
1. 在你的 Mac 上准备好 Codex
- 确保 Mac 上已经安装并能正常运行 Codex(来自 OpenAI 的桌面版或相关工具)。
- 推荐安装方式:按照 Codex 官方文档安装,使命令
codex或codex-app-server可用。
2. 开启 Mac 的 SSH(推荐方式,便于远程启动)
-
打开 系统设置 → 通用 → 共享 ,启用 远程登录(Remote Login) 。
-
或者用命令:
bashsudo systemsetup -setremotelogin on
-
-
给 Terminal(或你使用的终端)授予 完整磁盘访问权限(Privacy & Security → Full Disk Access),否则 SSH 可能报权限错误。
-
测试 SSH 是否通畅:
bashssh yourusername@your-mac-ip 'echo ok' -
检查 Codex 命令是否能在 SSH 中找到:
bashssh yourusername@your-mac-ip 'command -v codex || command -v codex-app-server'如果找不到,需要修复 Mac 上的 PATH(通常在
.zprofile或.zshrc中添加)。
3. 在手机上安装 Litter 并连接
- iOS:目前主要通过源码编译或 TestFlight 测试版安装(仓库有构建脚本)。
- Android:同样支持源码构建。
连接步骤(在 Litter App 中):
- 确保手机和 Mac 在同一个局域网 或 Tailscale 网络 中。
- App 会自动发现主机:
- 如果显示 "codex running",直接点击连接。
- 如果显示 "SSH",点击后输入 Mac 的用户名/密码(或密钥),Litter 会通过 SSH 自动启动远程 Codex 服务器并连接。
- 手动添加服务器(备用方式):
-
在 Mac 上手动启动服务器:
bashcodex app-server --listen ws://0.0.0.0:8390 -
在 App 中选择 "Add Server",输入
你的Mac-IP:8390。
-
注意 :会话列表是按当前工作目录隔离的,所以建议在 Mac 上启动 Codex 时使用你想在手机上继续的目录。
如何从源码构建(开发者/高级用户)
项目主要使用 Rust + Swift(iOS) + Kotlin(Android)。
iOS 构建前提:
-
完整安装 Xcode.app(不是仅 Command Line Tools)。
-
通过 rustup 安装 Rust,并添加 iOS targets:
bashrustup target add aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios -
安装
meson、ninja、xcodegen(用 Homebrew)。
常用命令(在仓库根目录):
make ios→ 完整构建 iOS(Simulator)make ios-device→ 构建设备版./apps/ios/scripts/build-rust.sh→ 构建 Rust 桥接库- 打开 Xcode:
open apps/ios/Litter.xcodeproj
Android 类似,在 apps/android 目录下用 Gradle 或 Android Studio 构建。
更多详细构建步骤、Rust 桥接、Codex patch 等,请直接查看仓库的 README.md。
仓库链接
- GitHub: https://github.com/dnakov/litter
- 里面有截图(Dark/Light 模式)、仓库结构说明、QA 矩阵等。
如果你只是想快速试用,建议先在 Mac 上开启 SSH 和 Codex,然后在手机 App 里发现并连接即可。如果你要自己编译,严格按照 Prerequisites 操作(尤其是 Xcode 和 Rust 配置)。
有具体步骤卡住了(比如构建报错、SSH 连不上等),可以告诉我你的环境(Mac 是否 M 系列、iOS/Android 版本),我再帮你细看。