AI inside
Two layers of AI meet here. Your agent's LLM decides what to do on the page. captcha-ninja's small specialist models do the perception the LLM is slow or poor at: hearing digits, reading warped text, finding a puzzle gap.
Who does what
- Your agentLLM with browser tools
- captcha-ninja
solve_captcha - Your Chromethe tab already open
- Speech model
- CAPTCHA vision model
- Vision LLM
- Human-like motion
| Task | Done by | Why |
|---|---|---|
| Noticing a CAPTCHA is in the way | Your agent (LLM) | It sees the page and the failed click |
| Text riddles ("what is 3 + four?") | Your agent (LLM) | Reasoning is what an LLM is for; no tool call needed |
| Audio challenges | Speech model | Speech-to-text is the one thing it does |
| Distorted text, puzzle gaps | CAPTCHA vision model | Small model trained on CAPTCHAs, fast and CPU-only |
| Images the small model cannot read | Vision LLM | General vision LLM as a second opinion |
| Clicking and dragging | Motion model | Straight, instant pointer moves are not how a hand behaves |
The models
Speech model
When reCAPTCHA opens an image challenge, the solver switches it to audio, downloads the clip, transcribes it and types the answer one key at a time.
CAPTCHA vision model
Reads text CAPTCHAs and locates the slide target for GeeTest and the piece and hole in Lemin's sprite. Small enough to run on a CPU.
Vision LLM
A general vision model is the second opinion when the small model cannot read an image. A setting picks which engine goes first.
Human-like input
Clicks start with a short wander near the box, approach unevenly, pause and hold the press. Drags are an eased 1.3 to 2.4 second sweep, then aimed from the piece's live position.
No solving service in the loop
What stays in your browser
- The page, its images and audio clips
- Your cookies and signed-in session
- The challenge and its answer
What that buys you
- One API key and one small price per solve
- No third-party solving service or human solver farm
- Works on a laptop CPU
A tool an LLM can reason about
The response tells the agent what happened and what to do next.
| Status | Meaning | Agent's next move |
|---|---|---|
| solved | Token issued; via says how (click, audio, silent, version) | Continue the task |
| challenge | A puzzle outside its range opened | Stop and hand over to you |
| blocked | The provider refused, for example no audio offered | Stop; do not hammer |
| no_token | No check was started or no token appeared | Trigger the site's own button, retry once |
The bundled Claude Code skill (.claude/skills/captcha-ninja) teaches the agent these rules, so you do not have to prompt them.