hcaptcha-challenger vs a solving service.
hcaptcha-challenger is one of the most-starred open-source hCaptcha solvers on GitHub: a Python library that works the challenge inside a Playwright browser using Google's Gemini models. NoneCap is an hCaptcha solver service that returns the token from an API call. This page sets out what hcaptcha-challenger does and needs, quoted from its README, docs, releases and issue tracker as of November 2, 2026, and when each one is the better pick. One disclosure: this site is NoneCap.
What hcaptcha-challenger does
Its GitHub repository describes it in one line: "Gracefully face hCaptcha challenge with multimodal large language model." The README adds that it "does not use any third-party anti-captcha services". Its documentation says the agent "controls browser pages through Playwright" and "interacts exclusively with web pages through the Page object". In practice:
-
You open the page with Playwright, in any browser Playwright can launch, and pass the
Pageto its agent. The agent clicks the hCaptcha checkbox and works through the challenge in that page. - Each step asks a Gemini model through your own key. Its main branch moved the default to Gemini 3.7 Flash in August 2026.
- Its README lists the challenge types the agent handles: binary image labels, point selection and drag-drop. Bounding-box and multiple-choice challenges are listed without a check mark.
- It is free under GPL-3.0. On November 2, 2026 it had about 2,600 stars and 450 forks on GitHub, and pypistats.org counted about 26,000 downloads in the previous month.
What it needs from you
- Python 3.10 or newer, per its PyPI page. Install with
uv pip install hcaptcha-challenger. - Playwright and a browser. The agent only works through a Playwright page, so every solve runs a browser on your machine or server.
- A Gemini API key, set as
GEMINI_API_KEY. Its configuration stops with "GEMINI_API_KEY is required but not provided" without one, and Google bills the model calls to that key. An open request to add self-hosted, OpenAI-compatible models (#1098, June 2026) says the code "currently hardcodes Gemini". - Time to keep up with hCaptcha. Its open issues include requests for challenge types it does not handle yet, such as "Drag the pipe from the right to complete the puzzle", and a January 2026 report of an infinite retry loop on one challenge.
Maintenance as of November 2026
The latest release is v0.19.0, uploaded to PyPI on December 21, 2025 and tagged on
GitHub releases on January 5, 2026, with the
note "Gemini 3". Since then the main branch has had three commits, the latest on
August 15, 2026 (PR #1101, the new
default model). The repository is not archived. Several 2026 issues had no maintainer reply on
November 2, among them a report that the older local YOLO and ONNX models can no longer be
selected in v0.19 (#1091). A question about
Enterprise rqdata sitekeys (#1077,
October 2025) is also unanswered.
hcaptcha-challenger vs NoneCap
| NoneCap | hcaptcha-challenger | |
|---|---|---|
| What it is | An hCaptcha solving service: an API and a Chrome extension | An open-source Python library (GPL-3.0) that works the challenge inside a page your Playwright code opens |
| What you send | The sitekey and page URL | A Playwright Page with the hCaptcha on it |
| What you get back | An hCaptcha token in the API response | The challenge completed in your page; its quickstart prints hCaptcha's response, token included |
| What it needs from you | An API key | Python 3.10+, Playwright and a browser, and your own GEMINI_API_KEY |
| Challenge types | Image grids, drag puzzles, point-on-image | Per its README: binary image labels, point selection and drag-drop; bounding-box and multiple-choice not marked as supported |
Enterprise rqdata | Yes | Asked in issue #1077 (October 2025), unanswered as of November 2026 |
| From other languages | Any HTTP client; SDKs for Node and Python | Python only |
| Price | $0.20 to $0.50 per 1,000 credits, from 1 credit per challenge round; failed solves never charged | Free code; Google bills your Gemini usage on your own key |
| Latest release | Hosted, nothing to upgrade | v0.19.0: on PyPI December 21, 2025, on GitHub releases January 5, 2026 |
When self-hosting is the better choice
Pick hcaptcha-challenger, or another open-source project, when:
- you want to read and change the code, or study how a multimodal model handles hCaptcha;
- you already run Playwright and want the solving step inside your own Python process, with no solving vendor in between;
- you need a few solves now and then, and Gemini usage on your own key costs you less than paying per solve;
- you are building your own solver and want its dataset tool (
hc dataset collect).
The price of that freedom is upkeep. When hCaptcha adds a challenge type or a dependency changes, you wait for a fix or write it yourself.
Where a solving service fits
NoneCap fits when you would rather not maintain the solving step. Send the sitekey and page URL
and you get an hCaptcha token back for your code to submit with the form, from Playwright,
requests, any other HTTP client or any language. You need no model key and no browser for the challenge,
and regular, invisible and Enterprise rqdata sitekeys are covered.
Failed solves are never charged.
import os, time, requests
API = "https://api.nonecap.com/v1/solves"
HEADERS = {"Authorization": f"Bearer {os.environ['NONECAP_KEY']}"}
def solve_hcaptcha(sitekey: str, url: str) -> str:
r = requests.post(API, headers=HEADERS, params={"wait": 90},
json={"type": "hcaptcha", "sitekey": sitekey, "url": url},
timeout=120)
r.raise_for_status()
data = r.json()
while data["status"] in ("pending", "solving"):
time.sleep(2)
data = requests.get(f"{API}/{data['id']}", headers=HEADERS, timeout=30).json()
if data["status"] != "solved":
raise RuntimeError(f"solve {data['status']}: {data.get('error')}")
return data["token"]
With ?wait=90 the request stays open for up to 90
seconds and the token usually comes back in that response; the loop covers the rest. The
Playwright guide shows where the token goes on the page,
and the API reference has examples in cURL, Node, Python and Go.
Pricing is $0.20 to $0.50 per 1,000 credits, from 1 credit per challenge round; new accounts get
1,300 credits with no card. For hCaptcha in your own Chrome, the
NoneCap extension gives 100 free solves a day with no account.
Which one to use
If you want open source you can read and change, and you are happy to run a browser and a Gemini key and keep up with hCaptcha's changes, hcaptcha-challenger is the project to start from. If you want a token from an API call, with Enterprise sitekeys covered and failed solves not charged, NoneCap's API does that.
Last updated November 2026.
Frequently asked
What is hcaptcha-challenger?
hcaptcha-challenger. Its tagline: "Gracefully face hCaptcha challenge with multimodal large language model." You hand it a Playwright page with an hCaptcha on it, and it clicks the checkbox and works through the challenge. It is GPL-3.0 licensed and had about 2,600 GitHub stars on November 2, 2026.How do I install hcaptcha-challenger?
uv pip install hcaptcha-challenger (plain pip works too), and PyPI lists Python 3.10 or newer. You also need Playwright with a browser it can launch, and a Gemini API key from Google AI Studio set as GEMINI_API_KEY.Does hcaptcha-challenger need an API key?
Is hcaptcha-challenger still maintained?
Does hcaptcha-challenger return an hCaptcha token?
POST /v1/solves and read token.When is hcaptcha-challenger the better choice?
hc dataset collect) for people building their own solver. If you are comfortable fixing things when hCaptcha changes a challenge type, free code with your own Gemini key is a reasonable trade.