An automated Microsoft Rewards farming bot, fully modernized to run 24/7 in the cloud. Earn points across multiple accounts completely hands-free using GitHub Actions and Neon Postgres.
This is a fork of the QuestPilot Microsoft-Rewards-Bot. It has been heavily modified to strip out Docker, Nix, and proprietary auto-updaters, in favor of a robust, standard cloud-native stack.
The bot runs entirely in the cloud, utilizing free-tier services:
- GitHub Actions: Runs the bot on a daily cron schedule (no servers to manage).
- Neon Postgres: Stores session cookies, fingerprints, and bot logs (keeps your accounts logged in between runs).
- Render Dashboard: A beautiful, standalone dashboard to monitor your bot runs, view logs, and check points from any browser.
- Go to neon.tech and create a free PostgreSQL database.
- Copy your connection string (it looks like
postgresql://user:password@endpoint.region.aws.neon.tech/neondb?sslmode=require). - Note: You do not need to create any tables. The bot will automatically create the required
sessionsandrun_logstables on its first run.
Go to your repository settings on GitHub (Settings -> Secrets and variables -> Actions) and add the following Repository Secrets:
| Secret Name | Description |
|---|---|
DATABASE_URL |
Your Neon Postgres connection string. |
ACCOUNTS_JSON |
The full contents of your accounts.json file. |
CONFIG_JSON |
The full contents of your config.json file. |
Region Setting: Orbit currently works properly only for the Indian region. The default geo locale is India, represented as
"in". You can override it per account inaccounts.jsonby setting"geoLocale"to"in"or another two-letter country code."auto"is still accepted, but the bot falls back to India when it cannot determine a country automatically.
Important Config Setting: In your
CONFIG_JSON, make sure to disable the internal scheduler and set headless to true:"headless": true, "clusters": 1, "scheduler": { "enabled": false }, "safetyAdvisory": { "blockedBehavior": "continue" }
To view your logs and stats, deploy the standalone dashboard:
- Go to render.com and create a new Web Service.
- Connect your GitHub repository.
- Set Root Directory to
dashboard-server. - Set Build Command to
npm install. - Set Start Command to
npm start. - Add two environment variables:
DATABASE_URL: Your Neon Postgres connection string.ACCESS_TOKEN: A secret password of your choice (used to log into the dashboard).
- Deploy! Your dashboard is now live.
The bot is pre-configured to run automatically every day at 12:15 PM UTC. To run it manually:
- Go to the Actions tab in your GitHub repository.
- Select "Orbit - Scheduled Run".
- Click "Run workflow".
You can still run the bot locally on your machine. If DATABASE_URL is not set in your environment, the bot will automatically fall back to reading from local accounts.json / config.json files and saving sessions to the local sessions/ folder.
# Install dependencies
npm install
# Run the bot
npm start- Serverless Ready: Fully decoupled from the filesystem. State is stored in Postgres.
- Lightweight: Removed the 11MB Windows installer, Docker configurations, and Nix environments.
- Standalone Dashboard: Replaced the proprietary desktop dashboard with a beautiful, responsive web dashboard built on Express and HTML/CSS.
- Auto-Releases: Pushing a version bump to the
mainbranch automatically generates a GitHub Release. - Unmodified Core Logic: All the underlying automation, proxy support, and anti-detect features of the original bot are completely intact and untouched.
This project retains the upstream PolyForm Noncommercial License. See the LICENSE file for details.
Legal Notice: This project is independent and is not affiliated with, authorized, maintained, sponsored, or endorsed by Microsoft Corporation or any of its affiliates or subsidiaries.
Risk Warning: The use of automated scripts, bots, or tools to interact with Microsoft Rewards may violate Microsoft's Services Agreement and Terms of Service. Utilizing this software could result in account suspension, restriction, or permanent banning. Use entirely at your own risk.
