CLI, open source
Deterministic scan in seconds, no account, no model. Source, rules and fixtures on GitHub.
npx auditai-scan .
# → findings, coverage, exit code for CIOpen-source scanner · GitHub App · MCP for Claude Code and Cursor
The bug that lets one customer read another customer's data is the one AI tools ship most. Audit AI finds it, writes the fix and the test, and shows you the proof: 200 before, 403 after.
Check a public GitHub repositoryFree · about 30 seconds · no sign-up
Read-only. No install, no account, no AI model call. See an example report
Private repository, or want the fix proven for you? Join early access. Free for solo builders.
$ audit verify . --finding AUDIT-001starting local Supabase (Postgres, Auth, PostgREST, Kong)…phase BEFORE Alice → Bob's invoice HTTP 200 ✗ vulnerableapplying fix route.ts +3 −1 (tenant scope from session)phase AFTER Alice → Bob's invoice HTTP 403 ✓ deniedexisting tests 142/142 · security tests 5/5 · re-scan cleanVerdict: VERIFIED FIX
Built for what vibe-coding tools actually generate
Paste a link and get a page that starts with what matters: can one customer reach another customer's data? The developer detail is there too, one click down.
Open the example reportScan your repository
Public repositories only. For private ones, install the GitHub App or run npx auditai-scan . locally.
Example report
example/invoicing-app
1 place may let one customer see another customer's data, and 1 may let a user give themselves access they should not have.
Checked 2 risks in class authorization/RLS. Verified: 0. Confirmed (no sandbox): 0. Unverified: 0.
Every step is reproducible. The output is a proof, not a score.
Deterministic rules map every route, server action, Supabase client, query and RLS policy. No model, no cost, seconds.
A reasoning model reads only the relevant slice: entry, identity, tenant, query, policy. Repository content is untrusted data.
Synthetic tenants Alice and Bob hit the real endpoint in a sandbox. Alice reads Bob's data? That is the bug, reproduced.
The smallest patch that closes the path. No refactors, no surprise changes, validated against your files.
A regression test that fails before the patch and passes after. Your own test suite runs too.
The proof lands in your pull request as a check. Green means verified, not "probably fine".
No tool can prove your app has zero vulnerabilities, and we will not pretend otherwise. Every result reports its coverage in one honest line:
Checked 12 risks in class authorization/RLS. Verified: 2. Confirmed (no sandbox): 1. Unverified: 0.
Version 0 goes deep on one class instead of wide on ten: broken object-level authorization, tenant isolation, Supabase RLS and service-role misuse. That is where AI-generated SaaS apps leak.
Deterministic scan in seconds, no account, no model. Source, rules and fixtures on GitHub.
npx auditai-scan .
# → findings, coverage, exit code for CIA check on every pull request with annotations on the exact lines. Blocks only on proven-critical issues.
Audit AI ✓ success (1s)
1 finding · 0 blocking · annotations: 1Your coding agent calls audit_scan, audit_explain, audit_fix and audit_verify. No shell tool exposed.
claude mcp add auditai -- auditai-mcp
> "scan this repo and prove AUDIT-001"$0
Most teams
$59/dev/month
$29/month
Prices are a hypothesis we validate with early teams. Waitlist members keep early-access pricing.
No. Scanners stop at a warning. Audit AI reproduces the bug against a live copy of your app, writes the fix and the test, and shows you the before/after result. If it cannot reproduce something, it says unverified, never "fixed".
Next.js App Router with Supabase (Postgres, Auth, RLS) in TypeScript. That is what Lovable, Bolt, v0, Cursor and Claude Code generate for most SaaS apps. Other stacks come after this one is deep.
The scanner is open source and runs locally or in the GitHub check. Reasoning sends only a bounded slice of the relevant files to the model, never the whole repository. Verification runs in a container with no internet access.
The authorization family: IDOR and BOLA, missing tenant scoping, service-role key misuse, incomplete or wrong RLS policies, unauthenticated admin routes and server actions, mass assignment, roles read from user-editable metadata.
Fixes are proposed as a diff and applied only when you say so. Verification checks that legitimate access still works before it calls anything verified.
Ten design-partner slots. We find and prove one real authorization bug in your Next.js + Supabase app, free. Early access rolls out to Next.js + Supabase repos first.