40 lines
1.9 KiB
Markdown
40 lines
1.9 KiB
Markdown
# github-farm Framework (d4ncboz/github-farm)
|
|
|
|
Pre-built OAuth harvesting framework for AI gateways. Handles email generation (Gmail dot-trick), IMAP OTP listening, and 9Router session injection.
|
|
|
|
## What it does
|
|
|
|
Harvests OAuth tokens from AI platforms that accept GitHub OAuth. The platforms give free credits ($120-250) per GitHub account.
|
|
|
|
## What it does NOT do
|
|
|
|
- **Does NOT create GitHub accounts** — you need pre-existing accounts. Pair with `github-autoreg` skill.
|
|
- **Does NOT include browser automation** — only email generation, OTP listening, and token injection.
|
|
- **Does NOT handle the browser OAuth flow** — use `github-oauth-automation` patterns instead.
|
|
|
|
## Platforms
|
|
|
|
| Platform | Reward | Auth |
|
|
|----------|--------|------|
|
|
| Tabi AI | $120 + $5-10/day | GitHub OAuth |
|
|
| GoRouter | $70 + $5-10/day | GitHub OAuth |
|
|
| CodeBuddy | 250cr + 100/mo | GitHub Keycloak OIDC |
|
|
|
|
## Quick setup
|
|
|
|
```bash
|
|
gh repo fork d4ncboz/github-farm --clone
|
|
cd github-farm
|
|
cp config/config.example.toml config/config.toml
|
|
# Edit config.toml with IMAP credentials
|
|
python main.py generate --user <user> --domain gmail.com --type dot --count 20
|
|
python main.py listen-otp --user <email> --password <app_password>
|
|
```
|
|
|
|
## Pitfalls
|
|
|
|
1. **Framework is OAuth-only** — requires EXISTING GitHub accounts. Does not create them.
|
|
2. **Playwright persistent context crashes on Windows** (exit 2147483651) — per `github-autoreg` skill, use CDP: `chrome.exe --remote-debugging-port=9222`.
|
|
3. **GitHub MCP server exists** at `C:/Users/User/.local/share/github-mcp-server/v1.7.0/` — use `gh` CLI for fork/clone/push before trying Playwright or curl.
|
|
4. **Cloudflare blocks all non-browser requests** to GitHub signup and platform signup pages. Only real browser sessions work.
|
|
5. **GitHub signup form selectors changed** (2026-08) — `input[name="user[email]"]` no longer works. See `github-autoreg` skill for current selectors and CDP approach. |