TheNetsky/Microsoft-Rewards-Script

Productivity & Utilities

Automates Microsoft Rewards daily tasks and searches across multiple accounts, with browser or API modes and optional scheduling.

1,154
253
TypeScript
GPL-3.0
3 years old

What it does

Microsoft Rewards Script automates the routine work of earning Microsoft Rewards points: Daily Set items, promotions, punchcards, bonus-point claims, desktop and mobile searches, Explore on Bing, Daily Check-In and Read to Earn. Optional features add Visual Search and background Edge browsing. It supports saved sign-in sessions, multiple numbered accounts, localised search queries and notifications to Discord, Telegram or ntfy. A run can operate in two modes: browser renders the cards in a real browser and uses GhostCursor, while api saves the sign-in session, closes the browser and continues over HTTP. An optional Control API exposes live events, persistent history, punchcard progress and activity-balance observations.

Setup and first run

You need Node.js 24 or newer. From the repository root:

npm ci
npm run install:browser
npm run build
cp env.example .env
cp config.example.json config.json

On Linux, add Chromium's system libraries with npx patchright install --with-deps chromium. On Windows, copy the two example files with File Explorer or PowerShell instead of cp.

Set ACCOUNT_1_EMAIL and the matching sign-in settings in .env, review config.json, then start:

npm start

Add a separate numbered block for each additional account; passwords are optional for passwordless accounts. Account options are listed in the env example and the account and session guidance. For accounts that need a manual sign-in, open a visible browser:

npm run manual-login -- user@example.com --platform both

Settings that matter before a run include rewardsMode (browser or api), workers, taskDelay, searchSettings.searchDelay, searchSettings.useAccountLocale, searchSettings.parallelSearching and ensureStreakProtection. The full list is in the settings reference.

Docker deployment

Create .env from env.example, then check the timezone and schedule in compose.yaml:

docker compose up -d --build
docker compose logs -f

The published v5 image is ghcr.io/thenetsky/microsoft-rewards-script:5; the Docker instructions cover using it instead of a local build. Docker keeps configuration under ./config, sessions under ./sessions and optional error captures under ./diagnostics, creating config/config.json from defaults when needed. RUN_ON_START controls the first run and CRON_SCHEDULE the initial schedule. To run the Control API in Docker, follow its Docker setup.

Constraints

  • Node.js 24 or newer is required for the local workflow.
  • Available activities depend on the account and region, so not every listed task will appear for every user.
  • .env, local configuration, session databases and diagnostics contain sign-in material and should be kept private.
  • The project is licensed under GPL-3.0-or-later.
  • The v5 branch is current; earlier v3 and v4 branches remain available if you need the older structure.

HotRepo's take

The project appeared on HotRepo's TypeScript daily list on 2026-11-01 at position 15, with 7 stars gained that day and totals of 1,153 stars and 253 forks. Because the record covers a single day, it shows the script was getting renewed attention in the TypeScript community at that point, not that its usage is accelerating. For readers, the main trade-off is the split between browser mode, which matches how the rewards pages actually render, and api mode, which is faster but depends on a saved session staying valid.

Written by AI from the project's README, updated . The project's own docs are the source of truth.