record → yaml → run → repair

Show it once. The machine repeats it.

Click through your app the way you would test it by hand — in your own browser window. tapstep writes a plain-text test, runs it on mobile, web and desktop, and keeps it in your repo. When it breaks, you show only the broken step.

Free during the beta — no card, no code, no AI required.

flows/login.flow.yamlyaml
appId: ${STAGING_URL}
commands:
- launchApp
- tapOn: "Log in"
- inputText: "demo@example.com"
- tapOn: "Continue"
- assertVisible: "Welcome"
✓ 5 steps passed · web · 6.2s
webAndroidiOSVS Codedesktop apps·Runs headless in any CI — GitHub Actions, GitLab, Jenkins — with JUnit reports out.

How it works

01

Record

click through your own browser, or a phone

02

YAML

a readable file in your repo

03

Run

web · Android · iOS · CI

04

Repair

show only the step that broke

ai — optional

AI can drive it too — if you want

Everything above works without a model: recording, running and repairing never call one. But if you want the help, the built-in agent sees your screen and your tests — ask it to record a flow and it taps through the app, writes the YAML, runs it and heals broken selectors.

  • Built-in chat in the desktop app — every file edit shows up as a diff, with a checkpoint before changes.
  • Bring your own model: Anthropic, any OpenAI-compatible endpoint, or a fully local Ollama — nothing leaves your machine.
  • Or connect Claude Code, Cursor and any MCP client straight to a device.
AI agents guide
Record a login test against staging
Recorded 5 steps → flows/login.flow.yaml
✓ run passed · web · 6.2s
$ claude mcp add tapstep http://127.0.0.1:4723/mcp

Record in your own browser

No mirror in between: tapstep opens a real browser window and stands a narrow recording panel beside it. Every click arrives as a step, with the ways to address it laid out and the engine's pick marked. Phones record through a mirror, the same way.

Write once, run everywhere

The same flow drives Chrome, Firefox, Android devices, iOS simulators, VS Code extensions and desktop apps. Platform quirks stay in the engine, never in your tests.

Tests that live in git

Every test is a readable file in your repo. Branch it, review it, diff it — history, reviews and CI come for free.

Built for CI from day one

Run headless in any pipeline, watch mode locally, JUnit out. A pinned managed Chromium makes every run reproducible.

When it breaks, fix one step

Steps turn green in real time, with per-step network traffic the moment one doesn't. Then triage offers to show that step again: tapstep replays the run up to it, hands you the screen, and saves just that step back into the file.

Cloud devices — coming soon

Real cloud iPhones, Pixels and browsers beside your local ones, same Run button. iOS tests from Windows and Linux.

Your first green test in two minutes

Install the app, point it at your staging URL and click through it once — you walk away with a plain file you can run forever, and repair one step at a time.