Pyrmi spots bots, scrapers, replayed requests and tampered pages in the browser. Your server asks for a verdict before it trusts a sign-up, a vote, a checkout or a score, and the dashboard shows every flag and why.
Each visit gets a signed session from a real page load. The script watches for automation, scripted input, replaced browser functions, devtools and clock tricks.
Before you act on a request, call pyrmi.verify(). You get accept, review or reject, a risk score from 0 to 100, and the reasons.
The dashboard shows every verdict, which checks fired, and which users keep getting flagged, so you see how well it's working instead of a yes or no.
<script src="https://pyrmi.com/sdk/pyrmi.js" data-site="pk_..."></script>
<script>
const s = await Pyrmi.start(); // on page load
// when the user signs up, votes, buys...
await Pyrmi.flush();
await fetch('/signup', { method: 'POST',
body: JSON.stringify({ token: s.token, email }) });
</script>
const { Pyrmi } = require('pyrmi-server');
const pyrmi = new Pyrmi({ secretKey: process.env.PYRMI_SECRET_KEY });
const v = await pyrmi.verify({ token, user: email });
if (v.verdict === 'reject') return res.status(403).end();
fetch, performance.now, requestAnimationFrame and other built-ins.This box stands in for a form on your site. Each button really does what it says, and the verdict is the one your server would get. Then check the public sandbox dashboard to see it logged.
Want more? Open devtools, or paste performance.now = () => 0 into the console, then send it normally again.
Building with Claude Code, Cursor or another coding agent? Paste this in and it will wire Pyrmi into your pages and your server.
Read https://pyrmi.com/install.md and add Pyrmi Security to this site. Find the requests worth protecting (sign-ups, logins, votes, checkouts, scores, any endpoint bots hit), wire in the script tag and pyrmi-server as described, keep my secret key in an environment variable, and tell me which env vars to set.
The browser script, the server SDK, the API and the dashboard are all MIT. Read how every check works, fork it, or send a fix.
Use pyrmi.com for free while it's in early access, or deploy your own copy to Vercel with a free Upstash Redis. Point pyrmi-server at your URL.