# Microsoft Rewards Bot **Automate your Microsoft Rewards points collection** [![Discord](https://img.shields.io/badge/💬_Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/k5uHkx9mne) [![GitHub](https://img.shields.io/badge/⭐_Star-yellow?style=for-the-badge&logo=github&logoColor=black)](https://github.com/LightZirconite/Microsoft-Rewards-Bot) [![Version](https://img.shields.io/badge/v2.60.0-blue?style=for-the-badge)](https://github.com/LightZirconite/Microsoft-Rewards-Bot/releases)
--- ## 💡 What is this? A **TypeScript bot** that automatically earns Microsoft Rewards points by completing: - 🔍 Desktop & mobile Bing searches - 📋 Daily quizzes, polls, and activities - 🎁 Promotional offers and punch cards - 📚 Read-to-earn tasks **Built with anti-detection** to work safely and reliably. --- ## ✨ Features - 🤖 **Human-like behavior** — Natural search patterns - ⏰ **Auto-scheduling** — Set it and forget it - � **Multi-account support** — Manage multiple accounts - 🔔 **Notifications** — Discord webhooks & mobile alerts - 🐳 **Docker ready** — Easy containerized deployment - 🌐 **Proxy support** — Enhanced privacy (optional) --- ## 🚀 Quick Start ### Prerequisites - **Node.js 20+** (v22 recommended) — [Download](https://nodejs.org/) - **Microsoft account(s)** with email + password ### Installation ```bash # 1. Download the project git clone https://github.com/LightZirconite/Microsoft-Rewards-Bot.git cd Microsoft-Rewards-Bot # 2. Start the bot (does EVERYTHING automatically!) npm start ``` **That's literally it!** 🎉 The `npm start` command will automatically: - ✅ Install dependencies if needed - ✅ Install Chromium browser if needed - ✅ Build TypeScript if needed - ✅ Launch the bot On first run, you'll be prompted to configure your accounts interactively. --- ## 🎮 Essential Commands ### **🚀 Main Command** ```bash npm start ``` **The ONLY command you need!** Automatically handles: - 📦 Dependencies installation (if missing) - 🌐 Browser installation (if missing) - 🔨 TypeScript compilation (if missing) - ▶️ Bot execution ### **🔧 Optional Commands** | Command | Use When | |---------|----------| | `npm run build` | Force rebuild TypeScript | | `npm run clean` | Clean build artifacts before rebuild | | `npm run dev` | Development mode (hot reload) | | `npm run creator` | Create new Microsoft accounts | | `npm run dashboard` | Start web dashboard on port 3000 | | `npm test` | Run test suite | **💡 Pro Tip:** For 99% of use cases, just use `npm start` — it's smart enough to figure out what needs to be done! **📖 [Complete Commands Reference →](docs/commands.md)** --- ## 🔄 Typical Workflows ### **First-Time Setup** (New User) ```bash # Just run this - it does EVERYTHING! npm start ``` On first run: 1. ✅ Installs all dependencies automatically 2. ✅ Installs Chromium browser automatically 3. ✅ Builds the TypeScript project automatically 4. ✅ Prompts you to configure accounts 5. ✅ Starts earning points! ### **Daily Usage** (Regular User) ```bash # Same command - but skips already-done steps! npm start ``` ### **After Git Pull** (Updating) ```bash # Just this - it checks and updates what's needed npm start ``` ### **Creating New Accounts** ```bash # Interactive mode npm run creator # Quick mode with referral npm run creator -- -y backup@gmail.com https://rewards.bing.com/welcome?rh=CODE ``` ### **Troubleshooting** (Issues) ```bash # Clean rebuild npm run clean npm start # Full reset (nuclear option) rm -rf node_modules dist .playwright-chromium-installed npm start ``` ### **Monitoring** ```bash npm run dashboard # Open http://localhost:3000 ``` --- ### 📖 Need Help? **First time using the bot?** → [📘 Getting Started Guide](docs/getting-started.md) The complete guide covers: - ✅ Detailed installation steps - ✅ Creating Microsoft accounts with referrals (+7,500 points/month!) - ✅ Setting up 2FA authentication - ✅ Configuration options - ✅ Troubleshooting common issues --- ## 📚 Documentation **New to the bot?** Start here: **[📘 Getting Started Guide](docs/getting-started.md)** **Need specific info?** Check the **[📖 Documentation Hub](docs/index.md)**
📑 Quick Links | Guide | Description | |-------|-------------| | **[Getting Started](docs/getting-started.md)** | Complete installation tutorial | | **[Accounts & 2FA](docs/accounts.md)** | Setup accounts with authentication | | **[Configuration](docs/config.md)** | Customize bot behavior | | **[Scheduling](docs/schedule.md)** | Automate with cron/Task Scheduler | | **[Notifications](docs/notifications.md)** | Discord & mobile alerts | | **[Troubleshooting](docs/troubleshooting.md)** | Fix common issues |
--- ## 📊 Dashboard (BETA) Monitor and control your bot through a local web interface: ```bash # Start dashboard separately npm run dashboard # Or enable auto-start in config.jsonc: { "dashboard": { "enabled": true, "port": 3000 } } ``` Access at `http://localhost:3000` to: - 📈 View real-time points and account status - 📋 Monitor live logs with WebSocket streaming - 🔄 Manually sync individual accounts - ⚙️ Edit configuration with automatic backup - 📊 View historical run summaries and metrics **[📖 Full Dashboard API Documentation](src/dashboard/README.md)** --- ## 🆕 Account Creator (BETA) Automatically create new Microsoft accounts with advanced security features: ```bash # Interactive mode (asks everything) npm run creator # With auto-accept and recovery email (copy-paste URL directly from Microsoft) npm run creator -- -y backup@gmail.com https://rewards.bing.com/welcome?rh=YOUR_CODE ``` **✨ Features:** - 🎯 **Language-independent** — Works in any language - 🔐 **Strong passwords** — Automatically generated (12-16 chars) - 📧 **Realistic emails** — 200+ name database for natural-looking addresses - 🎂 **Natural birthdates** — Random age 18-50 years old - 🛡️ **Recovery email** — Optional backup email for account recovery - 🔒 **2FA support** — TOTP authentication with Google Authenticator - 🔑 **TOTP secrets** — Extracts and saves secret keys - 💾 **Complete backups** — Saves all details including recovery codes - 🤖 **CAPTCHA support** — Manual solving (human verification) - � **Organized storage** — Individual files per account **🎛️ Command Arguments (SIMPLIFIED!):** - `` — Referral URL (auto-detected if starts with http) - `` — Recovery email (auto-detected if contains @) - `-y` — Auto-accept mode (enables recovery + 2FA automatically) **That's it! No more confusing flags.** 🎉 **⚙️ How It Works:** | Command | Recovery Email | 2FA | Notes | |---------|---------------|-----|-------| | `npm run creator` | ❓ Prompts | ❓ Prompts | Interactive mode | | `npm run creator -- -y` | ✅ Prompts for email | ✅ Enabled | Auto-accept all | | `npm run creator -- -y backup@gmail.com` | ✅ Uses provided email | ✅ Enabled | Full automation | | `npm run creator -- -y URL` | ✅ Prompts for email | ✅ Enabled | With referral | | `npm run creator -- -y backup@gmail.com URL` | ✅ Uses provided email | ✅ Enabled | Complete setup | **📋 What happens:** 1. Creates Microsoft account (email, password, birthdate, names) 2. Enrolls in Microsoft Rewards (if referral URL provided) 3. **[Optional]** Adds recovery email with verification 4. **[Optional]** Sets up 2FA with TOTP (Google Authenticator compatible) 5. Extracts and saves TOTP secret key and recovery code 6. Saves complete account info to `accounts-created/` directory **🔐 Saved Information:** - Email and password - Full name and birthdate - Referral URL (if used) - Recovery email (if added) - TOTP secret key (for authenticator apps) - 5-part recovery code (emergency access) **[📖 Full Account Creator Guide](src/account-creation/README.md)** --- ## ⏰ Automatic Scheduling Configure automatic task scheduling directly from `config.jsonc` - **perfect for Raspberry Pi!** ```jsonc { "scheduling": { "enabled": true, // Just set this to true "type": "auto", // Automatically detects Windows/Linux/Raspberry Pi "cron": { "schedule": "0 9 * * *" // Raspberry Pi/Linux: Daily at 9 AM }, "taskScheduler": { "schedule": "09:00" // Windows: Daily at 9:00 } } } ``` **Then simply run:** ```bash npm start ``` The bot will automatically configure cron (Linux/Raspberry Pi) or Task Scheduler (Windows) for you! **[📖 Full Scheduling Documentation](docs/schedule.md)** --- ## 🐳 Docker Quick Start For containerized deployment with built-in scheduling: ```bash # Ensure accounts.jsonc and config.jsonc exist in src/ npm run docker:compose # Or use docker compose directly docker compose -f docker/compose.yaml up -d # View logs docker logs -f microsoft-rewards-bot # Check status docker compose -f docker/compose.yaml ps ``` Container includes: - ✅ Built-in cron scheduling - ✅ Automatic timezone handling - ✅ Random execution delays (anti-detection) - ✅ Health checks **📖 [Complete Docker Guide →](docs/docker-deployment.md)** --- ## ⚙️ Configuration Highlights The script works great with default settings, but you can customize everything in `src/config.jsonc`: ```jsonc { "search": { "useLocalQueries": false, // Prioritize Google Trends API (recommended) "settings": { "useGeoLocaleQueries": true // Use account country for searches (FR, DE, JP, etc.) } }, "queryDiversity": { "enabled": true, // Mix multiple search sources "sources": ["google-trends", "reddit", "local-fallback"] }, "humanization": { "enabled": true, // Enable natural behavior patterns "stopOnBan": true // Stop on ban detection }, "workers": { "doDesktopSearch": true, // Desktop Bing searches "doMobileSearch": true, // Mobile Bing searches "doDailySet": true, // Daily tasks and quizzes "doMorePromotions": true, // Promotional offers "doPunchCards": true // Multi-day challenges }, "execution": { "clusters": 1, // Parallel account processing "runOnZeroPoints": false // Skip when no points available } } ``` **📖 [Complete Configuration Guide](docs/config.md)** --- ## 🎯 What Gets Automated The script automatically completes: - ✅ **Desktop Searches** — 30+ searches on Bing (desktop user-agent) - ✅ **Mobile Searches** — 20+ searches on Bing (mobile user-agent) - ✅ **Daily Set** — Quizzes, polls, and daily activities - ✅ **More Activities** — Promotional tasks and special offers - ✅ **Punch Cards** — Multi-day challenges and bonus tasks - ✅ **Daily Check-in** — Simple check-in for bonus points - ✅ **Read to Earn** — Article reading tasks All while maintaining **natural behavior patterns** to minimize detection risk. --- ## 💡 Usage Tips - **Run regularly:** Use cron, systemd timers, or Windows Task Scheduler (see docs) - **Use humanization:** Always keep `humanization.enabled: true` for safety - **Monitor logs:** Check for ban warnings and adjust settings if needed - **Multiple accounts:** Use the `clusters` setting to run accounts in parallel - **Start small:** Test with one account before scaling up - **Capture logs:** Pipe output to a file or webhook for later review --- ## ✅ Tests - `npm run test`: runs the node:test suite with ts-node to validate critical utilities. --- ## 🔧 Common Issues & Quick Fixes ### **"Error: Cannot find module"** ```bash # Solution: Rebuild the project npm run clean npm run build npm start ``` ### **"Browser executable not found"** ```bash # Solution: Install Chromium browser npm run install:browser # Or use the ultimate command npm run go ``` ### **"Account credentials invalid"** - ✅ Check `src/accounts.jsonc` has correct email/password - ✅ If 2FA enabled, verify `totp` field has correct secret - ✅ Test manual login at https://login.live.com/ ### **"Bot hangs or freezes"** ```bash # Windows: Kill stuck Chrome processes npm run kill-chrome-win # Then restart npm start ``` ### **"TypeScript compilation errors"** ```bash # Check errors without building npm run typecheck # Full rebuild npm run clean npm install npm run build ``` ### **"Chromium keeps reinstalling on every build"** This is now fixed in v2.60.0! The bot creates a `.playwright-chromium-installed` marker file to prevent unnecessary reinstallations. If it still happens: ```bash # Manually create the marker file touch .playwright-chromium-installed # Mac/Linux New-Item -Path .playwright-chromium-installed -ItemType File # Windows PowerShell ``` ### **"Update system not working"** ```bash # Manually check for updates npm run build # Watch the output for any TypeScript errors ``` ### **"Scheduler not running immediately"** This is fixed in v2.60.0! The bot now runs tasks immediately on startup before activating the schedule. **[📖 Complete Troubleshooting Guide →](docs/troubleshooting.md)** --- ## 🆘 Need Help? - 💬 **[Discord Community](https://discord.gg/k5uHkx9mne)** — Get support & updates - 📖 **[Documentation](docs/index.md)** — Complete guides - 🐛 **[Report Bug](https://github.com/LightZirconite/Microsoft-Rewards-Bot/issues)** — Found an issue? - � **[Troubleshooting](docs/troubleshooting.md)** — Fix common problems --- ## ⚠️ Disclaimer This bot automates Microsoft Rewards interactions, which **may violate their Terms of Service**. **Risks:** - ⚠️ Account suspension or ban - 🚫 Loss of points and rewards **Educational purposes only.** Use at your own risk. --- ## 📄 License **CC BY-NC-SA 4.0** — Personal use only, no commercial use. See [LICENSE](LICENSE) for details. ---
**⭐ Star the repo** • **💬 [Join Discord](https://discord.gg/k5uHkx9mne)** • **� [Documentation](docs/index.md)** Made with ❤️ by the community