CAPTCHA,
Reinvented.
Verify humans using computer vision, hand gestures and puzzle solving. No more squinting at distorted text.
- Gesture Based
- Human Motion Verified
- No Mouse Required
- No Keyboard Required
- Liveness Detection
- Spatial Interaction
- Privacy First
- No Text CAPTCHA
- Beyond Mouse & Keyboard
- Physical Interaction Required
- Bot Resistant
- Spatial CAPTCHA
Everything you need to verify humans
A complete, gesture-native verification stack — built for the way people actually move.
Computer Vision
MediaPipe-powered hand tracking detects 21 landmarks per hand in real time, right in the browser.
Gesture Recognition
Frame a region with both hands, then grab and drag puzzle pieces with a natural fist gesture.
Bot-Resistant
Solving requires fluid, human motor control — far harder for scripts than clicking checkboxes.
Privacy First
All inference runs on-device. Camera frames never leave the user's machine.
Lightning Fast
GPU-accelerated detection keeps the experience smooth at 30+ FPS with minimal latency.
Drop-in SDK
One component, one site key. Works with React, Next.js and plain HTML out of the box.
Five steps to prove you're human
No text to read, no images to label — just natural hand movement.
Create a capture region
Raise both hands and frame a rectangle with your index fingers. A glowing selection box tracks your fingertips.
AI captures the image
Hold the frame steady for two seconds. A countdown runs, then the region is captured straight from the video.
Puzzle is generated
The captured image is sliced into a shuffled 3×3 grid — a unique puzzle every single time.
Solve using gestures
Move your right hand as a cursor, make a fist to grab a piece, and open your hand to drop it into place.
Human verified
Once the image is reassembled, you're verified and a token is issued to your application.
Try it yourself
Click the checkbox to launch a real verification. You'll need to allow camera access.
Integrate in minutes
Install the package, drop in the component, and you're protecting forms with gestures.
npm install human-captchaZero config to start. Bring your own site key from the dashboard when you go to production.
import { HumanCaptcha } from "human-captcha";
function App() {
return (
<HumanCaptcha
siteKey="demo"
onSuccess={(token) => {
console.log("verified:", token);
}}
/>
);
}Component API
A single, fully-typed component. Every prop is optional except your site key.
| Prop | Type | Default | Description |
|---|---|---|---|
| siteKey | string | — | Your public site key (required). |
| onSuccess | (token: string) => void | — | Called with a verification token on success. |
| onError | (error: Error) => void | — | Called when verification fails. |
| onExpired | () => void | — | Called when an issued token expires. |
| size | "compact" | "normal" | "normal" | Rendered widget size. |
| cameraFacing | "user" | "environment" | "user" | Which camera to request. |
| modal | boolean | false | Open in a modal instead of inline. |
| language | string | "en" | UI language as an ISO code. |
interface HumanCaptchaProps {
siteKey: string;
onSuccess?: (token: string) => void;
onError?: (error: Error) => void;
onExpired?: () => void;
size?: "compact" | "normal";
cameraFacing?: "user" | "environment";
modal?: boolean;
language?: string;
}Simple, scalable pricing
Start free. Upgrade when you grow. Cancel anytime.
Free
For side projects and prototypes.
- 1,000 verifications / mo
- 3×3 puzzles
- Community support
- 1 site key
Pro
For growing products in production.
- 100,000 verifications / mo
- Priority support
- 10 site keys
- Analytics dashboard
Enterprise
For high-volume and regulated teams.
- Unlimited verifications
- SLA & SSO
- Dedicated support
- On-prem option
- Custom models