移动端伴侣
让你离开电脑也能继续操作 AI——查看实时回复、补发指令、管理会话。
智码 AICoder 移动端是一个陪伴桌面端工作的远程伴侣 App,不是独立终端。它通过桌面端内嵌的远程网关连接你的电脑,让你在手机上:
- 查看每一条 AI 实时输出(含工具调用、Markdown、代码高亮)
- 在路上想到新需求时直接发 prompt 给桌面——终端模式和聊天模式的会话都能发
- AI 停下来问你「选哪一项」时,在手机上直接点按钮作答
- 多设备/多桌面之间一键切换
- AI 跑完长任务时收到提醒(顶部横幅 + 可选提示音)
适用场景
| 场景 | 怎么用 |
|---|---|
| 出门吃饭 / 通勤 | 桌面端跑长任务(生成代码、批量重构),手机看进度,答完弹横幅 / 响提示音(App 在前台时) |
| 临时想到新需求 | 不开电脑,手机直接发 prompt 给桌面端 AI 跑 |
| 家里 / 办公室双桌面 | 一台手机管两台机器,扫码即切 |
| 多人协作 | 同一桌面被多台手机配对,谁有空谁接手(每台手机独立 token,可单独吊销) |
4 屏体验
| 页面 | 核心功能 |
|---|---|
| 会话 | 列出桌面所有会话,长按 ActionSheet(收藏/删除);FAB 远程新建会话;全局搜索(含消息内容) |
| 对话 | 实时流式接收 AI 输出;Markdown 渲染 + 代码高亮 + 工具调用卡片;按住说话松开识别;长按消息复制 |
| 设备 | 多桌面在线状态切换;扫码 / PIN 配对新桌面;Devices 删除时先 selfRevoke 撤销 token |
| 我的 | AI 回复完成提醒开关 + 测试通知;清空所有桌面配置(一键退出登录) |
v0.6.0 之后又陆续补上了这些能力(详见使用教程):
| 能力 | 说明 |
|---|---|
| 一次回复一张卡 | 一轮回答收进一张卡片,AI 调了哪些工具(含 Codex 的工具调用)显示在「过程」里:回答中展开、答完自动折叠 |
| 应答 AI 的选择询问 | AI 停在「选一项」的菜单上时,选项变成可点的按钮;另有方向键 / Enter / Esc / Tab 按键条兜底 |
| 聊天模式会话 | 桌面上以聊天模式打开的会话,手机同样能发消息、看回答,状态条显示「聊天模式 · 已连上桌面 / 正在回复…」 |
| 读得到 Codex 历史 | Codex 会话(终端模式与聊天模式)在手机上也能看到完整历史,不再只有终端原文 |
| 认得出登录页 | CLI 停在登录页时弹出提示卡,告诉你要先在电脑上登录,避免消息白发 |
| 「中断」更安全 | 只在 AI 正在回答时出现,连点也只打断当前这一轮,不会把 CLI 退掉 |
| 回复完成提示音 | 「我的 → 通知」里可开提示音,8 种音色与电脑端相同 |
技术架构
手机端 App 桌面端 axum 网关
┌──────────────┐ HTTPS/WSS ┌──────────────┐
│ React SPA │ ─────────────▶ │ axum 7420 │
│ (Tauri Mobile│ │ (你自己反代) │
│ WebView) │ ◀───────────── │ │
└──────────────┘ PTY 输出 └──────┬───────┘
│
┌─────▼─────┐
│ Claude / │
│ Codex / │
│ Gemini │
│ (PTY) │
└───────────┘桌面端启动后内置 axum HTTP/WS 网关,监听 127.0.0.1:7420。用户自行用 frp / cloudflared / Tailscale / nginx 等任意工具把端口反代到一个公网地址,填到桌面端即可。手机端 React SPA 通过 HTTPS 调 REST API、通过 WSS 接收 PTY 实时输出。
安全
| 机制 | 说明 |
|---|---|
| 设备配对协议 | PIN(60 秒有效)兑换长期 token;扫码或手动输入 |
| 长期 token | 每台手机独立,桌面端可在「已配对设备」表里单独吊销 |
| 传输加密 | 强制 HTTPS / WSS(公网部署不允许明文 HTTP) |
| 鉴权熔断 | 失败 10 次/60s 触发 5 分钟 IP 锁定 |
| 审计日志 | 所有 API 调用 / 配对事件记录在桌面端「审计日志」面板,支持紧急下线 |
| 一键安全自检 | 桌面端「设置 → 远程访问」内置端口扫描 + TLS 配置检查 |
当前版本
- 桌面端:建议 v6.1.2 及以上(当前最新 v6.2.1);基础的看输出、发消息、配对功能更早的版本也能用,各功能需要的桌面端版本见下表
- 移动端 Android:v0.9.2 — 下载 APK
- iOS:暂未发布(阻塞需 macOS + Apple Developer 账号)
v0.6.0 之后的主要变化:
| 移动端版本 | 主要变化 | 需要的桌面端 |
|---|---|---|
| v0.9.2 | 额度快用完时,新建会话和继续发消息前先确认(额度守卫) | v6.2.1 及以上 |
| v0.9.1 | 历史为空时说明原因、拉历史失败不再清空已显示的历史、实时终端只留最近一段输出、「关于」页显示真实版本号 | 「桌面端过旧」这条提示需 v6.1.2 及以上 |
| v0.9.0 | 一次回复一张卡并显示 Codex 工具调用过程、读得到 Codex 会话历史、认得出 CLI 停在登录页;「中断」只在回答中出现 | v6.1.2 及以上 |
| v0.8.0 | 回复完成提示音;聊天模式会话的状态条显示正确 | 状态条需 v6.1.0 及以上;与电脑端同一套「回复完成」判定需 v6.1.1 及以上 |
| v0.7.1 | 能给聊天模式会话发消息 | v5.9.0 及以上 |
| v0.7.0 | 应答 AI 的选择询问(选项按钮 + 按键条);「中断」连点也不会把 CLI 退掉 | 选项按钮需 v5.8.1 及以上 |
| v0.6.0 | 驱动远程 SSH 会话、点选目录新建会话、语音点按模式、会话列表工具筛选 | 远程 SSH 会话需 v5.4.0 及以上 |
完整清单见更新日志。
版本号独立
桌面端与移动端版本号完全独立:桌面 v6.2.1 时,移动端为 v0.9.2。两端各自迭代、各自发版,互不影响。
升级说明
- 自 v0.3.6 起所有正式版使用同一套发布签名,可以直接覆盖安装。仍在 v0.1.0 ~ v0.3.5 的用户首次升级需要卸载旧版重装一次(一次性)。
- v0.7.0 是例外:那一版误用了临时调试签名,与前后各版都不一致,在它上面覆盖安装会被系统拒绝。还在用 v0.7.0 的请先卸载再装新版;卸载会清掉已配对的桌面,装好后重新配对即可。v0.7.1 及其他版本可直接覆盖升级。
