QA for AI-coded software

Verify your agent's code
in a real browser.

screencli is an AI reviewer that opens your preview in a real browser on every PR, clicks through the change, and posts a verdict — before your review starts.

Live example · what lands on the PR~90s after preview deploy · github.com/acme/checkout-app/pull/274
Conversation 12
Commits 8
Checks 4
Files changed +132 −18
github.com/acme/checkout-app/pull/274

Add checkout button to product page #274

claude-code[bot] wants to merge 8 commits into main from feat/checkout-button
SC
screencli
bot
41 seconds ago
Pass — 4 of 4 checks succeeded
1m 42s
recorded
Plan derived from diff
# 4 files changed · +132 −18
verify "checkout flow completes"
verify "success page renders order id"
verify "cart empties after confirm"
Add to cart → cart drawer opensstep 1/4 · 6.2s
Checkout button reaches Stripe formstep 2/4 · 11.4s
Order ID renders on success pagestep 3/4 · 7.8s
Cart count returns to 0step 4/4 · 1.1s
↗ Open trace·↗ Download .mp4·commit a3f9c2e·model claude-sonnet-4.5
REC · run-9f2
00:42 / 01:42
pr-274-checkout-app.vercel.app/checkout

Confirm order

3 items · $84.40
Place order →
0:06 add to cart0:18 checkout0:42 confirm1:42 order id
verdict feed · live
passvercel/next.js#742144/4 · 1m 18s· just now
failshadcn-ui/ui#50183/4 · select onValueChange not firing· 2m ago
passacme/checkout-app#2744/4 · 1m 42s· 4m ago
inconclusivetldraw/tldraw#3812inconclusive · preview deploy timed out· 6m ago
passresend/react-email#12093/3 · 52s· 9m ago
passusefulagents/screencli#885/5 · 1m 04s· 12m ago
failsupabase/supabase#221072/3 · email confirmation never arrives· 14m ago
passcal-com/cal.com#153026/6 · 2m 11s· 18m ago
passvercel/next.js#742144/4 · 1m 18s· just now
failshadcn-ui/ui#50183/4 · select onValueChange not firing· 2m ago
passacme/checkout-app#2744/4 · 1m 42s· 4m ago
inconclusivetldraw/tldraw#3812inconclusive · preview deploy timed out· 6m ago
passresend/react-email#12093/3 · 52s· 9m ago
passusefulagents/screencli#885/5 · 1m 04s· 12m ago
failsupabase/supabase#221072/3 · email confirmation never arrives· 14m ago
passcal-com/cal.com#153026/6 · 2m 11s· 18m ago
Why the existing checks aren't enough

Your CI is green.
The feature is still broken.

Every check passing tells you the code compiles, the units don't lie, and the deploy went up. None of that tells you whether a human can actually use it.

Pass

Type-check

tsc said the types line up. The interface is sound. The function signatures match.

// can't catch: button does nothing on click
Pass

Unit tests

50ms, 100% covered. Asserts the reducer returns what it should. Mocks the network call.

// can't catch: success page redirects to 404
Pass

Preview deploy

Vercel built it. The URL responds with a 200. The bundle is under the size budget.

// can't catch: the modal never opens
● screencli

Actually used the app

Opens the preview in a real browser. Clicks the new button. Verifies the change does what it claims.

// catches: everything above
Also in the inner loop

Your agent
can call it too.

Same engine in a shell. Claude Code, Cursor, Cline, Windsurf — any AI agent that can run npx can verify its own work before opening the PR.

One command. npx screencli verify — no install, no account.
Same verdict format. Pass / fail / inconclusive, with a recording.
MIT licensed. Self-host the App. No telemetry. Free forever.
$npx skills add usefulagents/screencli --skill screenclicopy
~/work — claude code
$npx screencli https://myapp.com -p "Demo the new dashboard"
⟶ launching headless browser…
⟶ recording → recordings/a3f2c8e1/raw.mp4
Agent Actions
[01]navigate app.example.com
[02]click Sign in button
[03]type user@example.com
[04]click Dashboard tab
[05]scroll down to metrics
[06]done — Dashboard walkthrough complete
Video composed — recordings/a3f2c8e1/composed.mp4
Uploaded https://screencli.sh/v/a3f2c8e1
$
Pricing

Simple pricing.

One plan. Everything in it. Cancel any time.

screencli
$12/ month
Hosted GitHub App, the CLI, the skill, and shareable recordings. No seats. No tiers.
Start free trial
  • Hosted GitHub App on screencli.sh
  • 500 credits
  • Shareable recording links
  • CLI + Claude skill included
  • Verdict history + webhooks
  • Block-merge policy (optional)
FAQ

Questions, before
the install button.

If the answer isn't here, the docs probably have it. Otherwise email hi@screencli.sh.

screencli verifies AI-coded changes by driving the browser like a human. Install the GitHub App and every pull request gets an AI-driven browser test on your preview deploy — pass/fail verdict and a recording, posted as a PR comment. Or call the same engine from the CLI inside any AI coding agent (Claude Code, Cursor, Windsurf, etc.) for one-off recordings, demos, and verifications.
Install the screencli GitHub App and pick which repos it watches. When a pull request opens, screencli reads the diff, plans browser checks, runs them against your preview deployment, and posts a pass/fail comment with a recording link — all before you review. You don't write test files; the AI decides what to test based on what changed.
The CLI works standalone. Run npx screencli record <url> -p "your prompt" from any terminal or AI coding agent — no GitHub App required. The App is for teams that want automatic verification on every PR; the CLI is for one-off recordings, demos, and AI-agent-driven verification from your local dev loop.
Your preview deployment. screencli picks up the deployment URL from your GitHub deployments (Vercel, Netlify, Cloudflare Pages, etc.) and runs the AI browser test against it — your production app is never touched.
No install needed — just run npx screencli record <url> -p "your prompt". On first run, the CLI opens a browser for GitHub login, then you're ready to record. For permanent installation, run npm install -g screencli.
Run: npx screencli record https://your-app.com -p "Walk through the main features". The AI agent opens the URL, follows your prompt instructions, and records everything. When it finishes, you get a composed video and a shareable link at screencli.sh. No setup, accounts, or API keys needed for the first run.
Yes. Use the --login flag to log in manually first, then the AI agent takes over your authenticated session. Add --auth myapp to save the session for future recordings: npx screencli record https://app.example.com -p "Show the dashboard" --login --auth myapp. Next time, just pass --auth myapp to reuse the saved session.
Record first, then export with the github-gif preset: npx screencli export ./recordings/your-recording --preset github-gif. This produces an optimized 800x450 GIF (max 12 seconds, under 8 MB) ready to embed in Markdown. Other presets: youtube, twitter, instagram, tiktok, and linkedin.
Any AI coding agent that can run shell commands can use screencli — it's a standard CLI tool. For Claude Code specifically, install the skill with npx skills add usefulagents/screencli --skill screencli, and Claude can record demos autonomously as part of your development workflow.
The CLI is fully free and open source (MIT license) — all video effects, gradient backgrounds, and export presets are included with no limits. The free cloud tier includes 10 recordings per month with shareable links. The Pro plan ($12/month) adds 100 recordings, full analytics, and removes the watermark.
Every recording automatically gets: idle time trimming (removes pauses between actions), auto-zoom (follows the active area), click highlights (visual pulse on clicks), and cursor trails. You also choose from 6 gradient backgrounds (aurora, sunset, ocean, lavender, mint, ember) with customizable padding, corner radius, and drop shadow.
Yes. By default, every recording auto-uploads to screencli.sh and you get a shareable link like screencli.sh/v/a3f2c8e1. The link shows an embedded video player with chapter markers, metadata, and a download button. Use --local to skip the upload and keep recordings local only.

Watch your agent's
work, in a real browser.

Install in 60 seconds. Open your next PR. Get back a verdict and a recording before you take your first sip of coffee.

$npx screencli record <url> -p "your prompt"copy
No install, no account — runs straight from your terminal.
$12 / mo·cancel any time