remodex
Remodex 是一款专为 OpenAI Codex 打造的开源远程遥控工具,让你能用 iPhone 无缝操控运行在 Mac 上的 Codex 编程助手。它巧妙解决了开发者必须守在电脑前才能与 AI 协作的痛点,将强大的本地代码生成能力延伸至移动端,实现真正的随时随地编程。
这款工具特别适合希望提升工作灵活性的软件开发者和技术研究人员。通过 Remodex,你可以在通勤或休息时审查代码、规划任务结构,甚至直接执行 Git 提交、推送和分支切换等操作。其独特的“本地优先”架构确保了数据隐私与安全:Codex 的核心运算始终保留在你的 Mac 上,手机仅作为加密的控制终端,两者通过端到端加密的 WebSocket 桥接通信。
技术亮点方面,Remodex 支持在 macOS 后台以守护进程形式静默运行,利用系统原生机制实现可信设备自动重连。它不仅提供低延迟的快速响应模式,还允许用户在 AI 思考过程中动态调整策略、排队后续指令,甚至从手机摄像头直接发送图片辅助编程。作为一个完全自托管的开源项目,Remodex 不依赖任何公共云端服务,传输层透明可查,为注重隐私和控制权的极客用户提供了理想的移动编程解决方案。
使用场景
资深后端工程师李明正在咖啡馆利用午休时间排查一个紧急的生产环境 Bug,但他此刻身边只有一台 iPhone,而包含完整上下文和运行环境的 Codex 会话正运行在他的办公室 Mac 上。
没有 remodex 时
- 被迫中断工作流:必须打开笔记本电脑远程桌面连接办公室电脑,操作延迟高且体验卡顿,无法充分利用手机便携性。
- 上下文割裂:在手机上查看日志或截图后,无法直接发送给桌面的 Codex,只能靠记忆复述或手动打字输入,极易出错。
- 被动等待结果:提交修复指令后无法随时掌握进度,若需调整思路必须重新发起会话,导致之前的推理链条断裂。
- Git 操作繁琐:发现代码问题后,无法直接在移动端执行 commit 或切换分支验证,只能干等回到工位处理。
使用 remodex 后
- 无缝移动接管:通过 remodex 的端到端加密配对,李明直接用 iPhone 接入 Mac 上的 Codex 运行时,像操作本地应用一样流畅。
- 多模态即时交互:他直接调用手机相机拍摄报错屏幕,作为附件发送给 Codex,AI 立即结合图像与现有代码上下文给出修复方案。
- 动态 steering 控制:在 Codex 生成代码过程中,李明随时插入新的约束条件或排队后续指令,无需打断当前运行即可引导方向。
- 移动端 Git 闭环:确认修复无误后,他直接在 app 内执行 git commit 和 push 操作,并利用通知功能在任务完成时收到提醒。
remodex 将原本被束缚在桌面的强大 AI 编程能力延伸至移动端,让开发者真正实现了“代码随人走”的无间断开发体验。
运行环境要求
- macOS
- Linux
- Windows
未说明
未说明

快速开始
Remodex
通过你的 iPhone 控制 Codex。Remodex 是一款本地优先的开源桥接工具及 iOS 应用,它将 Codex 运行时保留在你的 Mac 上,并允许你的手机通过配对的安全会话进行连接。
应用核心功能
- iPhone 与 Mac 之间的端到端加密配对和聊天
- 快速模式以降低回合延迟
- 计划模式用于在执行前进行结构化规划
- 使用
/subagents命令从 iPhone 创建子代理 - 在不重新开始的情况下引导正在进行的运行
- 在当前回合仍在运行时排队后续提示
- 回合结束或需要关注时的应用内通知
- 通过手机执行 Git 操作,包括提交、推送、拉取和分支切换
- 推理控制以调整 Codex 的思考程度
- 访问控制,支持按需访问或完全访问
- 可从相机或相册添加照片附件
- 一次性 QR 码引导,配合受信任的 Mac 自动重连
- 仅限 macOS 的后台桥接服务,通过
launchd实现 - 在 Codex 于 Mac 上运行时,手机可进行实时流式传输
- 与 Mac 上的 Codex 共享线程历史记录
该仓库坚持本地优先和自托管友好原则:iOS 应用源码未嵌入公共托管端点,传输层对任何希望自行搭建环境的人都可检查。
目前,后台守护进程/受信任自动重连流程仅适用于 macOS。其他操作系统上的自托管中继设置仍然有效,但它们目前使用前台桥接流程,而非 macOS 的 launchd 服务路径。
如需清晰了解公开仓库的分发模式,请阅读 SELF_HOSTING_MODEL.md。
该项目尚处于非常早期阶段,可能存在诸多 bug。
我目前暂不接受贡献。若您仍希望提供帮助,请先阅读 CONTRIBUTING.md。
获取应用
该应用已在 App Store 上架。
你可以在 Xcode 中从源码构建 iOS 应用,将自己签名的版本安装到设备上,然后使用应用内的引导流程,扫描 remodex up 生成的 QR 码完成配对。
若在安装应用之前,使用普通相机或 QR 读取器扫描配对 QR 码,设备可能会将 QR 负载视为纯文本,并打开网页搜索,而非执行配对操作。
架构设计
┌──────────────┐ 配对会话 ┌───────────────┐ stdin/stdout ┌─────────────┐
│ Remodex iOS │ ◄────────────────────► │ remodex (Mac) │ ◄──────────────────────► │ codex │
│ 应用 │ WebSocket 桥接 │ 桥接 │ JSON-RPC │ 应用服务器 │
└──────────────┘ └───────────────┘ └─────────────┘
│ │
│ AppleScript 路由反弹 │ JSONL 展示
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Codex.app │ ◄─── 从磁盘读取 ──────── │ ~/.codex/ │
│ (桌面) │ 导航时的数据文件 │ 会话数据 │
└─────────────┘ └─────────────┘
- 在你的 Mac 上运行
remodex up - 在 macOS 上,Remodex 会安装并启动一个轻量级的后台桥接服务,并打印出用于首次配对或恢复的 QR 码。
- 使用 Remodex iOS 应用扫描一次该 QR 码,以信任该 Mac。
- 完成首次握手后,iPhone 可通过配置的中继解析 Mac 的实时会话,并自动重新连接。
- 你的手机通过桥接向 Codex 发送指令,并实时接收响应。
- 桥接负责处理 Git 操作以及在 Mac 上的本地会话持久化。
Codex.app可以从磁盘读取相同的线程历史记录,但除非启用可选的刷新 workaround,否则它并非真正的实时镜像。
仓库结构
本仓库包含本地桥接、iOS 应用目标及其测试:
├── phodex-bridge/ # `remodex` 使用的 Node.js 桥接包
│ ├── bin/ # CLI 入口
│ └── src/ # 桥接运行时、Git/工作区处理器、刷新辅助工具
├── CodexMobile/ # Xcode 项目根目录
│ ├── CodexMobile/ # 应用源码目标
│ │ ├── Services/ # 连接、同步、事件接收、Git 和持久化逻辑
│ │ ├── Views/ # SwiftUI 界面及时间线/侧边栏组件
│ │ ├── Models/ # RPC、线程、消息和 UI 模型
│ │ └── Assets.xcassets/ # 应用图标和 UI 资源
│ ├── CodexMobileTests/ # 单元测试
│ ├── CodexMobileUITests/ # UI 测试
│ └── BuildSupport/ # Info.plist、xcconfig 默认值及本地覆盖模板
先决条件
- Node.js v18+
- 已安装并位于 PATH 中的 Codex CLI
- Codex 桌面应用(可选——用于在 Mac 上查看线程)
- 在扫描配对 QR 码之前,已将签名的 Remodex iOS 版本安装到你的 iPhone 或 iPad 上
- macOS(用于桌面刷新功能——核心桥接可在任何操作系统上运行)
- Xcode 16+(仅当你需要从源码构建 iOS 应用时)
安装桥接
请使用 @latest 从 npm 安装,以获得最新的桥接修复。
如果你计划使用 macOS 菜单栏伴侣程序,remodex 必须全局安装,并且在你的登录 shell 的 PATH 中可用。
npm install -g remodex@latest
若要更新现有的全局安装:
npm install -g remodex@latest
如果你想简单试用 Remodex,可以直接从 npm 安装并运行,无需克隆此仓库。
快速入门
安装桥接后,运行以下命令:
remodex up
首次连接时,打开 Remodex 应用,按照引导流程操作,然后扫描应用内部显示的 QR 码。
首次扫描之后:
- iPhone 会将 Mac 保存为受信任的设备
- Mac 上的桥接会将自身身份本地保存
- 应用会在后续启动时自动尝试受信任的重连
- QR 码仍将作为恢复路径,以防信任关系发生变化或中继无法解析实时会话。
目前,基于守护进程的受信任重连路径仅适用于 macOS。如果你在 Linux 或 Windows 上进行自托管,配对仍然有效,但桥接将在前台运行,除非你设置自己的特定于操作系统的服务封装。
本地运行
git clone https://github.com/Emanuele-web04/remodex.git
cd remodex
./run-local-remodex.sh
该启动脚本会启动一个本地中继服务,将桥接指向 ws://<your-host>:9000/relay,并打印用于 iPhone 应用配对的二维码。
对于 iPhone 的自托管场景,推荐使用 Tailscale 或其他稳定的私有网络。虽然在同一 Wi‑Fi 下通过 ws://<lan-ip> 进行局域网配对仍可用于本地测试,但在某些 iOS 设备上,即使中继和 Wi‑Fi 状态良好,这种方式也可能不够稳定。
选项:
./run-local-remodex.sh --hostname <lan-hostname-or-ip>./run-local-remodex.sh --bind-host 127.0.0.1 --port 9100
如果您的 iPhone 是通过局域网配对,请确保使用的主机名或 IP 地址是手机能够实际访问到的。
自定义中继端点
有关完整的公开自托管教程,请参阅 Docs/self-hosting.md。
如果您希望 npm 桥接指向您自己的部署而非包的默认设置,可以显式覆盖 REMODEX_RELAY:
REMODEX_RELAY="ws://localhost:9000/relay" remodex up
对于自托管的 iPhone 使用场景,建议使用可通过 Tailscale 或其他稳定私有网络访问的中继 URL。请将普通的本地 ws://192.168.x.x 配对视为一种尽力而为的方式,而不是 iOS 生产环境中的推荐路径。
常见的私有部署方案如下:
- 在您的 Mac、小型服务器或您控制的 VPS 上运行中继服务。
- 将该机器接入 Tailscale 网络。
- 设置
REMODEX_RELAY为 Tailscale 可访问的ws://或wss://中继 URL。 - 使用二维码完成首次配对。
- 之后让 iPhone 通过该中继重新连接到同一台受信任的 Mac。
如果该中继前端连接的是 Mac 桥接,macOS 守护进程可以保持桥接持续运行,实现无感重连。若您自托管非 macOS 平台的桥接,同样可以使用上述中继路径,但目前尚未内置自动后台服务管理功能。
反向代理子路径同样适用,因此位于 Traefik 后端的托管中继可以与其他 API 共享同一域名:
REMODEX_RELAY="wss://api.example.com/remodex/relay" remodex up
在这种配置下,公共端点可能如下所示:
wss://api.example.com/remodex/relayhttps://api.example.com/remodex/v1/push/session/register-devicehttps://api.example.com/remodex/v1/push/session/notify-completion
请确保代理在转发请求前移除 /remodex 路径,以便中继仍然能够接收 /relay/... 和 /v1/push/... 请求。
如果您将 REMODEX_RELAY 指向您自己的自托管中继,则托管推送功能将不会启用,除非您同时在桥接上设置 REMODEX_PUSH_SERVICE_URL,并在中继上明确开启推送服务。
发布到 npm
已发布的 npm 包可以在打包时通过 prepack 脚本嵌入默认的私有中继配置。
当前包版本为 1.3.4。
要将桥接发布并以 api.phodex.app 作为默认中继:
cd phodex-bridge
npm login
REMODEX_PACKAGE_DEFAULT_RELAY_URL="wss://api.phodex.app/relay" \
npm publish
发布后,用户仍可在运行时通过 REMODEX_RELAY 覆盖打包时的默认值。
您也可以直接从源代码运行桥接:
cd phodex-bridge
npm install
REMODEX_RELAY="ws://localhost:9000/relay" npm start
命令
remodex up
启动 Remodex。
在 macOS 上,remodex up 是后台桥接服务的友好入口:
- 写入
launchd服务所需的守护进程配置文件。 - 启动或重启后台桥接服务。
- 等待配对载荷并打印用于首次信任或恢复的二维码。
- 即使您随后关闭终端,桥接也会保持运行。
在非 macOS 平台上,remodex up 会在前台运行桥接。
无论在哪种平台上,桥接都会:
- 启动
codex app-server(或连接到现有端点)。 - 将 Mac 桥接连接到配置的中继。
- 双向转发 JSON-RPC 消息。
- 处理来自手机的 Git 命令。
- 保存当前线程状态,以便后续恢复。
remodex start
仅限 macOS。启动后台桥接服务,但不在当前终端等待或打印二维码。若服务已加载,则会就地刷新。
remodex restart
仅限 macOS。显式重启后台桥接服务,不等待或打印二维码。
remodex stop
仅限 macOS。停止后台桥接服务,并清除其临时运行状态。
remodex status
仅限 macOS。打印当前 launchd / 桥接的状态,包括服务是否已加载以及是否存在最近的配对载荷。
remodex run-service
仅限 macOS。由 launchd 使用的内部服务入口点。通常无需手动运行此命令。
remodex --version
打印已安装的 Remodex CLI 版本。
remodex --version
# => 1.3.4
remodex reset-pairing
清除已保存的桥接配对状态,以便下次受信任的连接需要重新进行 QR 引导。 对于本地状态损坏的情况,您通常不再需要此操作:近期的 Remodex 版本会在启动时自动修复无法读取的配对文件或镜像。
remodex reset-pairing
# => [remodex] 已清除已保存的配对状态。请运行 `remodex up` 以再次配对。
remodex resume
在您的 Mac 上重新打开 Codex.app 中的上一个活动线程。
remodex resume
# => [remodex] 已打开上一个活动线程:abc-123(手机)
remodex watch [threadId]
实时跟踪某个线程的事件日志。
remodex watch
# => [14:32:01] 手机:“修复 auth.ts 中的登录 bug。”
# => [14:32:05] Codex:“我来检查 auth.ts 并修复登录问题……”
# => [14:32:18] 任务开始。
# => [14:33:42] 任务完成。
环境变量
REMODEX_RELAY 是可选的,但其默认值取决于您获取 Remodex 的方式:
- 公开的 GitHub 仓库或源码检出保持开源且便于自托管,因此不会内置托管中继。
- 官方发布的软件包在发布时可能会包含一个默认中继。
- 如果您是从源码运行,请假设应使用
./run-local-remodex.sh或自行设置REMODEX_RELAY。
| 变量 | 默认值 | 描述 |
|---|---|---|
REMODEX_RELAY |
源码检出时为空;已发布软件包中可选 | 用于 QR 启动、可信会话解析以及手机/Mac 会话路由的会话基础 URL |
REMODEX_PUSH_SERVICE_URL |
默认禁用 | 用于托管推送注册/完成的可选 HTTP 基础 URL |
REMODEX_CODEX_ENDPOINT |
— | 连接到现有的 Codex WebSocket,而不是启动本地的 codex app-server |
REMODEX_REFRESH_ENABLED |
false |
当检测到手机活动时自动刷新 Codex.app(设置为 true 则显式启用) |
REMODEX_REFRESH_DEBOUNCE_MS |
1200 |
用于合并刷新事件的防抖窗口(毫秒) |
REMODEX_REFRESH_COMMAND |
— | 替换内置 AppleScript 刷新的自定义 Shell 命令 |
REMODEX_CODEX_BUNDLE_ID |
com.openai.codex |
Codex 应用程序的 macOS 包 ID |
CODEX_HOME |
~/.codex |
Codex 数据目录(此处用于存储 sessions/ 部署文件) |
# 显式启用桌面刷新
REMODEX_REFRESH_ENABLED=true remodex up
# 连接到现有的 Codex 实例
REMODEX_CODEX_ENDPOINT=ws://localhost:8080 remodex up
# 使用自定义的自托管中继端点(`ws://` 未加密)
REMODEX_RELAY="ws://localhost:9000/relay" remodex up
# 仅当您的自托管中继也暴露了配置好的 APNs 推送服务时,才启用托管推送
REMODEX_RELAY="wss://relay.example/relay" \
REMODEX_PUSH_SERVICE_URL="https://relay.example" \
remodex up
在中继/VPS 侧,应将推送功能保持禁用,直到您真正需要它为止。HTTP 推送端点默认关闭,只有在您设置 REMODEX_ENABLE_PUSH_SERVICE=true 时才会开启。
配对与安全性
- Remodex 是“本地优先”:Codex、Git 操作和工作区操作都在您的 Mac 上执行,而 iPhone 则作为配对的远程控制设备。
- 在 iPhone 上,最可靠的自托管设置是通过 Tailscale 可达的中继。在同一 Wi‑Fi 网络上使用
ws://进行普通局域网配对,在某些 iOS 设备上可能会失败,因为应用程序的本地网络路由并不总是可靠。 - 配对二维码携带连接 URL、会话 ID 以及用于启动端到端加密的桥接身份密钥。首次成功扫描后,iPhone 会在 Keychain 中存储一条受信任的 Mac 记录,而桥接则会在 Mac 本地持久化其受信任的手机身份。
- 在 macOS 上,桥接可以作为轻量级的
launchd服务持续运行,这样手机就可以解析 Mac 当前的实时中继会话,并在无需每次重新扫描二维码的情况下重新连接。 - 当信任关系发生变化、桥接身份轮换或中继无法解析当前的实时会话时,二维码仍然是恢复路径。
- 桥接状态以规范形式存储在
~/.remodex/device-state.json中,权限仅限于本地访问。在 macOS 上,桥接还会将该状态镜像到 Keychain,作为尽力而为的备份/迁移数据;最近的版本会在启动时自动修复无法读取的本地状态,而无需手动清理。 - CLI 不再在二维码下方以明文打印连接 URL。
- 仅在您希望自托管或针对自己的部署进行本地测试时,才设置
REMODEX_RELAY。 - 对于直接安装或自托管安装,请保持
REMODEX_TRUST_PROXY未设置。仅当受信任的反向代理(如 Traefik、Nginx 或 Caddy)正在转发中继流量时,才将其打开。 - 传输实现公开在
relay/目录中,但您实际部署的主机名和凭据应保持私密。 - 在 iPhone 上,默认的代理权限模式是“按需”。将应用切换为“完全访问”会自动批准代理发出的运行时授权提示。
安全与隐私
Remodex 现在在配对的 iPhone 和您 Mac 上运行的桥接之间使用经过身份验证的端到端加密通道。传输层仍然承载 WebSocket 流量,但在安全会话建立后,它将不再获取提示、工具调用、Codex 响应、Git 输出或工作区 RPC 负载的明文内容。
安全通道的构建步骤如下:
- 桥接在 Mac 上生成并持久化一对长期使用的设备身份密钥。
- 配对二维码共享连接 URL、会话 ID、桥接设备 ID、桥接身份公钥以及一个短期的有效期窗口。
- 在配对过程中,iPhone 和桥接交换新的 X25519 临时密钥和随机数。
- 桥接使用其 Ed25519 身份密钥对握手记录进行签名,iPhone 则使用来自二维码或先前受信任的 Mac 记录的公钥验证该签名。
- iPhone 使用其自身的 Ed25519 身份密钥对客户端认证记录进行签名,桥接在接受会话之前会验证该签名。
- 双方使用 HKDF-SHA256 导出方向性的 AES-256-GCM 密钥,然后使用带有单调计数器的加密信封封装应用消息,以防止重放攻击。
隐私注意事项:
- 传输层仍然可以看到连接元数据以及用于建立加密会话的明文安全控制消息,包括会话 ID、设备 ID、公钥、随机数和握手结果代码。
- 在安全握手成功之后,传输层将看不到解密后的应用负载。
- 重新扫描二维码可以自动替换先前受信任的 iPhone。请仅在您有意手动清除记忆中的配对状态时,才使用
remodex reset-pairing。 - 在 iPhone 上,设备端的消息历史也会使用基于 Keychain 的 AES 密钥进行静态加密。
Git 集成
桥接会拦截来自手机的 git/* JSON-RPC 调用,并在本地执行它们:
| 命令 | 描述 |
|---|---|
git/status |
分支、跟踪信息、脏状态、文件列表和差异 |
git/commit |
提交暂存的更改,可选附带提交信息 |
git/push |
推送到远程仓库 |
git/pull |
从远程仓库拉取(遇到冲突时自动中止) |
git/branches |
列出所有分支,并标记当前/默认分支 |
git/checkout |
切换分支 |
git/createBranch |
创建并切换到新分支 |
git/log |
最近的提交历史 |
git/stash |
暂存工作中的更改 |
git/stashPop |
弹出最新的暂存内容 |
git/resetToRemote |
硬重置到远程仓库(需要确认) |
git/remoteUrl |
获取远程仓库的 URL 以及所有者/仓库名称 |
工作区集成
该桥接还处理助手回滚流程中的本地工作区范围内的回滚操作:
| 命令 | 描述 |
|---|---|
workspace/revertPatchPreview |
检查是否可以在本地仓库中干净地应用反向补丁 |
workspace/revertPatchApply |
在预览成功时,在本地应用反向补丁 |
Codex 桌面应用集成
Remodex 同时支持 Codex CLI 和 Codex 桌面应用 (Codex.app)。在底层,该桥接会启动一个 codex app-server 进程——这与驱动桌面应用和 IDE 扩展的相同 JSON-RPC 接口。对话会以 JSONL 格式的回滚文件保存在 ~/.codex/sessions 目录下,因此您在手机上开始的对话线程也会出现在桌面应用中。
目前实时功能包括:
- 当桥接会话保持连接时,iPhone 上的对话是实时的。
- Mac 端的 Codex 运行时才是实际执行任务的运行时。
目前尚未完全实现实时功能的是:
- 默认情况下,
Codex.app不会作为第二个实时订阅者来订阅当前的活跃会话。 - 桌面应用会从持久化的会话文件中同步数据,并可通过下面的可选刷新 workaround 来手动触发更新。
- 目前
Codex.app的 GUI 尚不支持真正的手机到桌面的实时同步。
为了使这一限制更加实用,Remodex 还在 iPhone 应用中提供了一个“移交至 Mac”按钮。当您准备切换设备时,该按钮可以将当前聊天明确地继续在您的 Mac 上,并在 Codex.app 中打开相应的对话线程。
已知限制:当外部 app-server 进程向磁盘写入新数据时,Codex 桌面应用不会实时重新加载。您在手机上创建或更新的对话线程,只有在桌面应用重新挂载该路由后才会显示出来。出于当前深度链接跳转仍会造成干扰的考虑,Remodex 目前默认关闭了桌面刷新功能。如果您仍然希望使用旧的重新挂载 workaround,也可以手动启用它。
# 手动启用旧的深度链接刷新 workaround
REMODEX_REFRESH_ENABLED=true remodex up
这会触发一个防抖后的深度链接跳转(codex://settings → codex://threads/<id>),强制桌面应用重新挂载当前的对话线程,而不会中断任何正在运行的任务。在一轮对话进行中,Remodex 还会监控该线程的持久化回滚文件,并定期进行限流刷新,以便长响应能够在不完全重启应用的情况下在 Mac 上可见。如果本地桌面路径不可用,桥接会在该次运行剩余时间内自动禁用桌面刷新功能,而不是一直无休止地尝试重连。
连接韧性
- 自动重连:如果会话连接断开,桥接会以指数退避策略重新连接(1 秒 → 最大 5 秒)。
- 安全追加:桥接会维护一个有限的本地出站缓冲区,并在安全重连后重新发送丢失的加密消息。
- Codex 持久化:在当前桥接运行期间,Codex 进程会持续存活,即使会话短暂断开也能自动重连。
- 优雅关闭:SIGINT/SIGTERM 会干净地关闭所有连接。
构建 iOS 应用
cd CodexMobile
open CodexMobile.xcodeproj
使用 Xcode 在物理设备或模拟器上构建并运行。该应用使用 SwiftUI,当前项目目标为 iOS 18.6。
贡献
我目前暂不接受贡献。详情请参阅 CONTRIBUTING.md。
常见问题解答
我需要 OpenAI API 密钥吗? 不需要用于 Remodex 本身。您只需要独立设置并运行 Codex CLI 即可。
这能在 Linux/Windows 上运行吗? 核心桥接客户端(Codex 转发 + git)可在任何操作系统上运行。但桌面刷新功能(AppleScript)仅适用于 macOS,内置守护进程和可信自动重连服务路径目前也仅限于 macOS。
如果我关闭终端会发生什么?
在 macOS 上,桥接可以通过 launchd 在后台持续运行,因此关闭终端并不会停止可信重连路径。而在其他操作系统上,前台运行的桥接会在终端关闭时停止。
如何强制进行新的 QR 配对?
运行 remodex reset-pairing,然后再次使用 remodex up 启动桥接。您只需在有意更换配对的 iPhone 或清除已记住的配对信息时才需要执行此操作。
我可以连接到远程 Codex 实例吗?
可以——设置 REMODEX_CODEX_ENDPOINT=ws://host:port 即可跳过本地 codex app-server 的启动。
为什么我的手机对话线程不会立即显示在 Codex 桌面应用中?
桌面应用是从磁盘读取会话数据的(~/.codex/sessions),但它不会在外部进程写入新数据时实时重新加载。您的手机仍然能接收到实时流;只是桌面 GUI 会滞后,除非您手动启用 REMODEX_REFRESH_ENABLED=true 的刷新 workaround。
Remodex 是否支持手机与 Codex.app 之间的真正实时同步?
不。手机会话是实时的,但 Codex.app 的 GUI 并不是当前活跃会话的真实实时镜像。为此,iPhone 应用中提供了一个“移交至 Mac 应用”按钮,方便您明确地在 Mac 上继续同一对话线程。
我可以自托管中继服务吗?
可以。这是预期的分叉路径。传输和推送服务的代码位于 relay/ 目录下;您可以将 REMODEX_RELAY 指向您运行的实例。
我可以使用 Tailscale 吗?
可以。它是推荐的私有网络选项,适合在 iPhone 上进行自托管。将您的中继服务部署在可通过 Tailscale 访问的位置,设置 REMODEX_RELAY 为该中继 URL,通过 QR 码完成一次配对,然后让应用通过同一中继服务与受信任的 Mac 自动重连。
传输层对于敏感工作安全吗? 它比纯文本代理要安全得多:流量可在传输过程中使用 TLS 加密保护,应用负载在安全握手之后会进行端到端加密,而所有的 Codex 执行仍然发生在您的 Mac 上。不过,传输层仍可能观察到连接元数据和握手控制消息,因此最严格的信任模式是自行运行该服务。
许可证
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
opencode
OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。