imnotarobot

mcp
Guvenlik Denetimi
Gecti
Health Gecti
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 50 GitHub stars
Code Gecti
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

I am not a robot — a captcha solver for macOS: local model, Gemini vision, a stealth browser for checkbox captchas, RuCaptcha as the last resort. 2Captcha-compatible API and an MCP server.

README.md

I'm Not a Robot

English · Русский

tests
license
macOS
python

A free-first captcha solver for macOS. A drop-in replacement for the 2Captcha / RuCaptcha API that tries free solvers first — a local model, then any vision model you choose, then an invisible browser — and pays human workers only when nothing else worked. Comes with a menu bar app and an MCP server for AI agents.

I'm Not a Robot: the window and the menu bar panel, demo numbers

Why

  • Any model, free if you like. Bring a key of any vision model — GPT, Claude, Gemini, Qwen, DeepSeek, Grok, OpenRouter, a reseller or a local model via Ollama. The best one for captchas switches on by itself. With a free-tier key or a local model most captchas never reach the paid step.
  • No code changes. Any program that speaks the 2Captcha or RuCaptcha API works after changing one address.
  • A ladder, not a single bet. Local model → vision model → backup vision model → browser → humans. A step that is unsure, wrong or silent hands the captcha to the next one.
  • It learns from mistakes. Report a wrong answer and the step is no longer used on that picture; a step that keeps failing on a kind of captcha is skipped for that kind; complaints about human answers go to the service, which refunds them.
  • You see everything. Journal of every captcha with the picture, the answer and the path it took; daily money limits; side-by-side model comparison.
  • Agents welcome. An MCP server lets Claude, Cursor and other agents solve captchas through the app.

Quick start

  1. Download ImNotARobot.dmg from Releases and move the app to Applications. It is not signed by Apple yet: if macOS blocks the first launch, press Open Anyway in System Settings → Privacy & Security. Later versions install from the app: it checks GitHub once a day and shows an Update button.
  2. Paste a key of any vision model into Keys and models: the provider is detected and the best model for captchas switches on by itself. No key yet? Gemini has a free tier at aistudio.google.com/apikey.
  3. In your program, change the captcha service address to http://127.0.0.1:8765 and the API key to the access key from Connection.
  4. Want captchas solved right in the browser, with no program at all? Connection → Browser extension shows the bundled Chrome extension: load it unpacked (or into an anti-detect browser profile) and paste the access key into it once.

Optional: add a RuCaptcha or 2Captcha key as the last, paid step.

How it works

Step Solves Cost Time
1. Local model (ddddocr, piece matching) text, sliders free milliseconds
2. Vision model (any: GPT, Claude, Gemini, Qwen, DeepSeek, Grok, local) text, picture grids, clicks free tier or cents 3–8 s
3. Backup vision model (another model or the same with thinking) what step 2 was unsure about free tier or cents 10–50 s
4. Browser (invisible Chrome) reCAPTCHA v2/v3, hCaptcha, Turnstile free 3 s – 2 min
4a. Your own browser over CDP (anti-detect profile) DataDome slider, Arkose FunCaptcha free 5–60 s
5. RuCaptcha / 2Captcha anything paid 10–60 s

Measured results

On our test set and the official demo pages, October 2026. Small samples; rerun the checkbox part yourself with python -m imnotarobot.demo_bench --runs 10.

Captcha Result
Text, picture grids (vision model) 100%
Clicks on real captchas (vision model) 69–72% of 39
reCAPTCHA v2 demo (browser) accepted by Google 2 of 3, median 118 s
reCAPTCHA v3, Turnstile test key (browser) 5 of 5, 3–4 s
hCaptcha demo (browser) 5 of 5, median 82 s
DataDome slider on etsy.com, seloger.com (own Chrome over CDP) 2 of 2; an IP block is reported as such
Arkose FunCaptcha not checked on a live challenge yet

Which model is best

People share their model comparisons from the app (Share results, nothing is sent without you pressing Submit on GitHub); the table is in community results.

Compared with

I'm Not a Robot 2Captcha / CapSolver OhMyCaptcha hcaptcha-challenger
Price free first, paid last paid per captcha free free
Drop-in 2Captcha API ✓ ✓ YesCaptcha API —
Captcha kinds 8 own + any via humans 30+ 19 hCaptcha
Desktop app, journal, limits ✓ web dashboard — —
MCP for agents ✓ ✓ — —
Runs on servers / Docker ✓ ✓ ✓ ✓

Use from code

import time, requests

API, KEY = "http://127.0.0.1:8765", "your-access-key"
task = requests.post(f"{API}/createTask", json={"clientKey": KEY, "task": {
    "type": "RecaptchaV2TaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "SITE_KEY"}}).json()
while (r := requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json())["status"] == "processing":
    time.sleep(2)
print(r["solution"]["gRecaptchaResponse"], "solved by", r["layer"])

The old API (in.php / res.php) works too. Besides the 2Captcha fields, getTaskResult returns layer, confidence, notes (what was tried before) and lowConfidence.

MCP

{"mcpServers": {"imnotarobot": {"command": "/Applications/ImNotARobot.app/Contents/MacOS/ImNotARobot", "args": ["--mcp"]}}}

Tools: solve_image_captcha, solve_token_captcha, solve_in_browser, get_result, report_wrong, captcha_status.

Task types

Type local vision browser humans
ImageToTextTask ✓ ✓ ✓
GridTask (answer is tile numbers from 1) ✓ ✓
CoordinatesTask (answer in pixels) ✓ ✓
SlideMatchTask (own: target + background) ✓
RecaptchaV2TaskProxyless, RecaptchaV3TaskProxyless, HCaptchaTaskProxyless, TurnstileTaskProxyless ✓ ✓
DataDomeSliderTask, FunCaptchaTask, FunCaptchaTaskProxyless with cdpEndpoint ✓ ✓
Any other 2Captcha type ✓

DataDome and Arkose in your own browser

Both judge the browser and its IP more than the answer, and the cookie or token they give is bound to that browser.
So they are solved where they appear: in your anti-detect profile (Dolphin, AdsPower, Multilogin, Octo or Chrome
started with --remote-debugging-port). Pass the profile's DevTools address as cdpEndpoint; websiteURL picks the tab.

{"type": "DataDomeSliderTask", "cdpEndpoint": "http://127.0.0.1:9222", "websiteURL": "https://www.etsy.com/"}

The tab passes by itself; the answer also carries cookie and userAgent (DataDome) or token (Arkose).
The browser is only connected to, never closed. If DataDome blocks the IP outright ("Access is temporarily restricted")
no solver helps: the answer says so, change the proxy. Without cdpEndpoint the task goes to RuCaptcha.

Server (Docker)

The same API and MCP on Linux, without the window. A ready image for x86 and ARM servers is published with every release:

docker run -d --restart unless-stopped -p 8765:8765 -e GEMINI_API_KEY=... -e CLIENT_KEY=your-access-key \
  -v imnotarobot:/data --name imnotarobot ghcr.io/zigansh1n/imnotarobot

To update: docker pull ghcr.io/zigansh1n/imnotarobot, then remove the container and run the same command again; keys and history stay in the imnotarobot volume. To build it yourself: docker build -t imnotarobot .

HUMAN_API_KEY (and HUMAN_PROVIDER=2captcha if needed) adds the paid last step. Keys are kept in /data/secrets.json, readable only by the server.

Build from source

uv venv -p 3.12 .venv && uv pip install -p .venv/bin/python -e ".[test]" pyinstaller
.venv/bin/python -m pytest -q
packaging/build.sh          # builds ImNotARobot.app into ~/Applications
.venv/bin/python -m imnotarobot --port 8765   # the server alone, no window

The app speaks the system language: English or Russian.

Signing the build

Without a signing identity every build is ad hoc: macOS treats each build as a new program and asks
again for "Allow in the Background" (the login item) and notifications after every build. Run
packaging/make_cert.sh once: it creates a self-signed certificate "ImNotARobot Local" in your
login keychain (no password needed), and build.sh then signs every build with it — to macOS it is
the same program from build to build. The app window still warns when either permission is off,
with a button into the right System Settings pane.

IMNOTAROBOT_SIGN_IDENTITY signs with another identity; IMNOTAROBOT_DISTPATH together with
IMNOTAROBOT_NO_INSTALL=1 builds into a directory of your choice without installing into
~/Applications.

Responsible use

Use it on your own sites, for testing, and for automation you are allowed to run. Respect the terms of the sites you visit. The project does not target any particular site.

License

MIT

Yorumlar (0)

Sonuc bulunamadi