Skip to main content

Self-hosted captcha solver: OpenCV grid detection + a fine-tuned Qwen3.5-9B vision LoRA served on vLLM.

Project description

captchakraken

The Python engine + CLI behind CaptchaKraken: OpenCV grid detection + a fine-tuned Qwen3.5-9B vision LoRA served on vLLM. Given a screenshot of a captcha grid, it locates the tiles and returns the click plan. Ships the captchakraken command.

For demo videos, accuracy numbers, the browser driver, and the full self-hosting guide, see the main repo CaptchaKraken.

Install

pip install captchakraken            # client: OpenCV detection + vLLM HTTP planner
pip install "captchakraken[serve]"   # + the serving stack (vLLM/torch) to self-host

The base install is lightweight — everything you need to solve captchas against a vLLM server (local or remote). The [serve] extra pulls the heavy stack only if you want to run the model yourself. The one-command setup.sh installs [serve], downloads the weights, and writes an env file for you.

Hands-off server

The vLLM server is managed for you. On your first solve, if the configured endpoint is local and nothing is listening, a server is started automatically and reused. Point VLLM_BASE_URL at a server you already run to skip local management entirely.

captchakraken server start | stop | status | run

Usage

# Solve an image/video: classify → find_grid → plan. Prints the click actions.
captchakraken path/to/captcha.png
captchakraken path/to/captcha.png --puzzle-source hcaptcha
from captchakraken import CaptchaSolver

solver = CaptchaSolver()          # connects to / auto-starts a local vLLM
actions = solver.solve("captcha.png")

Pure-OpenCV tool subcommands (no model): find-grid, find-checkbox, detect-selected, grid-cell-states, find-move, find-movable, and a persistent serve worker the browser driver polls.

Configuration (model-agnostic)

Everything model-specific lives in captchakraken.config and is env-overridable — the solver never hard-codes a model.

Variable Meaning Default
VLLM_BASE_URL Inference endpoint http://localhost:8000/v1
CAPTCHA_KRAKEN_API_KEY Bearer token (VLLM_API_KEY also accepted) EMPTY
CAPTCHA_BASE_MODEL Base weights vLLM loads Qwen/Qwen3.5-9B
CAPTCHA_LORA_ADAPTER Captcha adapter (HF id or path) CaptchaKraken/CaptchaKraken_v1
CAPTCHA_LORA_NAME Served adapter name the client requests captcha
CAPTCHA_KRAKEN_AUTOSTART 0 disables local auto-start 1

License

GPL-3.0-or-later.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

captchakraken-2.2.0.tar.gz (90.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

captchakraken-2.2.0-py3-none-any.whl (75.1 kB view details)

Uploaded Python 3

File details

Details for the file captchakraken-2.2.0.tar.gz.

File metadata

  • Download URL: captchakraken-2.2.0.tar.gz
  • Upload date:
  • Size: 90.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for captchakraken-2.2.0.tar.gz
Algorithm Hash digest
SHA256 03ebd383fa689e8112b10c2ed2d415f573370b2f1d2d6acbf49fc73004d97fb9
MD5 ce81e718934a747782b074905a5044ba
BLAKE2b-256 d133837045731a3f26e3ca5b20fc806820cc176839e67e122261542cbf1e89e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for captchakraken-2.2.0.tar.gz:

Publisher: publish.yml on JWriter20/CaptchaKraken

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file captchakraken-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: captchakraken-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 75.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for captchakraken-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4202e7362f407ea768fa4e3fa757a40aa54289ae1c2e4d6caa21e74254757be9
MD5 46065fdc26595410753c7e3694ce362e
BLAKE2b-256 e332119efd7791f8659c6b187582b355777a12728d82702e0f454c8f82c45d74

See more details on using hashes here.

Provenance

The following attestation bundles were made for captchakraken-2.2.0-py3-none-any.whl:

Publisher: publish.yml on JWriter20/CaptchaKraken

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page