A self-hosted alternative to Firebase Test Lab. Keep your devices, keep your privacy, drop your costs 10x.
# Your existing CI workflow. That's it.
- name: Acquire device
run: sair-acquire | sed 's/^export //' >> $GITHUB_ENV
- name: Run tests
run: ./gradlew connectedCheck
- name: Release device
if: always() && env.SAIR_LOCK_ID != ''
run: sair-release
Three lines. Zero test rewrites.
Whether you're a solo dev with multiple repos or a team scaling CI, SAIR gives you real device testing without the headaches.
GitHub only lets orgs share runners across repos. As an individual dev, you need a runner per repo — and they all fight for the same phones. SAIR coordinates device access so every repo gets its turn.
Works with your existing ./gradlew connectedCheck. No test rewrites, no new APIs, no vendor lock-in.
Use your own hardware. Repurpose old phones or buy used devices. No per-minute billing surprises.
Test APKs and artifacts never leave your network. Only job metadata flows through the orchestrator.
Scoped ADB ports give each CI runner exclusive device access. No conflicts between parallel jobs.
Set up the Proxy and DeviceSource once. Every project on every runner shares the same device pool — no per-repo configuration needed.
We run the orchestrator. You keep your devices and your data.
Your CI jobs call sair-acquire to lock a device, run tests with stock adb, then sair-release. No SDK changes needed.
DeviceSource runs on the machine with USB devices and reports them to the Proxy. The Proxy relays ADB traffic and coordinates locks with the Orchestrator. All CI runners share the same Proxy.
Manages device locks and coordination so multiple CI jobs never collide on the same device.
10x
cheaper than Firebase Test Lab
< 15min
to first test run
0
test rewrites required
These open-source projects run connectedCheck on real devices through SAIR in their CI pipelines.
Kotlin Android starter with library + app modules, JaCoCo coverage, and instrumented tests.
Java Android starter with lint, unit tests, and on-device instrumented tests.
Kotlin Multiplatform ICMP library with Android instrumented tests that need real network access.
Free tier includes 2 devices and 10 jobs per day. Set up in under 15 minutes.