v0.9.4 E2E for mobile + web · MCP-native 移动端 + Web 端到端测试 · MCP 原生

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 驱动。

macOS 12+ · Windows 10+ · Linux AppImage macOS 12+ · Windows 10+ · Linux AppImage · MIT · 0 telemetry
login.test.yaml
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

Built for teams shipping on 为以下平台发版的团队而造

◼ northwind
◆ anvil
◐ halcyon
✶ koto
▲ relay
◈ pagerank

// placeholder wordmarks — swap for real partners post-launch // 占位字标 — 正式上线后替换为真实合作方

/ 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 驱动。

01

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 执行。无需分叉,也无需重复维护选择器。

android · adb ios · wda web · cdp
02

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" 依然有效。

gemini-2.5 paddle-ocr self-healing locators
03

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 自主探索、回归并提交工单。

43 mcp tools stdio + sse stateless replay

Not a toy. Production surface area: 不是玩具。真实生产级接口面:

43
MCP toolsMCP 工具
24
DSL actionsDSL 动作
5
Solver modes求解器模式
3
Platforms目标平台

/ 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 / 本地磁盘
runs/2026-04-22_14-02-11/
● REC 01:42
[ run.md + screen recording ] [ run.md + 录屏 ]
placeholder — report pack preview 占位 — 报告包预览
STEPS
07/07
WALL
4.2s
CPU
23%
FPS
59.4
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。

dsl · reviewable
ai · exploratory
planner + dsl
hybrid
scripted · js escape hatch

/ 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
.github/workflows/e2e.yml
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 独立窗口。

60fps · local network 60fps · 局域网
run #4182 · parallel ×3 运行 #4182 · 三端并行 · checkout.flow.yaml
elapsed已用 00:03.8 · step步骤 04 / 07
pixel-8 · android 15 59.8 fps
9:41●●●● 84%
northwind
Continue
tap "Continue"✓ 04
iphone-15 · ios 18.2 60.0 fps
9:41●●●●
northwind
Continue
tap "Continue"✓ 04
chrome 131 · cdp 60.0 fps
northwind.app/checkout
northwind · checkout
Continue
click "Continue"✓ 04
execution log执行日志
01 open app · 0.42s
02 tap "Sign in" · 0.18s
03 type username · 0.31s
04 tap "Continue" · running…
05 assert visible "Welcome"
06 screenshot "logged-in"
07 end
cpu18% · 22% · 9% mem142 / 168 / 86 MB fps59.8 · 60.0 · 60.0 battery–0.3% / min
timeline · synced across devices 时间轴 · 三端同步 00:00 04:20
01 open 02 tap 03 type 04 tap 05 assert 06 shot 07 end

/ pricing

Pricing that matches the value, not the seats. 按价值计费,而非按座位。

Every plan includes the desktop app, the DSL, and the MCP server. Only runs, reports, and governance scale up. 每个套餐都包含桌面端、DSL 和 MCP 服务端。仅运行次数、云报告与治理能力随套餐递增。

Free
$0 / mo

For solo devs kicking the tires. 个人开发者试水首选。

  • 100 runs / month100 次 / 月
  • Desktop app (macOS / Win / Linux)桌面端(macOS / Win / Linux)
  • Local reports本地报告
  • Community DiscordDiscord 社区
Most popular最受欢迎
Pro
$19 / mo

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 告警 + 每周摘要
Team
$79 / mo

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 分钟跑出首条通过用例。