想用手机远程操控 AI 写代码,可以试试这几种方案

上周,我写了 《ACP:让 OpenClaw 操作 OpenCode 编写代码》 这篇文章,希望借助 OpenClaw 自带的 ACP 能力把 OpenCode 等 AI Coding CLI 放进即时通讯工具中,这样就可以通过手机远程控制 OpenCode 来完成一些开发任务。对于经常要写一些小工具的我来说,这无疑会提高工作的灵活性和效率。
但文章发出后没多久,OpenClaw 更新了 2026.03.13 版本,ACP 功能就出现了大范围不可用问题,包括无法使用 ACP Session 唤醒 OpenCode,无法触发 ACP Thread-bound 等。

此外,上篇文章里我也提到,OpenClaw ACP 本身存在一些缺陷,比如主动调用 ACP Agent 时无法及时收到任务完成通知,Thread-bound 模式下也拿不到 OpenCode 的工作进度,所以我也在尝试寻找其他方案来解决这些问题。
我调研了市面上 10 多款工具,对部分工具进行了测试、验证,并按照以下分类进行总结。
1. Web 模式
Web 模式是指直接使用浏览器访问部署在远端的 AI Coding CLI。
比如 OpenCode 可以使用以下命令启动 Web 模式:
export OPENCODE_SERVER_USERNAME=<your_password>
export OPENCODE_SERVER_PASSWORD=<your_password>
opencode web --hostname 0.0.0.0 --port 4096需要注意,该方案需要 OpenCode 所在服务器有公网 IP,或通过 ngrok、tailscale 等工具暴露服务。
开启后,用户就可以直接在手机或其他设备中使用浏览器访问 OpenCode Web 服务,如 http://<公网 IP>:4096 :

这个方案的优点是简单易用,交互体验较良好,过程信息完整,不依赖于手机操作系统,兼容性高。但缺点是目前仅 OpenCode 和 Claude Code 提供该功能,另外 Web 页面对移动端的适配有待提升,有些操作不太方便。由于 OpenCode Web 直接暴露在公网中,需要关注安全性。建议使用 HTTPS 加密通讯,并且设置复杂性较高的用户密码。
2. Bot 模式
Bot 模式是指利用即时通讯工具中的 Bot,让它与部署在远端的 AI Coding CLI 进行通讯。
OpenClaw 就可以认为是这种模式,它可以在 Telegram 等即时通讯工具中通过 OpenClaw Bot 来控制 OpenCode。
在 GitHub 中,搜索 telegram opencode 可以看到有很多工具也实现了类似的功能,我关注的项目有以下 2 个:
2.1. cc-connect
这个项目诞生于 2025 年,比 OpenClaw 还要早,它实现的逻辑和效果也与 OpenClaw 类似,比如有记忆功能、定时任务等。
cc-connect 的安装方式比较简单,把以下提示词发给 OpenClaw 或 OpenCode 即可完成安装:
Follow https://raw.githubusercontent.com/chenhg5/cc-connect/refs/heads/main/INSTALL.md to install and configure cc-connect.它的优点是支持多 AI Coding CLI,包括 Claude Code、Codex、OpenCode 等;支持多 Channel,包括 Telegram、Discord、飞书等。
但缺点也很明显,它采用了一种简单粗暴的方法来与 AI Coding CLI 通讯:
1. 移动端调用 OpenCode CLI 启动新进程: opencode run --format json
2. 使用 --session <chatID> 参数续接对话
3. opencode 输出 NDJSON (每行一个 JSON event)
4. 服务端进程读取 stdout: 通过 bufio.Scanner 逐行读取并解析 JSON 事件,发回移动端这就导致它的状态同步并不可靠,使用它时,感觉像算盘珠,拨一下才动一下,体验很不好。

2.2. opencode-telegram-bot
为了解决 cc-connect 的状态同步问题,我又关注到 opencode-telegram-bot 这个项目。
它与 cc-connect 最大的不同是,它是与 OpenCode 的服务端直接通讯,也就是利用了 OpenCode 的 Server 模式,它会在服务端提供一个接口,供远程客户端来调用。
1. 服务器端启动 OpenCode Server
2. 服务器端启动 Telegram Bot Service,建立与 OpenCode Server 的通讯,并通过 SSE 订阅事件
3. 服务端 Telegram Bot Service 再与移动端 Telegram 进行通讯,收发信息基于 OpenCode Server 这套能力,客户端既可以做成 Web 页面(Web 模式),也可以做成即时通讯工具里的 Bot(Bot 模式),还可以做成手机 App(App 模式)。
但遗憾的是,在目前众多 AI Coding CLI 中,只有 OpenCode 提供了 Server 模式。
| 工具 | Web 模式 | Server 模式 | 远程访问方式 |
|---|---|---|---|
| OpenCode | ✅ opencode web | ✅ opencode serve | HTTP API (默认 127.0.0.1:4096) 可绑到 0.0.0.0 或 SSH 隧道 完整 OpenAPI 端点 |
| Claude Code | ✅ claude remote-control | ❌ 无 | claude remote-control 生成二维码/链接 从手机浏览器远程控制本地会话 需 Pro/Max 订阅 |
| Codex | ❌ 无 | ❌ 无 | 提供 MCP Server STDIO/HTTP 无原生远程控制功能 |
| Gemini CLI | ❌ 无 | ❌ 无 | 提供 MCP Server HTTP 无原生远程控制功能 |
使用提示词安装 opencode-telegram-bot ,它会引导你完成配置:
Follow https://github.com/grinev/opencode-telegram-bot to install and configure.配置完成后就可以在 Telegram 中使用:

它的优点是交互体验较好,Telegram 中有监控面板,快速指令和按钮,状态同步也比 cc-connect 有了较大改善。但缺点是只支持 Telegram 和 OpenCode。
2.3. Bot 模式的局限性
此外,不论是 cc-connect 还是 opencode-telegram-bot ,所有 Bot 模式的工具都存在的问题是不会把 OpenCode 等工具的完整输出信息同步到即时通讯工具。
一方面原因是:当前即时通讯工具的聊天窗口本身是用于人和人之间对话的,它不适合显示其他类型的输出格式,比如工具调用、代码差异等。
另一方面的原因是:AI Coding CLI 的输出都是流式的,且输出过程是持续的。虽然很多即时通讯工具也支持流式输出,但在聊天窗口中,既要持续显示流式输出,又要处理新对话请求和输出,这就很难实现。
所以目前大部分 Bot 模式的工具都只是显示 AI Coding CLI 的关键、摘要信息以及结果信息。
3. APP 模式
由于 Bot 模式工具的局限性问题,我又把目光转向到 APP 模式的工具,它能灵活定义数据展示方式和交互方式。此类工具也不少,在 GitHub 中可以搜到大量同类型项目,但大部分都没有持续更新和维护:

它们的实现方式大体类似:需要在 AI Coding CLI 所在的服务器上安装一个服务端,来操作 AI Coding CLI,再与移动端进行通讯,这就摆脱了对 CLI 工具自身提供 Server 模式的依赖。
Mobile App <--[encrypted]--> WebSocket Server <--[encrypted]--> CLI <--[local]--> PTY <--> AI Tool比较知名的有以下几个项目:
3.1. Happy
Happy 同时支持 Web 与 APP 模式:
- iPhone/iPad: App Store
- Android: Google Play
- Web App: app.happy.engineering
仅需在 AI Coding CLI 所在的服务器上安装并运行,再使用 APP 扫描二维码即可完成连接:
npm install -g happy-coder
happy --auth
它的应用架构如下:

基于这套架构,Happy 的优点是无需公网 IP,走专用通讯通道,安全性高,此外交互体验好,可以参考 Happy 官方视频 。但缺点是只支持 Claude Code 和 Codex,而 Claude Code 本身就提供远程操控方式,所以最终受益的只有 Codex。
3.2. Hapi
Hapi(哈皮)是对标 Happy 新启动的项目,其官方就与 Happy 进行了多方面对比:
| Aspect | Happy | HAPI |
|---|---|---|
| Architecture | Centralized (cloud server stores encrypted data) | Decentralized (each user runs own hub) |
| Users | Multi-user on shared server | Any number (each runs own hub) |
| Data | Encrypted on server (server cannot read) | Stays on your machine |
| Encryption | Application-layer E2EE (client encrypts before sending) | WireGuard + TLS via relay; or none needed if self-hosted |
| Deployment | Multiple services (PostgreSQL, Redis, app server) | Single binary |
| Complexity | High (E2EE, key management, scaling) | Low (one command) |
Hapi 的应用架构如下:

它提供 Web 和 PWA(Progressive Web App)两种模式,只需要以下命令即可完成安装:
export HAPI_RELAY_FORCE_TCP=true
npm install -g @twsxtd/hapi --registry=https://registry.npmjs.org
hapi hub --relay在浏览器中打开链接,或者使用浏览器扫描二维码就能登陆使用。

别忘了还需启动 Runner 服务,可以参考 https://hapi.run/docs/guide/installation.html#background-service-deployment 配置为系统服务:
# Hub
nohup hapi hub --relay > ~/.hapi/logs/hub.log 2>&1 &
# Runner
nohup hapi runner start --foreground > ~/.hapi/logs/runner.log 2>&1 &Hapi 的优点是支持专用通讯通道(tailscale)或公网 HTTPS 加密通讯,安全性高,相比 OpenCode 原生的 Web 模式交互体验更好,且支持多种类型的 AI Coding CLI 。缺点是配置稍显复杂,PWA 并不是原生的 APP,理论上可以归为 Web 模式类型工具,但它又不依赖 CLI 工具自身提供的 Web 模式。

另外 Hapi 也支持 Telegram Mini APP,要求 publicUrl 必须为 HTTPS 协议才可配置。
export TELEGRAM_BOT_TOKEN="<your_telegram_bot_token>"
# 首次执行 hapi hub --relay 命令后,输出的 [Web] Public 地址
export HAPI_PUBLIC_URL="https://<your_address>.relay.hapi.run"
hapi hub --relay配置完后需要在 Telegram Bot 中输入 /start 命令触发,点击 Open APP 打开 Mini APP,但这个方式多少有点多此一举。

3.3. Termly
Termly 与前者不同的是,它本身就是一个 CLI 工具,作为桥梁来对接 Claude Code、GitHub Copilot、OpenCode 等工具,再通过 iOS 和 Android App 在移动设备上完成显示和交互。
它的安装同样简单:
npm install -g @termly-dev/cli
termly setup
termly start然后参考 Termly 官网 下载 APP,扫码登录即可:

它的实现逻辑和效果有点像远程桌面。优点是支持多种 AI Coding CLI,整体方案比较轻量,未来对新的 CLI 工具适配也会比较快。但在手机中以这样的方式交互,用户体验就注定好不了,尤其当网络有延迟时,拖动屏幕或滚动条都有明显的卡顿。
4. 总结
基于以上几款工具的真实测评,我也总结了一份对比清单,用户可以根据实际情况来选择:
| 工具 | 类型 | AI Coding CLI | 即时通讯工具 | 操作系统 | 复杂性 | 安全性 | 用户体验 |
|---|---|---|---|---|---|---|---|
| opencode web | Web | OpenCode | —— | —— | 低 | 中 | 中 |
| cc-connect | Bot | OpenCode / ClaudeCode / Codex / Gemini CLI … | 多种 | —— | 中 | 高 | 低 |
| opencode-telegram-bot | Bot | OpenCode | Telegram | —— | 中 | 高 | 中 |
| Happy | APP | ClaudeCode / Codex | —— | iOS / Android / Web | 中 | 高 | 高 |
| Hapi | APP | OpenCode / ClaudeCode / Codex / Gemini CLI … | Telegram | iOS / Android / Web | 高 | 中 | 高 |
| Termly | APP | OpenCode / ClaudeCode / Codex / Gemini CLI … | —— | iOS / Android | 高 | 高 | 中 |
如果你只使用 OpenCode ,可以考虑 opencode web 和 opencode-telegram-bot 。如果你还使用 Codex 等其他 CLI 工具,并且更看重统一入口和移动端体验,也可以尝试 Hapi。
目前看来还没有很完美的方案,但对于我的日常开发工作来说已经足够了。