The toolbox

One handyman. Three ways in.

Patchy checks your app from the outside like a stranger would, reads your code from the inside, and works right in your AI agent. Read-only, owners only, your first app free.

Scan my app
Patchy looking back and waving you in
Patchy shining a flashlight into a dark corner
Outside scan

From the outside, like a stranger would.

Paste your URL. Patchy reads what anyone on the internet can reach and proves every leak with a real, read-only request.

  • Supabase tables and storage anyone can read
  • Firebase rules that let anyone in
  • Secret keys in your JavaScript, including Supabase sb_secret_ keys
  • Exposed files: .env, .git, backups, source maps
  • Debug pages, API docs and chatty error pages
  • CORS that lets other sites read logged-in data
  • Security headers, HTTPS and cookies
  • Email spoofing protection (SPF and DMARC)
  • Libraries with known vulnerabilities
  • API routes your frontend calls, flagged for an auth check
  • Cookie consent, tested in a real browser from the EU: trackers before the visitor chooses, and whether Reject really works
  • AI instructions (system prompts) shipped in your JavaScript
  • Admin tools on your subdomains: n8n, Metabase, Grafana, Evolution API and more

Live scans need a one-line ownership tag. Your dev server needs nothing. To find subdomains, your domain name (only that) is looked up in public certificate logs (crt.sh and Cert Spotter).

Patchy lifting the corner of a sheet to look underneath
Code scan

From the inside, where AI tools hide the holes.

Run it from your project folder and Patchy reads the code too. On your machine. Your code never leaves it.

terminal
npx shippable-dev scan localhost:5173

Add --browser to open your app in your own Chrome too, and test your cookie banner: what fires before anyone chooses, and after they click Reject.

  • Tables with Row Level Security off in your migrations
  • Policies that trust user_metadata, USING (true) reads, users who can edit their own plan
  • SECURITY DEFINER functions anyone can call, views that skip RLS
  • Edge functions that send email, take payments or use the service key without checking the caller
  • Stripe, Lemon Squeezy and Paddle webhooks that never check the signature
  • SQL and filters built from request data
  • Secrets headed for the browser (VITE_, NEXT_PUBLIC_) and .env files in git
  • Email or SMTP passwords (including Gmail app passwords) written into your code
  • Every dependency in your lockfile against the OSV database
  • Analytics and ad trackers that load with no cookie banner
  • AI features: user details in prompts, AI replies shown as raw HTML, document search that ignores whose data it is
  • Login abuse: code and reset emails anyone can send in a loop, rate limits a +alias gets around, messages that reveal who has an account

Only package names and versions go to OSV. Your report opens on shippable.dev inside the link itself, after the #, which browsers never send to a server. We count scans anonymously (never URLs, code or findings); turn it off with SHIPPABLE_TELEMETRY=0.

Patchy reading a blueprint and directing three small robots as they fix a brick wall
MCP

Inside your AI agent, before it says "done".

Add Shippable once. Your agent can scan the app it's building and fix what it finds.

Plugin (MCP server plus a "check before shipping" skill), inside Claude Code:

claude code
/plugin marketplace add Egarter/shippable-plugin /plugin install shippable@shippable

Or just the MCP server:

terminal
claude mcp add shippable -- npx -y shippable-dev mcp
shippable_scan

Checks the running app from outside, local or live.

shippable_review_code

Runs the code checks, then gives your agent a checklist for what patterns can't catch, like plan limits enforced only in the frontend.

Prompt for your AI tool
Add this "Before shipping" section to this project's agent instructions so every future session follows it. Put it in AGENTS.md at the project root (create the file if it doesn't exist). If the project also has CLAUDE.md or Cursor rules (.cursor/rules), add it there too. Don't change anything else. ## Before shipping Before telling me this app is ready to ship: 1. Run `npx shippable-dev scan <dev server URL>` (for example localhost:5173). 2. Fix every critical and high finding it reports, then scan again to confirm. 3. After deploying, run `npx shippable-dev scan <live URL>`. 4. Give me the "Full report" file path from the last scan.

One paste. Your agent writes the rule into your project and won't call it ready until Patchy agrees.

Everything about the MCP server →

After the scan

Every scan leaves you something useful.

Private report links

Share a report without sharing your findings with us. The whole report lives after the # in the link.

What changed

Re-scan and see what you fixed, what's new and what's still open.

  • 2 fixed
  • 1 new
  • 3 still open

This looks wrong?

Think a finding is off? Tell us in one click. We read every one, and it's how the checks get sharper.

Patchy sitting on a big badge
Checked by Shippable

Checked by Shippable badge

A badge for your footer that links to your latest check.

Checked by Shippable
<a href="https://shippable.dev/checked/YOUR-ID"><img src="https://shippable.dev/badge/YOUR-ID.svg" alt="Checked by Shippable" height="20"></a>
Watch mode

He keeps watch so you don't have to.

Included with every app: re-checked weekly or daily, your choice, and an email when something new leaks. Your first app is free, then $1 per extra app a month (apps you already had stay free).

Coming soon A check on every deploy.

How app pricing works →
Patchy at a desk of monitors with a mug of coffee, keeping watch
Coming soon

The crew tries to break in.

AI Red Team agents actively try to break your logins, checkout and inputs, only on apps you've proven are yours. $5 per run, billed from prepaid credit (top up from $20), paid only, with a spending cap you set before your first run.

See Red Team pricing →
Three ninja Patchys ready to test your app's defences
Patchy carefully holding a panel shut
Gentle by design

Careful hands. Owners only.

Patchy only works on houses the owner lets him into, and he never moves the furniture.

Owners only.

Live apps need a tag only the owner can deploy. Local scans can't reach anything but your machine.

Read-only.

He never writes, deletes or changes a thing. To prove a table is open he reads a few rows, max.

Polite.

Every request says it's Shippable. If your host's bot protection pushes back, he stops and tells you.

Paced.

Gentle probes, spaced out. Your app won't notice he was there.

Read the full scanning rules
CI

Block the deploy, not the launch party.

The CLI exits with 1 on any critical or high finding. Drop it in your pipeline and leaks never reach production.

terminal
npx shippable-dev scan https://staging.myapp.com || exit 1

Running it in your own CI is free, forever. Hosted checks on every deploy are coming soon.

On GitHub? The Shippable Action scans every pull request and writes the findings to the run summary. Want to see what it catches first? Try the demo app with planted holes.

Patchy riding a rocket-powered brick
Patchy leaning proudly on a freshly patched wall

Find the leaks before someone else does.

Your first app is free; it's read-only and takes about a minute. Patchy's ready when you are.