[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-92291":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":15,"starSnapshotCount":15,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},92291,"bluk-cf","iAm-182\u002Fbluk-cf","iAm-182","Cloudflare Workers AI Account ID & Token Auto-Grabber — automated signup with Turnstile bypass",null,"Python",153,35,71,1,0,37,48.37,"Other",false,"master",true,[],"2026-07-22 04:02:05","# ☁️ Cloudflare Auto Signup\n\n> Automated Cloudflare account creation with **Workers AI API token generation** — bypasses Turnstile CAPTCHA and Cloudflare WAF using headless browser automation.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10+-blue.svg\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green.svg\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-linux-lightgrey.svg\" \u002F>\n\u003C\u002Fp>\n\n## 🎯 What This Tool Does\n\nThis tool automates the **entire lifecycle** of creating Cloudflare accounts with Workers AI access:\n\n1. **📧 Generate temp email** — via disposable mail API (any mailserver with compatible endpoint)\n2. **🔐 Sign up Cloudflare account** — fill form, solve Turnstile CAPTCHA, submit\n3. **🔑 Create Account API Token** — with Workers AI (Read + Edit) permissions\n4. **✅ Validate token** — verify against Workers AI REST API\n5. **💾 Save to JSON\u002FTXT** — email, password, account_id, api_token, validation status\n6. **📊 Live dashboard** — optional Rich real-time worker progress\u002Flogs\u002Fstatistics\n7. **🧩 9Router export\u002Fadd** — export valid keys to 9Router-friendly TXT and bulk-add them locally\n\n**Output example:**\n```json\n{\n  \"email\": \"cf12345@yourdomain.com\",\n  \"password\": \"Cf*Ab3xK9$mQ\",\n  \"account_id\": \"a1b2c3d4e5f6789012345678abcdef01\",\n  \"api_token\": \"cfut_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n  \"token_valid\": true,\n  \"workers_ai_models\": 60,\n  \"token_name\": \"workers-ai-auto\",\n  \"status\": \"full\",\n  \"created_at\": \"2026-07-03T23:00:00+00:00\",\n  \"proxy_used\": \"direct\"\n}\n```\n\n---\n\n## 🛠️ Tools & Technologies\n\n| Tool | Version | Purpose |\n|------|---------|---------|\n| [**nodriver**](https:\u002F\u002Fgithub.com\u002Fultrafunkamsterdam\u002Fnodriver) | ≥0.38 | Undetected Chrome automation (Selenium alternative, no chromedriver needed) |\n| [**OpenCV**](https:\u002F\u002Fopencv.org\u002F) | ≥4.8 | Template matching to find Turnstile checkbox in screenshots |\n| [**httpx**](https:\u002F\u002Fgithub.com\u002Fencode\u002Fhttpx) | ≥0.25 | Async HTTP client for email API and token validation |\n| [**Pillow**](https:\u002F\u002Fpython-pillow.org\u002F) | ≥10.0 | Image processing support |\n| [**Google Chrome**](https:\u002F\u002Fwww.google.com\u002Fchrome\u002F) | Stable | Browser engine for automation |\n| [**Xvfb**](https:\u002F\u002Fwww.x.org\u002Freleases\u002FX11R7.6\u002Fdoc\u002Fman\u002Fman1\u002FXvfb.1.xhtml) | — | Virtual framebuffer for headless display |\n\n### How Turnstile Handling Works\n\nThis project uses nodriver's built-in Cloudflare helper:\n\n```python\nawait page.verify_cf()\n```\n\nThe helper drives the Cloudflare\u002FTurnstile challenge from the browser session and avoids brittle image-template or OS-click logic. Keep the same authenticated `page` object after signup; opening a fresh tab\u002Fbrowser can lose dashboard session state.\n\n**Requires:** `xvfb-run` to provide a virtual display server in VPS\u002Fheadless environments. When running as root, browser startup uses `sandbox=False`.\n\n---\n\n## 📋 Requirements\n\n- **OS:** Linux (Ubuntu 22.04+ recommended)\n- **Display:** Xvfb (`xvfb-run` command)\n- **Browser:** Google Chrome (stable channel)\n- **Python:** 3.10+\n- **RAM:** ≥512MB per browser instance\n- **Disk:** ≥2GB (Chrome + dependencies)\n\n---\n\n## 🚀 Quick Start\n\n### 1. Setup (VPS)\n\n```bash\n# Clone the repo\ngit clone https:\u002F\u002Fgithub.com\u002FiAm-182\u002Fbluk-cf.git\ncd bluk-cf\n\n# Run setup script\nchmod +x scripts\u002Fsetup.sh\nsudo .\u002Fscripts\u002Fsetup.sh\n\n# Edit config\ncp config.example.json config.json\nnano config.json\n```\n\n### 2. Configuration\n\nEdit `config.json`:\n\n```json\n{\n    \"mail_api\": \"https:\u002F\u002Fyour-mail-api.example.com\u002Fapi\u002Fnew_address\",\n    \"mail_domains\": [\"yourdomain.com\", \"anotherdomain.com\"],\n    \"proxy\": null,\n    \"headless\": false,\n    \"max_accounts\": 10,\n    \"delay_between_accounts\": 300,\n    \"retry_attempts\": 3,\n    \"token_name\": \"workers-ai-auto\",\n    \"token_permissions\": [\"Workers AI\"],\n    \"token_expiry\": \"no-expiration\",\n    \"output_file\": \"results.json\"\n}\n```\n\n| Field | Description |\n|-------|-------------|\n| `mail_api` | Temp email API endpoint (POST, returns `address` + `jwt`) |\n| `mail_domains` | Available email domains (randomly selected) |\n| `proxy` | HTTP proxy URL (`http:\u002F\u002Fuser:pass@host:port`) or `null` |\n| `headless` | Run Chrome without GUI (requires `xvfb-run`) |\n| `max_accounts` | Max accounts per run |\n| `delay_between_accounts` | Seconds to wait between signups |\n| `retry_attempts` | Retries per account on failure |\n| `token_name` | Name for the API token |\n| `output_file` | JSON output path |\n\n### 3. Run\n\n```bash\n# Create 1 account\nxvfb-run --auto-servernum python main.py\n\n# Create 5 accounts with proxy\nxvfb-run --auto-servernum python main.py -n 5 -p \"http:\u002F\u002Fuser:pass@host:port\"\n\n# Create 10 accounts, custom output + 9Router TXT export\nxvfb-run --auto-servernum python main.py -n 10 -o my_accounts.json --export-txt keys.txt\n\n# Run with 2 concurrent workers and Rich live dashboard\nxvfb-run --auto-servernum python main.py -n 10 --workers 2 -p \"http:\u002F\u002Fuser:pass@host:port\"\n\n# Export existing valid results for 9Router\npython scripts\u002Fexport_9router_txt.py -i results.json -o keys.txt\n\n# Bulk-add exported keys into local 9Router (localhost:20128)\npython scripts\u002Fadd_to_9router.py -i keys.txt\n\n# Validate an existing token\npython main.py --validate-only --token cfut_xxx --account-id abc123\n\n# Batch run with proxy rotation\n.\u002Fscripts\u002Fbatch_runner.sh 20 proxies.txt\n```\n\n---\n\n## 📖 CLI Reference\n\n```\npython main.py [OPTIONS]\n\nOptions:\n  -n, --accounts N          Number of accounts to create (default: 1)\n  -c, --config FILE         Config file path (default: config.json)\n  -p, --proxy URL           HTTP proxy URL\n  -o, --output FILE         Output JSON file (default: results.json)\n  -d, --delay SECS          Delay between accounts (default: 300)\n  --headless                Run in headless mode\n  --retry N                 Retry attempts per account (default: 3)\n  -w, --workers N           Concurrent account workers (default: 1)\n  --no-dashboard            Disable Rich live dashboard\n  --export-txt FILE         Export valid keys to 9Router-friendly TXT\n  --validate-only           Only validate an existing token\n  --token TOKEN             Token to validate (with --validate-only)\n  --account-id ID           Account ID for validation\n```\n\n---\n\n## 📊 Scalability\n\n### Can it create 1000+ accounts?\n\n**Yes, but with caveats:**\n\n| Bottleneck | Limit | Solution |\n|------------|-------|----------|\n| IP rate limit | ~10-15 signups per IP | Rotate residential proxies |\n| Memory per browser | ~200-300MB | Run sequentially, not parallel |\n| Time per account | ~2-3 minutes | Expected for 1000 accounts: ~33-50 hours |\n| Proxy cost | Residential ~$5-15\u002FGB | Budget: ~$50-100 for 1000 accounts |\n| Token creation | No observed rate limit | Not a bottleneck |\n\n### Recommended approach for 1000+ accounts\n\n```bash\n# 1. Prepare proxy list (residential, rotating)\n# Format: one proxy per line\n# http:\u002F\u002Fuser:pass@host:port\n\n# 2. Use batch runner with proxy rotation\n.\u002Fscripts\u002Fbatch_runner.sh 1000 proxies.txt\n\n# 3. Or schedule via cron (recommended)\n# Run 50 accounts every 6 hours\nxvfb-run --auto-servernum python main.py -n 50 -p \"http:\u002F\u002Fuser:pass@host:port\" -d 600\n```\n\n### Architecture for high throughput\n\n```\n┌─────────────────────────────────────────────┐\n│           Scheduler (cron\u002Fsystemd)          │\n│  Runs every 6h, creates 50 accounts\u002Frun     │\n└──────────────────┬──────────────────────────┘\n                   │\n        ┌──────────┼──────────┐\n        ▼          ▼          ▼\n    Proxy 1    Proxy 2    Proxy 3\n        │          │          │\n        ▼          ▼          ▼\n    Browser    Browser    Browser\n        │          │          │\n        └──────────┼──────────┘\n                   ▼\n            results.json (append)\n```\n\n**Key optimizations:**\n1. **Sequential, not parallel** — one browser at a time (memory efficient)\n2. **Proxy rotation** — different IP per account\n3. **Scheduled runs** — spread over hours to avoid rate limits\n4. **Append mode** — results.json accumulates across runs\n5. **Retry logic** — auto-retry on transient failures\n\n---\n\n## 📁 Project Structure\n\n```\ncloudflare-auto-signup\u002F\n├── main.py                      # Entry point — orchestrator\n├── config.example.json          # Config template (copy to config.json)\n├── requirements.txt             # Python dependencies\n├── README.md                    # This file\n├── LICENSE                      # MIT License\n├── .gitignore                   # Git ignore rules\n├── src\u002F\n│   ├── __init__.py              # Package init\n│   ├── email_generator.py       # Temp email API client\n│   ├── turnstile_bypass.py      # OpenCV-based Turnstile solver\n│   ├── signup_flow.py           # Signup automation (form + Turnstile)\n│   ├── token_creator.py         # Account API Token creation\n│   ├── token_validator.py       # Token validation via REST API\n│   └── utils.py                 # Shared utilities\n├── scripts\u002F\n│   ├── setup.sh                 # VPS setup (Chrome, Xvfb, deps)\n│   └── batch_runner.sh          # Batch run with proxy rotation\n├── docs\u002F\n│   ├── RATE_LIMITS.md           # Rate limit analysis & recovery times\n│   ├── WAF_BYPASS.md            # WAF bypass techniques (detailed)\n│   └── ARCHITECTURE.md          # Technical architecture diagram\n└── tests\u002F\n    └── test_token_validator.py  # Validation tests\n```\n\n## ⚠️ Legal Disclaimer\n\nThis tool is provided for **educational and security research purposes only**. Users are responsible for complying with Cloudflare's Terms of Service and all applicable laws. The authors are not responsible for any misuse.\n\n---\n\n## 🙏 Acknowledgments\n\n- [Auto-FreeCF](https:\u002F\u002Fgithub.com\u002Fmocasus\u002FAuto-FreeCF) — Original baseline concept and automation approach\n- [nodriver](https:\u002F\u002Fgithub.com\u002Fultrafunkamsterdam\u002Fnodriver) — Undetected Chrome automation\n- [Boterdrop-Solver](https:\u002F\u002Fgithub.com\u002Fnajibyahya\u002FBoterdrop-Solver) — Camoufox CAPTCHA solver (cf_clearance)\n- [chatgpt-auto-signup](https:\u002F\u002Fgithub.com\u002FSGAHSCAJASCJ\u002Fchatgpt-auto-signup) — verify_cf() implementation reference\n- [OpenCV](https:\u002F\u002Fopencv.org\u002F) — Computer vision for template matching\n\n---\n\n## 🐛 Troubleshooting\n\n### Common Errors\n\n| Error | Cause | Fix |\n|-------|-------|-----|\n| `Config not found: config.json` | Config file missing | `cp config.example.json config.json` then edit it |\n| `ConnectionRefusedError` for mail API | Mail server is down or wrong URL | Check `mail_api` in config, verify server is running |\n| `Email failed: 422` \u002F `400` | Domain not supported by mail API | Make sure your mail API has the domains in `mail_domains` |\n| `You are unable to sign up at this time` | **Rate limited** — too many signups from same IP | Wait 2-6 hours, or use a proxy (`-p http:\u002F\u002Fuser:pass@host:port`) |\n| `Turnstile failed` \u002F challenge timeout | Proxy\u002FIP blocked or nodriver helper could not complete | Rotate to a fresh residential proxy, then retry |\n| `email_not_verified` | Cloudflare blocks token creation until email verification | Ensure your temp-mail API exposes `\u002Fparsed_mails` and returns the Cloudflare verification email |\n| `Token creation failed` | Email verification\u002FAPI call failed or dashboard session expired | Check logs for `email_verify_error`, confirm `mail_api` and proxy health |\n| `cf_clearance cookie is TLS-fingerprint-bound` | Using `curl_cffi` outside Camoufox | This tool uses nodriver (full browser), not `curl_cffi` — this shouldn't occur |\n| `Xvfb not found` | Missing virtual display | `apt install -y xvfb` then run with `xvfb-run` |\n| `nodriver not found` | Python dependency missing | `pip install -r requirements.txt` |\n| `Chrome not found` | Google Chrome not installed | `apt install -y google-chrome-stable` or install from [Google](https:\u002F\u002Fwww.google.com\u002Fchrome\u002F) |\n| `PermissionError: DISPLAY` | Running headless env without xvfb | Use `xvfb-run --auto-servernum python main.py` |\n\n### Token Validation Fails (`token_valid: false`)\n\nThis usually means:\n1. Token was created but permissions weren't applied — re-run and check dashboard manually\n2. Rate limit hit during token creation — account exists but token is incomplete\n3. Token expired immediately — Cloudflare sometimes invalidates auto-created tokens\n\n**Workaround:** Even if validation fails, the `account_id` + `api_token` are still saved in `results.json`. You can manually verify at `https:\u002F\u002Fdash.cloudflare.com\u002F{account_id}\u002Fapi-tokens`.\n\n### Browser Won't Start\n\n```bash\n# Check if Chrome is installed\ngoogle-chrome --version\n\n# Check if Xvfb is installed\nwhich xvfb-run\n\n# Manual test — should open a browser window (or blank screen if no display)\nxvfb-run --auto-servernum python -c \"import nodriver as uc; import asyncio; asyncio.run(uc.start())\"\n```\n\n---\n\n## 🔄 End-to-End Guide: From Zero to Running\n\n### Step 1: Prepare VPS\n\n```bash\n# Update system\nsudo apt update && sudo apt upgrade -y\n\n# Install dependencies\nsudo apt install -y xvfb google-chrome-stable python3.10 python3-pip git\n\n# Clone\ngit clone https:\u002F\u002Fgithub.com\u002FiAm-182\u002Fbluk-cf.git\ncd bluk-cf\n\n# Python setup\npython3 -m venv .venv\nsource .venv\u002Fbin\u002Factivate\npip install -r requirements.txt\n```\n\n### Step 2: Set Up Mail API\n\nYou need a **temporary email API** that:\n- Accepts `POST \u002Fapi\u002Fnew_address` with `{\"domain\": \"yourdomain.com\"}`\n- Returns `{\"address\": \"user@yourdomain.com\", \"jwt\": \"...\"}`\n\nOptions:\n- [**Self-hosted temp mail**](https:\u002F\u002Fgithub.com\u002Fnickspaargaren\u002Fno-google) — Self-hosted disposable mail server (recommended)\n- [**Mailinator API**](https:\u002F\u002Fwww.mailinator.com\u002F) — Commercial, limited free tier\n- **Any disposable mail server** — As long as it matches the API format\n\nConfigure in `config.json`:\n```json\n{\n    \"mail_api\": \"https:\u002F\u002Fyour-mail-api.example.com\u002Fapi\u002Fnew_address\",\n    \"mail_domains\": [\"yourdomain.com\"]\n}\n```\n\n### Step 3: Configure\n\n```bash\ncp config.example.json config.json\nnano config.json  # Edit mail_api, mail_domains, proxy (if needed)\n```\n\n### Step 4: Run\n\n```bash\n# Single account (recommended first run)\nxvfb-run --auto-servernum python main.py\n\n# Multiple accounts\nxvfb-run --auto-servernum python main.py -n 5\n\n# With proxy\nxvfb-run --auto-servernum python main.py -n 5 -p \"http:\u002F\u002Fuser:pass@host:port\"\n\n# Custom output file\nxvfb-run --auto-servernum python main.py -n 10 -o my_accounts.json\n\n# Export valid keys for 9Router while running\nxvfb-run --auto-servernum python main.py -n 10 --export-txt keys.txt\n\n# Add exported keys to local 9Router\npython scripts\u002Fadd_to_9router.py -i keys.txt\n```\n\n### Step 5: Check Results\n\n```bash\n# View results\ncat results.json | python -m json.tool\n\n# Or use jq for filtering\ncat results.json | jq '.[] | {email, account_id, api_token, status}'\n```\n\n### Step 6: Use the API Token\n\nEach account produces a token like:\n```json\n{\n  \"account_id\": \"a1b2c3d4...\",\n  \"api_token\": \"cfut_xxxxxxxxxxxxx\"\n}\n```\n\nUse it with Cloudflare Workers AI:\n```bash\ncurl \"https:\u002F\u002Fapi.cloudflare.com\u002Fclient\u002Fv4\u002Faccounts\u002FACCOUNT_ID\u002Fai\u002Fmodels\u002Fsearch\" \\\n  -H \"Authorization: Bearer cfut_XXXXXXXX\"\n```\n\n---\n\n## 📄 License\n\nMIT License — see [LICENSE](LICENSE) for details.\n","这是一个自动化创建 Cloudflare 账户并获取 Workers AI API Token 的工具，专为绕过 Turnstile CAPTCHA 和 Cloudflare WAF 设计。它基于 headless Chrome（通过 nodriver 实现无驱动器自动化），集成临时邮箱生成、Turnstile 验证、API Token 创建与有效性校验，并支持 JSON\u002FTXT 结果导出及 9Router 兼容格式输出。技术上采用异步 HTTP 客户端（httpx）、OpenCV 模板匹配辅助验证、Xvfb 虚拟显示环境，适用于需批量获取 Workers AI 访问权限的开发测试、AI 接口调用或代理分发场景。",2,"2026-07-08 04:30:00","CREATED_QUERY"]