New: TestSprite CLI is Now Live!

Gate Your CI/CD Pipeline With an AI Testing CLI.

Drop testsprite into GitHub Actions, GitLab CI, or any pipeline that runs a shell step. It authenticates from an environment variable, runs your suite against a real deployed environment, and exits with a stable, predictable code — so a broken build fails the build, not the next standup.

Runs In Any CI, Any Runner, Any Shell

GitHub ActionsGitLab CICircleCIJenkinsAny shell runner
A green pipeline that never actually opened the site or hit the API isn't a green pipeline — it's a guess. testsprite runs in the same step as your build, against a real deployed environment, and gives the merge gate something true to check.

Non-Interactive by Design

TESTSPRITE_API_KEY=sk-... testsprite setup --from-env --yes --agent claude — no prompts, no browser login, works in a headless runner.

One Step, Any Pipeline

testsprite test run --all --project <id> --wait --output json as a single CI step — parse the JSON, or just check the exit code.

Predictable Exit Codes

Stable, documented exit codes mean your pipeline can gate a merge on a real result, not on parsing free-text logs to guess what happened.

Dry-Run Before You Commit

--dry-run exercises your pipeline logic offline with test data, so you can wire up the step before it's hitting a live environment.

# .github/workflows/verify.yml
- name: Verify with TestSprite
  env:
    TESTSPRITE_API_KEY: ${{ secrets.TESTSPRITE_API_KEY }}
  run: |
    npm install -g @testsprite/testsprite-cli
    testsprite setup --from-env --yes
    testsprite test run --all --project prj_8f2a --wait --output json

# exits non-zero on a real failure — the merge gate fails with it

Make the Merge Gate Mean Something

A build that passes because it never really checked isn't a passing build. Every pipeline run tests your actual deployed environment — real browser, real API calls — and fails for a real reason.

Built for Every Stage of the Pipeline

PR, Nightly, or Release

Run the full suite on every PR, a smaller smoke set nightly, or everything before a release — same command, different --project and plan.

Batch Reruns

testsprite test rerun --all --project <id> re-verifies everything after a flaky-looking run, without re-triggering the whole pipeline.

Free Community Version

Offers a free community version, making us accessible to everyone.

Diff Two Runs

testsprite test diff <runId1> <runId2> shows exactly what changed between a passing build and a failing one.

Trusted By Businesses Worldwide

"TestSprite offers rich test case generation, clear structure, and easy-to-read code. It also supports simple online debugging with the ability to quickly expand by generating new test cases."

"TestSprite's automation helps us reduce tons of manual work. The developers can easily catch and resolve bugs earlier in the development process."

FAQ

How does the CLI authenticate in a headless CI runner?

Set TESTSPRITE_API_KEY as a secret, then run testsprite setup --from-env --yes --agent claude (or your agent of choice). No interactive prompt, no browser login — it's built for exactly this.

Does it work with GitHub Actions specifically?

Yes, and with any CI that can run a shell step — GitLab CI, CircleCI, Jenkins, Buildkite. It's a Node.js CLI installed with npm; if your runner can do that, it can run TestSprite.

What does the pipeline actually gate on?

A real test run against your deployed environment — browser tests via Playwright, API tests with dependency management — reported back with a stable, documented exit code. Your existing "fail the job on non-zero" step just works.

Can I test the pipeline wiring before it's live?

Yes — --dry-run exercises your test logic offline against test data, so you can confirm the step is wired correctly before pointing it at a real environment.

What happens when CI catches a real regression?

You get a failure bundle (failing step, screenshot, DOM snapshot, root-cause hypothesis, fix recommendation) attached to that run — pull it with testsprite test failure get <testId> from the job logs or a follow-up step.

Give Your Pipeline Something Real to Gate On.