# tapflow

> Open-source, self-hosted stand-in for Appetize or BrowserStack App Live: a relay plus macOS agents drive simulators and emulators your team tests in a browser.

- **Category:** Testing
- **Licence:** MIT
- **Latest version:** v0.30.0
- **Open source:** oss
- **Languages:** Typescript, JavaScript
- **Platforms:** Docker, Docker Compose, Node.js, NPM
- **Tags:** React Native, Android, Flutter, iOS, Mcp, Webhooks, Developer Tools, Open Source, Testing, Q&a, Self Hosted, Emulator, Good First Issue, Android Emulator, App Testing, Appetize Alternative, Browserstack Alternative, Ios Simulator, Mobile Qa, Mobile Testing, Qa Tools, Simulator, Device Streaming, macOS Agent

## Description

tapflow is a self-hosted mobile QA platform that lets developers and non-technical teammates drive running iOS and Android devices from a browser, with no Xcode or Android Studio install on their own laptop. Three pieces join up: a relay server that also serves the dashboard, macOS agents booting the simulators and emulators that dial out to the relay, and the dashboard everyone signs in to. Streams use H.264 at roughly 30 fps with an automatic JPEG fallback; inside a session you get touch gestures, deep links, keyboard typing, two-way clipboard sync, device audio and offline-network testing, with HTTPS for the secure-context decoder and SMTP mail for invitations and password resets. App Center collects simulator and emulator builds, comments and shareable screenshots attach to each one, session recordings stay on the relay for around 72 hours, and a REST API with scoped personal access tokens lets CI push builds; two experimental extras exist, a deterministic YAML flow runner plus an MCP server aimed at coding agents. One operator installs the package globally with npm and runs `tapflow start` on a single Mac; bigger teams move the relay to a Linux host managed by PM2 or Docker and attach each Mac with an agent-scoped token. Agents are macOS-only and need an Apple Silicon Mac, releases are still in the v0.x series, and the docs advise against hosting the relay in the cloud because round-trip delay breaks the stream.

## Links

- [Homepage](https://github.com/jo-duchan/tapflow)
- [Website](https://www.tapflow.dev)
- [Docker](tapflow/tapflow)
- [Quick Start guide](https://www.tapflow.dev/get-started/quick-start)
- [CLI reference](https://www.tapflow.dev/reference/cli)
- [Changelog](https://github.com/jo-duchan/tapflow/blob/main/CHANGELOG.md)
- [OpenSSF Best Practices entry](https://www.bestpractices.dev/projects/15158)

---
Source: https://selfhost.directory/project/tapflow