Stop babysitting your AI agent at every CAPTCHA.
captcha-ninja lets your agent pass CAPTCHAs on its own, in the Chrome you already have open. One tool call in, one token back, and the run keeps going.
- $0.001 per solved CAPTCHA
- One API key
- Works with any MCP agent
One CAPTCHA is all it takes to stop an agent
Agents are good at forms and bad at proving they can click a box.
Runs die at the last step
Your agent fills the whole form, then meets a checkbox it cannot click. The run ends one step from done.
You become the solver
Every stalled run pings you to click a box. Automation that needs a babysitter is not automation.
Your pages leave your browser
A typical solving service gets your page URL, sitekey, images or audio, and solves on someone else's workers.
Your agent hits a CAPTCHA and keeps going
This is the whole integration: one extra tool call in the middle of a run.
agent › browser_click "Submit application" ✗ timeout: element not visible, enabled and stableagent › a GeeTest slide puzzle is covering the buttonagent › solve_captcha { type: "geetest", url: "https://example.com/apply" } · click widget · find gap with vision model · drag knob ✓ { status: "solved", via: "v4", token: "…" }agent › browser_click "Submit application" ✓ submittedagent ›
- reCAPTCHA v2
- Invisible reCAPTCHA
- hCaptcha checkbox
- Turnstile checkbox
- GeeTest v3 + v4
- Lemin
- Text images
- Audio clips
Three steps, zero changes to your agent
Your agent keeps driving the browser. captcha-ninja only steps in for the CAPTCHA.
- Your agentLLM with browser tools
- captcha-ninja
solve_captcha - Your Chromethe tab already open
- Speech model
- CAPTCHA vision model
- Vision LLM
- Human-like motion
Attach
Connects to the Chrome that is already running and takes the tab your agent is on. It never navigates, so your session stays intact.
Detect
Finds the widget across every frame on the page. With several widgets of one type, it reports that and does not guess.
Solve
Clicks, listens, reads or drags with human-like motion, then hands the token and a clear status back to your agent.
Four ways through, one model for each
Specialist models do what an LLM is slow at: hearing digits, reading warped text, finding a puzzle gap.
Human-like click
A short wander near the box, an uneven approach, a pause and a held press. Enough for most checkboxes.
Slide puzzles
A small vision model finds the gap. The knob is dragged in an eased sweep, then aimed from the piece's live position.
Audio challenges
An image challenge is switched to audio, transcribed by a speech model and typed back one key at a time.
Distorted text
A model trained on CAPTCHAs reads the image first. A vision LLM takes over when it cannot.
Your agent always knows its next move
Every browser call ends in one of four statuses. No silent hangs, no guessing.
Token returned. The agent carries on with its task.
A puzzle outside its range opened. The agent hands over to you.
The provider refused. The agent stops and does not hammer.
Nothing was issued. Usually the check was never started.
8 CAPTCHA types, one tool
Pick a type to see what your agent sends and what it gets back.
reCAPTCHA v2 checkbox
Clicks the checkbox. If an image challenge opens, it is answered through its audio version.
Inputs
urlsitekeyaudioChallengeSteps
- Attach to Chrome and take the open tab showing the URL
- Click the checkbox with human-like motion
- On an image challenge, switch to audio and transcribe each clip with the speech model
- Type the answer, verify, and read the token from the page
Returns
{ status: "solved", token: "…", via: "click" | "audio" }Otherwise
blocked when Google refuses the audio challenge, no_token when nothing is issued.
Measured, not promised
Solved runs on public demo pages.
solvecaptcha.com demo pages, 2026-11-06. Small samples: a sanity check, not a benchmark.
Solved in your browser, not on someone else's workers
How it compares with sending each CAPTCHA to a typical solving service.
| captcha-ninja | Typical solving service | |
|---|---|---|
| Where the CAPTCHA is solved | In your own Chrome tab | On someone else's workers |
| What leaves your browser | Nothing | Page URL, sitekey, images or audio |
Everything your agent needs to get past the box
- One tool, solve_captcha, for 8 CAPTCHA types
- Human-like clicks, drags and typing
- Speech and vision models that do the solving
- Clear statuses, so your agent never guesses
- A ready-made Claude Code skill
- Demo pages to test against before real runs
Pay per solve, nothing else
One small price for every solved CAPTCHA, whatever the type.
$0.001 per solved CAPTCHA
$1 per 1,000 solves
- Every one of the 8 CAPTCHA types
- One API key for all your agents
- No subscription and no minimum
Join the beta
Leave your email and your API key will be sent to it.
Questions before you start
How much does it cost?
$0.001 per solved CAPTCHA, which is $1 per 1,000. One API key covers every type.
Does it open or navigate pages?
No. It attaches to the Chrome that is already running and takes the open tab showing the URL you pass. Your agent stays in charge of navigation.
What if a page has several CAPTCHAs?
Pass the sitekey to pick one. With several widgets of one type and no sitekey, it reports that and does not guess.
What about text riddles like "what is 3 + four?"
Those are not a tool type. An LLM reads and answers them better than any solver, so the agent does it itself.
Does it pass hard image challenges?
No. reCAPTCHA image challenges are answered through their audio version. hCaptcha and Turnstile challenges, reCAPTCHA v3 and GeeTest icon or match puzzles are out of range and come back as challenge.
Which agents can use it?
Any MCP client that speaks stdio. It ships with a Claude Code skill that tells the agent when to call the tool and when not to.
Can I run it as a solving service for others?
It is not built for that. It works on the tab you have open, under your own session, for forms you are meant to fill.