captchaforge 0.2.11

Automatic CAPTCHA detection and multi-strategy solving for chromiumoxide-driven headless browsers (Cloudflare Turnstile, reCAPTCHA v2/v3, hCaptcha, image grids, audio, sliders).
Documentation
# Tier-A operational config for captchaforge.
#
# Drop a copy of this file in your project as `.captchaforge.toml`
# (the leading dot is the convention) and edit the values you want
# to override. Any field absent here keeps its compiled default.
#
# Discovery search path (first hit wins):
#   1. $CAPTCHAFORGE_CONFIG (explicit path)
#   2. ./.captchaforge.toml (this file)
#   3. ./captchaforge.toml
#   4. $XDG_CONFIG_HOME/captchaforge/config.toml (or ~/.config/...)
#
# Vendor detection rules live in a SEPARATE file (see
# `rules/community.toml`) — those are Tier-B community knowledge,
# not operational config, and never CLI-flagged.

# Per-solver timeout for the chain. Default 180_000.
per_solver_timeout_ms = 180000
# Whether to capture a screenshot for human review on full chain failure.
screenshot_on_failure = true

[cache]
# TTL in seconds for cached solved tokens. Default 60 — conservative
# enough for most upstream validators. Bump for sites with longer-
# lived tokens.
ttl_seconds = 60

[vlm]
# Override the Ollama endpoint. Beats CAPTCHAFORGE_VLM_ENDPOINT env var.
# endpoint = "http://gpu-host:11434"
# model    = "qwen3-vl:30b"

[third_party]
# Pick one: "two_captcha" | "cap_monster" | "cap_solver" | "custom".
# Leave the whole [third_party] section out to skip the third-party
# solver entirely.
# service  = "two_captcha"
# Required when service = "custom".
# base_url = "https://my-gateway.example/2captcha"
# API key (or leave blank and use CAPTCHAFORGE_THIRDPARTY_API_KEY env var).
# api_key  = ""
# poll_interval_ms = 5000
# max_polls        = 30

[solve]
# Every SolveConfig field is overridable. Defaults below are the
# compiled defaults; uncomment to change.
# checkbox_poll_interval_ms = 500
# checkbox_max_attempts     = 15
# token_poll_interval_ms    = 500
# token_max_attempts        = 16
# audio_button_delay_ms     = 2000
# audio_submit_delay_ms     = 2000
# vlm_http_timeout_ms       = 120000
# client_http_timeout_ms    = 180000