Your agent writes the code. Kekkai keeps it safe.
Finds security mistakes your agent missed, re-tests the fixes it can, and keeps watching your packages after you ship.
Scripted example · fictional app, in an agent app. The user writes: “Add Stripe checkout for the Pro plan, and let freelancers download their invoices as PDFs, with their logo. We're on Supabase.” The agent changes 8 files and runs npm run build. The agent: “Done, and the build passes. Running Kekkai's review before I hand it over.” Kekkai, after kekkai review: Kekkai review (guided) · 7 finding(s). The agent: “Kekkai's review of what I just built:” The agent's card lists 5 problems, each with Kekkai's label. Critical: Your live Stripe secret key is readable by anyone who loads the app, rechecked by Kekkai. Critical: Anyone with the app's public key can read and change every invoice, rechecked by Kekkai. High: Any signed-in user could download another user's invoice, found from the code, not tested (the agent notes: “I found this one with Kekkai's checklist.”). High: Anyone who knows the webhook URL can fake or replay Stripe events, found by an automatic check. High: A debug route returns your environment variables, found by an automatic check. The agent: “Before Kekkai tests the invoice route, it needs your rule:” The agent relays Kekkai's question: “May a signed-in user view invoices owned by another user? Kekkai's contract ties each one to its owner (`owner_id`).” The user writes: “No, only the owner” The agent runs kekkai contract answer --choice no --user-approved. The agent runs kekkai verify --suspect. After kekkai verify --suspect, the card marks “Any signed-in user can download another user's invoice”: reproduced. The agent: “Fixing all five.” The agent changes 7 files and runs npm run build. The agent: “One thing only you can do: rotate the Stripe key in your dashboard. It was in a build.” Kekkai, after kekkai verify: test verified (local) · Fix verified by Kekkai; 4 findings: rechecked by Kekkai · Fix verified by Kekkai. After kekkai verify, the card marks “Your live Stripe secret key is readable by anyone who loads the app”, “Anyone with the app's public key can read and change every invoice” and “Any signed-in user can download another user's invoice”: Fix verified by Kekkai. Kekkai, after kekkai review: Kekkai review (guided) · 8 finding(s). Kekkai, after kekkai status: Open findings: none in what was checked (see coverage and what was not checked); no longer reported (not verified): 3; fixes verified: 5. After kekkai status, the card marks “Anyone who knows the webhook URL can fake or replay Stripe events” and “A debug route returns your environment variables”: No longer reported, not verified. The report's cards: Open findings 0, Waiting for you 1, Checklist items reviewed 6, Found, not tested 0, Fixes verified 5, Business actions tested 1 of 7, Not checked 31. Waiting for you: “Is any of the app's data meant to be public, so people can see it without signing in (for example published posts)? (User selected sign-in)” The agent: “Record: 5 fixes verified by Kekkai. 3 no longer reported, not verified. 1 waiting for you.”
Agents ship fast. Their security mistakes ship with them.
In Veracode's 2025 tests of more than 100 AI models, 45% of code samples introduced a vulnerability from the OWASP Top 10.
Users seeing each other's data
Miss one owner check and any signed-in user can open someone else's invoices.
…agent.suspect [http] reproduced · Not fixed yetKeys in your browser bundle
A secret key in client code ships to every visitor who loads the app.
- [critical] Stripe live secret key exposed to the browser…Open databases
Without row-level security, anyone with your app's public key can read and change your data.
Row Level Security is disabled on public.invoicesFake packages
Attackers publish packages one typo away from popular names, and agents make typos too.
npm react-hook-from@7.54.2: caution
What happens when your agent says it's done
Kekkai's checks catch leaked keys, open tables, unsigned webhooks, debug routes and look-alike packages.
Scripted example · fictional app, in an agent app. The user writes: “install react-hook-from for the signup form” The agent: “I'll check that package with Kekkai before installing it.” Kekkai, after kekkai check pkg: npm react-hook-from@7.54.2: caution; - `react-hook-from` is one or two keystrokes away from the popular package `react-hook-form`. Check that you meant `react-hook-from` and not `react-hook-form`.; inform-only: Kekkai never blocks an install. The agent: “That's two letters swapped from a popular package, a common trick for fake packages. You most likely meant react-hook-form.” The agent runs kekkai check pkg. The agent runs npm install react-hook-form@7.54.2.
Kekkai keeps your project secure, even after you ship.
New vulnerabilities turn up in packages you already use. Kekkai watches yours around the clock, even with your laptop closed.
When one hits, you get an email with one line. Paste it, and your agent upgrades the package on a new branch and runs your tests. Say "ship it", and it pushes the fix. One merge, and it's live.
Watching 2 projects · 1,204 packages · all checked in the last 12 min
- you ship
- new advisory published
- matched to your packages
- paste one line
- tested upgrade on a branch
Kekkai's server matches new advisories in its signed data against each project's last package list, on a schedule that runs every 5 minutes. Alerts are on when you sign up and send each project's package list, encrypted: names, versions and hosting detected. Turn them off in Settings, or with kekkai alerts off in a project.
What was checked. What wasn't.
Every review ends with a record: what was fixed and re-tested, what wasn't, and what Kekkai didn't check.
- Fixes verified
- 5
- Re-tested by Kekkai after the change
- Waiting for you
- 1
- Access questions and decisions only you can make
- Business actions tested
- 1 of 7
- With Kekkai's own two-account tests
- Not checked
- 31
- Skipped checks, open questions, and checklist items not reviewed
Not checked or still unknown
Routes were not enumerated; bugs not identified by the agent or automatic checks were not tested
- Kekkai never sends your code to us. With alerts on, your project's package list is sent, encrypted.
- Runs no AI model of its own
- Code checks run on your machine, even offline
Pricing
Early access
Free
Free during early access. We'll email you before paid plans start.
Up to 20 projects.
Everything is included:
- The 48-item security checklist, matched to your stack
- Guides on auth, payments, uploads and 20 more topics
- Checks for packages, leaked secrets, risky config and debug routes
- Optional local tests: access, Supabase RLS, Firestore rules, webhooks
- Email alerts when a new advisory matches a package version you use
- Local reports in HTML, JSON and SARIF
- Signed pack updates with new advisories and guides
Questions
Which coding agents and systems does it work with?
Why not just ask my agent to check security?
Does Kekkai see my code?
Does it run its own AI?
Will it block my deploys or installs?
Does a clean review mean my app has no vulnerabilities?
How much of my agent's time does Kekkai use?
- Guard: Kekkai's automatic checks only, no agent tokens.
- Standard (default): Kekkai asks your agent for a light review after each change and a full review before you deploy.
- Thorough: everything in Standard, and Kekkai also asks for a review of the full checklist.
What counts as a project?
Is Kekkai free?
Set it up before your agent's next session
One command to install, two to set up this computer, one per project.
For macOS and Linux. Windows is invite-only for now, until Kekkai's Windows builds are code-signed.
kekkai pack update can be quiet for up to five minutes before it prints one line.
To update, run the install command again.
