Write mobile tests
in plain English.
用自然语言
编写移动端测试。
Runs across Android, iOS, and Web in parallel. Drive it from the desktop app, a CLI, or any MCP-compatible AI agent. 并行执行于 Android、iOS 和 Web 之上。通过桌面端、命令行或任意支持 MCP 的 AI Agent 驱动。
device: android steps: - open app: com.example.shop - tap: "Sign in" - type: username = "[email protected]" - type: password from: env.TEST_PASSWORD - tap: "Continue" - assert visible: "Welcome back, Alice" - screenshot: "logged-in" # 7 steps · ~4.2s · passes on Pixel 8 + iPhone 15
/ features
One DSL. Three runtimes. Zero flakes. 一套 DSL,三端运行时,零 Flaky。
The things Appium and Detox should have been — built for 2026, driven by agents. Appium 和 Detox 本该有的样子 — 为 2026 而生,由 Agent 驱动。
One DSL, three platforms. 一套 DSL,三端通行。
The same YAML test runs on Android via adb, iOS via WebDriverAgent, and Web via CDP. No per-platform forks, no duplicate selectors. 同一份 YAML 用例,在 Android 通过 adb、iOS 通过 WebDriverAgent、Web 通过 CDP 执行。无需分叉,也无需重复维护选择器。
AI that actually sees the screen. 真正"看得见"屏幕的 AI。
Gemini vision assertions + on-device OCR. assert visible: "Welcome" works on React Native, Flutter, and pure-canvas UIs where the view tree is a lie. Gemini 视觉断言 + 本地 OCR。即便在 React Native、Flutter 和纯 Canvas 界面里 —— view tree 不可信时 —— assert visible: "Welcome" 依然有效。
Drive it from any MCP agent. 任意 MCP Agent 皆可驱动。
Ship tapilot-mcp as a server, point Claude Code, Cursor or any MCP host at it, and let the agent explore, regress, and file tickets autonomously. 部署 tapilot-mcp 服务端,将 Claude Code、Cursor 或任意 MCP 宿主接入,让 Agent 自主探索、回归并提交工单。
Not a toy. Production surface area: 不是玩具。真实生产级接口面:
/ observability
Record once, debug forever. 一次录制,永久可回溯。
Every run produces a signed report pack: full-resolution screen recording, per-step screenshots, raw logcat / device.log, and a human-readable run.md. Flakes no longer require a repro — the failing run is the repro. 每次执行都会产出带签名的报告包:全分辨率录屏、逐步截图、原始 logcat / device.log,以及一份人类可读的 run.md。Flaky 再也无需复现 —— 失败本身就是复现。
- ▸ H.264 recording at 60fps, 2–4 MB per minute 60fps H.264 录制,每分钟 2–4 MB
- ▸ Per-step LLM explanation of what went wrong 每一步失败的 LLM 解释,直接回答"为什么挂了"
- ▸ Reports archivable to S3 / R2 / local disk 报告可归档至 S3 / R2 / 本地磁盘
device: ios steps: - open app: com.northwind.ios - tap: "Cart" - swipe: up until: "Checkout" - tap: "Checkout" - assert visible: "Order total"
/ authoring
Five ways to write a test. 五种写法,按团队取用。
DSL-only for the reviewable kind. AI-only for exploratory. AI planning with DSL execution for deterministic replay. Hybrid for the 80% case. Or drop to plain JS when you need it. 纯 DSL,适合 Code Review;纯 AI,适合探索;AI 规划 + DSL 执行,适合可确定性回放;混合模式覆盖 80% 场景;需要时也可直接切到 JS。
/ ci
CI-native. No emulators, no babysitting. 原生 CI 友好。无需模拟器,也无需看护。
Spin N real devices in parallel on self-hosted runners or Tapilot Cloud. Reports upload as artifacts, a PR-comment bot drops a diff of screenshots and perf metrics vs. main. 在自建 Runner 或 Tapilot Cloud 上并行启动 N 台真机。报告自动作为构件上传,PR 评论 Bot 自动对比 main 分支的截图与性能差异。
- ▸ Matrix across device × OS × locale in one file 一份文件跑 设备 × 系统 × 语言 矩阵
- ▸ Fail-fast retry only the flaky step, not the whole run 失败时只重试 flaky 的那一步,不整轮重跑
- ▸ Native action: tapilot/run-action@v1 官方 Action:tapilot/run-action@v1
name: E2E on: [pull_request] jobs: e2e: runs-on: macos-14 strategy: matrix: device: [pixel-8, iphone-15, chrome] steps: - uses: tapilot/run-action@v1 with: suite: tests/**/*.yaml device: ${{ matrix.device }} parallel: 4 upload-report: true
/ live mirror
See every pixel. Even while a run is remote. 每一个像素都看得见,即使远程执行。
Three mirroring modes built in. Switch between a lightweight screenshot loop for 2G networks, H.264 streaming via scrcpy+jmuxer for local-LAN work, or a full external scrcpy window for the low-latency surgical debugging session. 内置三种镜像方案。2G 网络下可切至轻量截图轮询;局域网下切换为 scrcpy+jmuxer H.264 串流;做精细调试时可直接外挂 scrcpy 独立窗口。
/ pricing
Pricing that matches the value, not the seats. 按价值计费,而非按座位。
Tapilot is in pre-launch. The pricing below is what we plan to charge at launch — you cannot subscribe yet. Join the waitlist and we will email you when it opens.
Tapilot 尚未正式发售。下方为上线后的计划定价,目前还不能订阅。留下邮箱,开放时我们会通知你。
Every plan includes the desktop app, the DSL, and the MCP server. Only runs, reports, and governance scale up. 每个套餐都包含桌面端、DSL 和 MCP 服务端。仅运行次数、云报告与治理能力随套餐递增。
For solo devs kicking the tires. 个人开发者试水首选。
- ✓ 100 runs / month100 次 / 月
- ✓ Desktop app (macOS / Win / Linux)桌面端(macOS / Win / Linux)
- ✓ Local reports本地报告
- ✓ Community DiscordDiscord 社区
For indie teams shipping weekly. 每周发版的小型团队适用。
- ✓ 2,000 runs / month2,000 次 / 月
- ✓ Cloud reports + 90-day retention云端报告 · 90 天保留
- ✓ Priority email support (<24h)优先邮件支持(<24 小时)
- ✓ Flake alerts + weekly digestFlaky 告警 + 每周摘要
For orgs with an actual QA budget. 拥有专职 QA 预算的组织适用。
- ✓ 10,000 runs / month10,000 次 / 月
- ✓ SSO (SAML + OIDC) & SCIMSSO(SAML + OIDC)与 SCIM
- ✓ Audit log · 365-day retention审计日志 · 365 天保留
- ✓ Slack / Discord webhooks · multi-seatSlack / Discord Webhook · 多席位
All plans: unlimited devices, unlimited seats on Free & Pro, 30-day refund window. 所有套餐:设备数不限,Free 与 Pro 席位不限,30 天无理由退款。
Stop writing flaky tests. 别再写 flaky 测试了。
Install in 60 seconds. First green run in about four. 60 秒安装完成,约 4 分钟跑出首条通过用例。