Automated Microsoft Rewards script, however this time using TypeScript, Cheerio and Playwright.
Under development, however mainly for personal use!
npm i
to install the packagesaccounts.example.json
to accounts.json
and add your account detailsconfig.json
to your likingnpm run build
to build the scriptnpm run start
to start the built scriptnpm run kill-chrome-win
script. (Windows)"runOnZeroPoints": false
so it doesn't run when no points are found.Note: If you had previously built and run the script locally, remove the /node_modules
and /dist
from your Microsoft-Rewards-Script folder.
accounts.json
and config.json
config.json
or by using the HEADLESS=true
environmental variable in docker run or docker compose.yaml (see below). Environmental variables are prioritized over the values in config.json. CRON_START_TIME
environmental variable. Use crontab.guru if you're unsure how to create a cron schedule.Build or re-build the container image with: docker build -t microsoft-rewards-script-docker .
Run the container with:
docker run --name netsky -d \
-e TZ=America/New_York \
-e HEADLESS=true \
-e RUN_ON_START=true \
-e CRON_START_TIME="0 5,11 * * *" \
microsoft-rewards-script-docker
Optionally, customize your config by adding any other environmental variables from the table below.
You can view logs with docker logs netsky
.
A basic docker compose.yaml has been provided.
Optionally, customize your config by adding any other environmental variables from the table below.
Build and start the container using docker compose up -d
.
You can view logs with docker logs netsky
Setting | Description | Default | Docker Environmental Variable |
---|---|---|---|
baseURL | MS Rewards page | https://rewards.bing.com |
BASE_URL |
sessionPath | Path to where you want sessions/fingerprints to be stored | sessions (In ./browser/sessions) |
SESSION_PATH |
headless | If the browser window should be visible be ran in the background | false (Browser is visible) |
HEADLESS (must be set to =true for docker) |
runOnZeroPoints | Run the rest of the script if 0 points can be earned | false (Will not run on 0 points) |
RUN_ON_ZERO_POINTS |
clusters | Amount of instances ran on launch, 1 per account | 1 (Will run 1 account at the time) |
CLUSTERS |
saveFingerprint | Re-use the same fingerprint each time | false (Will generate a new fingerprint each time) |
SAVE_FINGERPRINT |
workers.doDailySet | Complete daily set items | true |
DO_DAILY_SET |
workers.doMorePromotions | Complete promotional items | true |
DO_MORE_PROMOTIONS |
workers.doPunchCards | Complete punchcards | true |
DO_PUNCH_CARDS |
workers.doDesktopSearch | Complete daily desktop searches | true |
DO_DESKTOP_SEARCH |
workers.doMobileSearch | Complete daily mobile searches | true |
DO_MOBILE_SEARCH |
globalTimeout | The length before the action gets timeout | 30000 (30 seconds) |
GLOBAL_TIMEOUT |
searchSettings.useGeoLocaleQueries | Generate search queries based on your geo-location | false (Uses EN-US generated queries) |
USE_GEO_LOCALE_QUERIES |
scrollRandomResults | Scroll randomly in search results | true |
SCROLL_RANDOM_RESULTS |
searchSettings.clickRandomResults | Visit random website from search result | true |
CLICK_RANDOM_RESULTS |
searchSettings.searchDelay | Minimum and maximum time in miliseconds between search queries | min: 10000 (10 seconds) max: 20000 (20 seconds) |
SEARCH_DELAY_MIN SEARCH_DELAY_MAX |
searchSettings.retryMobileSearch | Keep retrying mobile searches until completed (indefinite) | false |
RETRY_MOBILE_SEARCH |
webhook.enabled | Enable or disable your set webhook | false |
WEBHOOK_ENABLED |
webhook.url | Your Discord webhook URL | null |
WEBHOOK_URL="" |
cronStartTime | Scheduled script run-time, only available for docker implementation | 0 5,11 * * * (5:00 am, 11:00 am daily) |
CRON_START_TIME="" |
Run the script immediately when the Docker container starts | true |
RUN_ON_START |
Your account may be at risk of getting banned or suspended using this script, you've been warned!
Use this script at your own risk!