桌面应用
Tapilot 桌面端基于 Tauri 2 + Rust + React,把 MCP 服务、设备管理、脚本编辑、实时投屏、测试报告打包成一个 DMG / MSI / AppImage,给非程序员也能用的可视化界面。
下载地址见 tapilot.dev。
主要页面(9 个)
| 页面 | 路径 | 功能 |
|---|---|---|
| 设备列表 | /devices | 扫描 + 列 Android/iOS 设备,一键开投屏 |
| 实时运行 | /live-run | 实时跑 DSL / AI 任务,右侧看 step 日志 |
| 脚本编辑器 | /editor | YAML DSL 编辑 + 语法高亮 + 运行按钮 |
| 测试包 | /pack | 查看历史测试包 (run.md + 截图 + 录屏) |
| 性能指标 | /metrics | CPU / 内存 / FPS / 电量图表 |
| 历史 | /history | 所有 run 的时间轴 + 成功率 |
| 报告查看器 | /report-viewer | 单个 run 的详细报告(步骤/截图/logcat) |
| 引导 | /onboarding | 首次启动配置(adb / Xcode / API keys) |
| 账号 | /account | 登录/订阅/API key 管理 |
投屏(Mirror)
设备列表点"投屏"有三种模式:
| 模式 | 原理 | 延迟 | 分辨率 |
|---|---|---|---|
| 截图轮询 | 每秒几次 adb screencap | 高(200-500ms) | 原图 |
| scrcpy + jmuxer H.264 硬解 | scrcpy reverse + WebSocket + 浏览器 Canvas 解码 | 低(~50ms) | 1080p |
| scrcpy 外部窗口 | 直接启动 scrcpy 原生窗口 | 最低(~20ms) | 1080p |
默认推荐第二种(WebSocket + jmuxer),延迟低且不抢焦点。
从 CLI 切到桌面应用的典型场景
| 你原来怎么用 | 桌面应用里对应 |
|---|---|
pnpm test-pack <id> | 编辑器页跑,右边实时看结果 |
cat run.md 看报告 | 报告查看器页面,带时间轴和截图 thumbnail |
手动 adb screencap 看屏 | 投屏页面,拖拽式操作 |
| 多设备并行调试 | 设备列表多选 + 批量动作 |
系统要求
- macOS 13+ / Windows 11 / Ubuntu 22.04+
- Android:USB + ADB
- iOS:Xcode + WDA(仅 macOS)
- 内存 ≥ 4GB(实时投屏需要 2GB+)
自动更新
桌面应用内置更新检查,每次启动去 https://app.tapilot.dev/updates/latest.json 查版本。新版会在后台下载,下次启动提示安装。
目录
- 安装包:DMG(macOS)/ MSI(Windows)/ AppImage(Linux)
- 大小:~3.6 MB(Tauri 编译出来的原生 binary,不含 Electron)
- 数据:
~/Library/Application Support/Tapilot/(macOS) /%APPDATA%\Tapilot\(Windows)
常见问题
Q: 桌面应用和 MCP server 是什么关系? → 桌面应用内置了 MCP server,启动时自动监听本地端口。你也可以用 npx mobai-mcp 单独跑 MCP 不开桌面。
Q: 没有设备怎么看页面? → 设备列表会显示空,但其他页面(历史 / 报告查看器)仍能看历史数据。
Q: 能不能在 Linux 用 iOS? → 不能,iOS 需要 Xcode(仅 macOS 有)。Linux 桌面版只能跑 Android + Web。