01
Install the runner
Add momentic to devDependencies and run npx momentic init to write momentic.config.yaml. Mobile projects install momentic-mobile instead.
Tests are YAML files in your repo, so npx momentic run behaves the same on your laptop and on a CI runner. A failing test exits non-zero, which is all your pipeline needs to stop a bad merge.
Web, iOS and Android · GitHub Actions · GitLab CI · CircleCI · Jenkins · Buildkite
name: e2eon: pull_request jobs: momentic: runs-on: ubuntu-latest strategy: matrix: shard: [1, 2, 3, 4] steps: - uses: actions/checkout@v4 - run: npm ci - run: npx momentic install-browsers - name: Run tests run: > npx momentic run --shard-index ${{ matrix.shard }} --shard-count 4 --run-group-id ${{ github.run_id }} --upload-results env: MOMENTIC_API_KEY: ${{ secrets.MOMENTIC_API_KEY }}117,010 bugs caught before deploy
70M+
Test runs executed
80k+
PRs verified
1000s
Parallel browsers
4
Report formats
The CLI reads momentic.config.yaml, collects the test files in your project, and runs them. Everything the run needs sits in your repo and on the machine you start it from.
01
Add momentic to devDependencies and run npx momentic init to write momentic.config.yaml. Mobile projects install momentic-mobile instead.
02
Each test is a YAML file next to your code. Engineers edit it by hand, and Cursor, Claude Code and Codex write it through our MCP server.
03
npx momentic run takes a file path, a name, or --labels smoke. In CI, split the suite with --shard-index and --shard-count, then send the run to the dashboard with --upload-results.
Flags for the work engineers do every day: pick a subset, choose the tests a diff can affect, split a long suite, and hand the results to the tooling you already run.
npx momentic run login-flow starts one test against your dev server. Add --parallel auto to size workers from the host CPU count, and --url-override to point the same test at a preview deployment.
The same runner on your laptop and in CI.
Filter by file path, by test name, or by label. --include and --exclude take regex patterns, and momentic list shows what a pattern matches before you run it.
Run the 12 tests your change touches instead of all 400.
--ai-select reads the diff against your pull request base and runs the in-scope tests that cover the change. --ai-select-dry-run measures that choice against your own CI history first.
The pipeline runs the tests your diff can affect.
--shard-index and --shard-count split the suite across CI jobs. --run-group-id stitches separate invocations back into one run in the dashboard.
A 40-minute suite fits inside a 5-minute job.
The CLI writes JUnit XML, Allure, Playwright JSON, or Buildkite JSON into --output-dir. --upload-results sends videos, traces and auto-heal history to the dashboard.
Failures appear where your team already looks.
A failed test exits non-zero. Quarantined tests still run without breaking the build, and classification can keep an intended UI change from failing the pipeline.
A failed pipeline means a real regression.
Teams that gate every merge from the terminal.
Engineering teams run Momentic on pull requests, on main, and on a schedule.
“Momentic gave us a fast and reliable way to validate Poe.com's AI responses, even when they weren't deterministic.”
30 min
daily test execution, down from 7 hours
500+
manual test cases replaced
100%
critical tests created in one month
Same YAML. Same flags. Same runner.
Add momentic to devDependencies, then run npx momentic init to write momentic.config.yaml. For iOS and Android, install momentic-mobile.
It reads momentic.config.yaml, collects the YAML tests in the project, runs them in a browser, and writes results to a local directory. Pass --upload-results to send the run to the dashboard.
In your repo, as YAML files beside your code. You review a test change in a pull request like any other file.
Yes. Set MOMENTIC_API_KEY in your shell or in your CI secrets.
Pass a file path, a test name, or --labels smoke. --include and --exclude accept regex patterns over file paths.
Yes. Pass --shard-index and --shard-count in a matrix job, write each shard to its own --output-dir, and group the invocations with --run-group-id.
JUnit XML, Allure, Playwright JSON, and Buildkite JSON.
Yes. Cursor, Claude Code and Codex reach the same commands through our MCP server, so an agent can write a test and run it in the same turn.
Our docs cover GitHub Actions, GitLab CI, CircleCI, Jenkins, Buildkite, Azure DevOps, and Travis CI. Any runner that can execute npx momentic run works.
Yes. The CLI runs a headless browser, so nothing opens on screen. Run npx momentic install-browsers once on a new machine or CI runner to install the browser and ffmpeg.
Yes. Give momentic run the file path or the test name, and pass --video true to keep the video. The default is --video on-fail, which keeps a video only for a failing test.
Define an environment in momentic.config.yaml and read values with ${NAME}. The value comes from your shell, from your CI secret store, or from an env file you keep out of Git. Export MOMENTIC_API_KEY the same way.
Yes. momentic-mobile run works on a CI runner against an Android emulator or an iOS simulator. Hosted runners have fewer cores, so the docs give timeout overrides for CI.
Pass --url-override with the preview URL, or select a configured environment with --env.
Still have additional questions?
Contact us