FOR AGENCIES AND FREELANCERS
Hand over the work.
And the proof it works.
Before you send a build to a client, run the flows they care about. Testsy tests the site in Chrome or the app on iPhone, iPad and Android phones and tablets, and gives you a replay and the values it saw to send with the handover.
01 · YOU DEFINE WHAT THE CLIENT EXPECTS
Turn the brief into checks.
Write each acceptance point the way the client wrote it: what to do, and what must be true to pass. Testsy drafts the steps and checks, and you review them before anything runs.
- A project for each client site or app
- Sign-in accounts stored once; the password never goes in the box
- Files for uploads and imports, attached to the test
- Sign-up tested end to end, through the confirmation email
- A saved test you run again after every change request
02 · WE RUN IT, FOR REAL
Tested the way their customers will use it.
Testsy works the site or app the way a person would and records the value it sees at every check. Run it before each handover, or after every deploy.
- Chrome at desktop, tablet and phone sizes
- iPhone and iPad, Android phones and tablets, on the OS version you choose
- Choose from the network regions available in your workspace
- The same checks again before the next release
03 · YOU SEND THE RESULT, THE PROOF AND THE REPLAY
Send the client a replay, not a promise.
Share a read-only link to the result: every check with the value it was decided on, the replay and the video. If something fails, you see expected versus seen and get a fix prompt for your coding agent before the client notices.
- See the proof: the exact screen region each value was read from, outlined in the replay
- Copy fix prompt: the failure, values and steps as one prompt for Cursor, Claude Code or Codex
- Five tabs on every result: Replay, Video, Values seen, Console and Network (plus the device log for apps)
- Share a read-only link, copy it as an issue, or fetch the same result as JSON and JUnit
Four honest outcomes. Blocked is never a run you pay for.
These are the verdicts exactly as they appear at the top of a result.
Each check confirmed against a value the tester actually saw, with where it was read.
Counts as a runExpected versus seen, the step it was judged at, steps to reproduce and the moment in the replay.
Counts as a runA bot wall or sign-in got in the way. The result says where, instead of calling it your bug.
Not billedThe evidence wasn't on screen to decide. The result says what was missing; nothing is rounded up to a pass.
Counts as a runFOR YOUR WORKFLOW
Keep every client's checks running.
Run a project's tests after each deploy from CI, on a schedule, or from your coding agent over MCP. You pay per run, not per seat, so the whole team and every client project share one plan.
- GitHub Actions, GitLab CI or any CI through a one-file CLI
- Scheduled runs, with an email when one fails
- A REST API and an MCP server for tests and runs
- Read-only share links for clients
Read the docs: CI, MCP and the API →
name: Testsy
on:
deployment_status:
workflow_dispatch:
jobs:
qa:
if: github.event_name == 'workflow_dispatch' || github.event.deployment_status.state == 'success'
runs-on: ubuntu-latest
steps:
- name: Run Testsy tests
env:
TESTSY_AI_API_KEY: ${{ secrets.TESTSY_AI_API_KEY }}
TESTSY_AI_URL: https://app.testsy.dev
run: |
curl -fsSL "$TESTSY_AI_URL/cli/testsy-ai.mjs" -o testsy-ai.mjs
node testsy-ai.mjs run --project p_workspace --junit testsy-ai-junit.xml
- uses: actions/upload-artifact@v4
if: always()
with: { name: testsy-ai-junit, path: testsy-ai-junit.xml }2 passed, 1 failed · exit code 1
claude mcp add --transport http testsy-ai https://app.testsy.dev/mcp --header "Authorization: Bearer $TESTSY_AI_API_KEY"
⎿ 5 steps · 3 checks · sign-in account "customer" · no questions
⎿ t_k3m9 · saved with the approved checklist
⎿ j_c91m7 started · https://app.testsy.dev/o/launchpad/runs/j_c91m7
⎿ final · passed · "All 3 checks passed." · title after reload "Release notes" · 2 minutes 18 seconds
PRICING
Pay per run. No seats, no minutes.
One run is one test on one platform. Web, Android and iOS share the same allowance. Every run stops at 20 minutes and never costs more than one run.
Free trial
Fits your numbersTry it on your own site or app.
- Runs10, once
- Web runs at once1
- App runs at once1
- Projects1
- Extra 50 runs—
Starter
Fits your numbers$0.49 a run
- Runs100 / month
- Web runs at once5
- App runs at once1
- Projects2
- Extra 50 runs$30
Team
Fits your numbers$0.30 a run
- Runs500 / month
- Web runs at once10
- App runs at once3
- Projects5
- Extra 50 runs$20
Growth
Fits your numbers$0.25 a run
- Runs1,200 / month
- Web runs at once20
- App runs at once10
- Projects15
- Extra 50 runs$15
Need more than Growth?
More than 1,200 runs a month, more runs at the same time, invoicing, a security review or a dedicated region — we set it up for you.
Questions
What counts as a run?
One test executed on one platform. Running the same test on the web and on Android is two runs. Web, Android and iOS runs come out of the same allowance. A run the site blocked is not billed.
What happens if a run takes long?
Every run stops at 20 minutes. There are no duration extensions and no charges for time: a run is one run however long it takes.
Do I need to write code or selectors?
No. You write what should happen in plain English and review the steps and checks Testsy drafts. Developers can still drive everything from CI, the CLI, the REST API or MCP.
How is this different from other AI testing tools?
Every verdict shows the value it was decided on, where it was read and on which step, with the screenshot and the moment in the replay. And a site that blocks the test is reported as blocked, not as a bug in your app.
Can it test pages behind a sign-in?
Yes. Add a sign-in account to the project once and name it in the test. The password never goes in the test text, and never appears in results.
How do I test my mobile app?
Upload an Android .apk or a zipped iOS .app from the dashboard, the CLI or CI, then write the test against that build. Choose iPhone or iPad, an Android phone or tablet, and the OS version: iOS 27, 26, 18 or 17; Android 16 to 10. A new test runs on a phone with the latest version, held upright; it can start on its side instead, and a test can turn the device during the run. Every run starts on a device that has been fully reset.
What does the free trial include?
10 runs, once, on one project with one run at a time. Web, Android and iOS are all included. No card needed.
Make proof part of every handover.
Start with one client flow that must not break. Run it, then send the link.