Skip to main content
This guide shows how to run the Qalti CLI in a CI pipeline (GitHub Actions). It includes parallel simulator runs and an example of running a test on a real iOS device. You can check out the full repository here: github.com/qalti/qalti. It includes source code, CI examples, and demo tests. Below is how a real CI run looks like under the hood with 4 workers: Qalti demo

What you can do

  • Parallel simulator execution
  • Run tests on a real device
  • Produce Allure-formatted reports that you can upload to any QA system

Authentication for CI

Qalti requires your OpenRouter API key for test execution. Set it in your CI environment:
Or pass it explicitly with --token.

Install Qalti in CI

Qalti is a macOS app, and the CLI is included in the bundle. You can download and install it in your CI pipeline with this bash script:

Minimal CLI example

This is the easiest way to run your test:
where change_appearance.test is a test file with steps in English:
To learn more, run /Applications/Qalti.app/Contents/MacOS/Qalti cli --help

Parallel simulator runs (QaltiScheduler)

Use QaltiScheduler to execute tests in parallel:

CI example (GitHub Actions)

This workflow example shows how you can use Qalti in your CI pipelines: .github/workflows/qalti.yml — it’s short, commented, and shows how to:
  • Set up Qalti
  • Run tests on simulators and on a real device
  • Export Allure results and upload artifacts
You can check recent runs in the Qalti Actions dashboard to see it in action.

Allure reports

Qalti outputs results in Allure format if you set the --allure-dir flag. You can upload them to your QA system of choice. As an example, we use TestOps Cloud and upload via allurectl. Allure report in TestOps Cloud

Contact