Skip to content

Daivageralda/qoder-autopilot

Repository files navigation

πŸ€– Qoder Autopilot

Automated Qoder account registration with anti-detect browser, multi-strategy captcha solving, and 9Router OAuth device token integration.

Register Qoder accounts β†’ solve captchas β†’ verify OTP β†’ auto-connect to 9Router. All in one command.

Python 3.10+ PyPI version License: MIT Camoufox Tests


πŸ“¦ Published on PyPI β€” pypi.org/project/qoder-autopilot

Install with pip install qoder-autopilot β€” no clone needed.

✨ Features

  • 🦊 Anti-detect Browser β€” Uses Camoufox (stealth Firefox fork) with C++-level fingerprinting to bypass bot detection
  • 🧩 Multi-strategy Captcha Solving
    • AI Vision (Gemini/GPT via OpenAI-compatible API)
    • Manual mode (pause and solve it yourself)
  • πŸ“§ Multi-Provider Temp Mail β€” Cloudflare Workers (default) or Moca Supabase
  • πŸ” OAuth Device Flow β€” PKCE-based device token flow (reverse-engineered from 9Router)
  • πŸ”Œ 9Router Auto-Connect β€” Inserts device tokens directly into 9Router's SQLite database
  • πŸš€ First-Run Wizard β€” Interactive setup on first launch
  • 🏠 Built-in Worker Deploy β€” Deploy your own temp mail worker from CLI
  • ⚑ Parallel Mode β€” Register multiple accounts concurrently
  • βš™οΈ Persistent Config β€” qoder-autopilot config for easy customization

πŸ“¦ Installation

Via pip (recommended)

# Basic install (manual captcha only)
pip install qoder-autopilot

# With AI captcha solver support
pip install qoder-autopilot[captcha]

# Full install with all extras
pip install qoder-autopilot[full]

From source (development)

git clone https://github.com/Daivageralda/qoder-autopilot.git
cd qoder-autopilot

# Basic install
pip install -e .

# With AI captcha solver
pip install -e ".[captcha]"

# Full install + dev tools
pip install -e ".[dev]"

Post-install

# Download Camoufox browser binary
python -m camoufox fetch

# Download Playwright browsers (if needed)
playwright install firefox

πŸš€ Quick Start

First time? Just run:

qoder-autopilot

You'll see the setup wizard:

  ╔══════════════════════════════════════════════════╗
  β•‘       πŸ‘‹ Welcome to qoder-autopilot!             β•‘
  β•‘       Let's get you set up in 30 seconds.        β•‘
  β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

  [1] πŸš€ Quick Start β€” use the default public worker
  [2] 🏠 Self-Host β€” deploy your own Cloudflare Worker

Pick 1 for instant setup, or 2 to deploy your own temp mail service.

Registration commands

# Single account, manual captcha (most reliable)
qoder-autopilot --manual-captcha

# 5 accounts sequentially
qoder-autopilot -n 5 --manual-captcha

# 5 accounts in parallel
qoder-autopilot -n 5 --manual-captcha --parallel

# Skip OAuth/9Router, just register
qoder-autopilot --manual-captcha --no-oauth

# Show browser windows
qoder-autopilot --manual-captcha --no-headless

# Custom delay between accounts (seconds)
qoder-autopilot -n 3 --manual-captcha --delay 60

πŸ“‹ All Commands

Command Description
qoder-autopilot First-run wizard (no config) or start registration
qoder-autopilot [options] Register accounts (see flags below)
qoder-autopilot doctor 🩺 Health check β€” verify all dependencies & configs
qoder-autopilot deploy Deploy your own temp mail worker
qoder-autopilot relay Start relay server for remote 9Router
qoder-autopilot config Show config help + available keys
qoder-autopilot config show Show all current settings with source
qoder-autopilot config get <key> Get a specific config value
qoder-autopilot config set <key> <value> Set a config value
qoder-autopilot config reset Reset all settings to defaults

Registration flags

Flag Description Default
-n, --count N Number of accounts to create (1-100) 1
--manual-captcha Pause for manual captcha solving (forces non-headless) false
--no-headless Show browser windows false
--parallel Run all accounts concurrently false
--delay N Delay between sequential accounts 30
--verbose, -v Show debug-level logs false
--quiet, -q Only show errors and warnings false
--dry-run Validate configuration and exit false
--proxy URL Proxy for browser (socks5://host:port, http://host:port) none
--format {text,json,csv} Output format for results text
--log-file PATH Write all logs to a file none
--no-oauth Skip 9Router OAuth, just register false
--parallel Run all accounts concurrently false
--delay N Delay between sequential accounts (seconds) 30

βš™οΈ Configuration

Three-tier priority: Environment variables β†’ User config (~/.qoder-autopilot/config.json) β†’ Defaults

Via CLI (recommended)

# See all settings
qoder-autopilot config show

# Set values
qoder-autopilot config set worker-url https://my-worker.workers.dev
qoder-autopilot config set ai-api-key sk-abc123...
qoder-autopilot config set otp-timeout 30
qoder-autopilot config set mail-provider moca

# Get a value
qoder-autopilot config get worker-url

# Reset everything
qoder-autopilot config reset

Configurable keys

Key Description Default
mail-provider Temp mail provider: cloudflare or moca cloudflare
worker-url Cloudflare Worker URL Built-in default
moca-api-key Moca Supabase API key (tmk_xxx) (empty)
moca-base-url Moca Supabase base URL (built-in)
ai-api-key API key for AI captcha solver (empty)
ai-base-url OpenAI-compatible API base URL https://ai.sumopod.com/v1
ai-model AI model name gemini/gemini-2.5-flash
otp-timeout Max seconds to wait for OTP 20
captcha-timeout Max seconds for manual captcha 120
parallel-delay Delay between parallel accounts (sec) 30
ninerouter-db Path to 9Router SQLite DB OS-aware: ~/.9router/db/data.sqlite (macOS/Linux), %APPDATA%/9router/db/data.sqlite (Windows)

Via environment variables

All keys can be set with QODER_ prefix:

export QODER_WORKER_URL=https://my-worker.workers.dev
export QODER_AI_API_KEY=sk-abc123...
export QODER_OTP_TIMEOUT=30

Via .env file

cp .env.example .env
# Edit .env with your settings

🏠 Self-Host Temp Mail Worker

Want your own independent temp mail service? Deploy in 5 minutes:

# From qoder-autopilot (bundled worker template)
qoder-autopilot deploy

# Or clone the standalone repo
git clone https://github.com/Daivageralda/cf-mail-worker.git
cd cf-mail-worker
npm install
npm run setup

See cf-mail-worker for full documentation.

πŸ—οΈ Architecture

qoder-autopilot/
β”œβ”€β”€ src/qoder_autopilot/
β”‚   β”œβ”€β”€ cli.py              # CLI entry point
β”‚   β”œβ”€β”€ config.py           # Pydantic Settings (env + user config + defaults)
β”‚   β”œβ”€β”€ user_config.py      # Persistent config manager (~/.qoder-autopilot/)
β”‚   β”œβ”€β”€ first_run.py        # First-run setup wizard
β”‚   β”œβ”€β”€ deploy.py           # Worker deploy (extract + setup)
β”‚   β”œβ”€β”€ register.py         # Main registration flow
β”‚   β”œβ”€β”€ temp_mail.py        # Multi-provider temp email client
β”‚   β”œβ”€β”€ oauth.py            # PKCE device auth flow
β”‚   β”œβ”€β”€ otp.py              # Email OTP extraction
β”‚   β”œβ”€β”€ identity.py         # Random identity generation (faker id_ID)
β”‚   β”œβ”€β”€ credentials.py      # Account credential storage
β”‚   β”œβ”€β”€ ninerouter.py       # 9Router SQLite integration
β”‚   β”œβ”€β”€ errors.py           # Custom exceptions
β”‚   β”œβ”€β”€ logger.py           # ANSI colored structured logging
β”‚   β”œβ”€β”€ browser/
β”‚   β”‚   β”œβ”€β”€ camoufox.py     # Anti-detect browser launcher
β”‚   β”‚   └── window_tiler.py # macOS window grid positioning
β”‚   β”œβ”€β”€ captcha/
β”‚   β”‚   β”œβ”€β”€ solver.py       # Orchestrator (AI β†’ manual)
β”‚   β”‚   β”œβ”€β”€ ai_vision.py    # AI vision gap detection
β”‚   β”‚   └── manual.py       # Manual solve pause/poll
β”‚   └── worker_template/    # Bundled Cloudflare Worker (for deploy)
β”‚       β”œβ”€β”€ src/             # Worker JS source
β”‚       β”œβ”€β”€ schema.sql       # D1 database schema
β”‚       β”œβ”€β”€ package.json
β”‚       └── scripts/setup.sh
β”œβ”€β”€ tests/
β”œβ”€β”€ pyproject.toml
└── README.md

πŸ”’ Security

qoder-autopilot takes security seriously:

  • Credential files β€” qoder_accounts.json saved with chmod 600 (owner-only)
  • Config files β€” ~/.qoder-autopilot/config.json and relay.json restricted to 600
  • Password masking β€” passwords never logged to stdout (masked as β€’β€’β€’β€’β€’β€’β€’β€’)
  • API key masking β€” AI API keys never shown in logs (shown as ***configured***)
  • Sensitive field masking β€” config show masks API keys, tokens, and passwords
  • File locking β€” concurrent credential writes are atomic (safe in --parallel mode)
  • Timing-safe auth β€” relay token comparison uses hmac.compare_digest()
  • Rate limiting β€” relay server limits to 30 requests/60s per IP
  • Input validation β€” relay validates email format and field lengths via Pydantic
  • SQLite WAL mode β€” safe concurrent access with busy_timeout (no connection leaks)
  • Secure default binding β€” relay defaults to 127.0.0.1 (localhost only)
  • HTTPS warning β€” startup warns when relay runs without TLS
  • Trust transparency β€” first-run wizard warns about shared public worker

Recommendation: For production use, always self-host your temp mail worker and use HTTPS (nginx/caddy) or SSH tunnel for relay.

πŸ”— Related

  • cf-mail-worker β€” Self-hosted temp mail API (Cloudflare Workers + D1)
  • bulk-temp-mail β€” Full temp mail service with React frontend

πŸ“„ License

MIT β€” see LICENSE

⚠️ Disclaimer

This tool is for educational and research purposes only. Use responsibly and in accordance with applicable terms of service.