
AI-driven CLI for testing Android and iOS apps using natural language. Generates, runs, and fixes end-to-end tests on emulators/simulators with pass/fail reports and video logs.
finalrun.app • Docs • Blog • Cloud Device Waitlist • Join Slack Community
finalrun-agent is an AI-driven CLI that tests your Android and iOS apps using natural language. You write a plain-English test in YAML, FinalRun launches your app on an emulator or simulator, uses an AI model (Gemini, GPT, or Claude) to see the screen and perform each step — tapping, swiping, typing — and produces a pass/fail report with video and device logs.
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/final-run/finalrun-agent/main/scripts/install.sh | bash
Windows (PowerShell)
irm https://raw.githubusercontent.com/final-run/finalrun-agent/main/scripts/install.ps1 | iex
iOS local testing requires macOS (xcodebuild). On Windows, use finalrun cloud for iOS — Android works locally. CI flags, env overrides, and the artifact list live in the latest release notes.
FinalRun ships skills that let your AI coding agent generate tests, validate workspaces, and run tests — all from chat.
/finalrun-generate-test skill reads your app's source code, infers the app identity, and generates complete test specs with setup, steps, and expected state — organized by feature folder.
Example:
/finalrun-generate-test Generate tests for the authentication feature — cover login with valid credentials, login with wrong password, and logout
The agent will:
.finalrun/config.yaml and environment bindings in .finalrun/env/.finalrun/tests/auth/ and a suite under .finalrun/suites/finalrun check to validate everything/finalrun-generate-test skill validates and run the test once your tests are generated.
Example:
/finalrun-use-cli Run the auth tests on Android
/finalrun-test-and-fix skill orchestrates the full generate → run → diagnose → fix loop. It authors tests via finalrun-generate-test, runs them via finalrun-use-cli, reads the CLI artifacts (result.json, actions/, screenshots, device.log) on failure, classifies whether the bug is in the app code or the test, applies the narrowest fix, and re-runs until the run is green.
Example:
/finalrun-test-and-fix Verify and fix the checkout feature end-to-end on Android
Add this content to your AGENTS.md to auto-trigger Finalrun, so you don’t have to explicitly ask your agent to generate and run tests everytime. This will also let your agent fix issues if there is any error while development
FinalRun uses your own AI provider API key to run tests.
echo "GOOGLE_API_KEY=your-key-here" > .env
| Provider | Environment variable |
|---|---|
google/... | GOOGLE_API_KEY |
openai/... | OPENAI_API_KEY |
anthropic/... | ANTHROPIC_API_KEY |
Test runs consume API tokens from your configured provider — standard API billing applies.
finalrun test smoke.yaml --platform android --model google/gemini-3-flash-preview
finalrun suite auth_smoke.yaml --platform android --model google/gemini-3-flash-preview
Full docs: docs.finalrun.app
--app flag, and per-environment overridesSee CONTRIBUTING.md for monorepo structure, build commands, and contributor guidelines.