mrkeyoor.com_
Tue 01 Sept 15:11 UTC
Automationevaluationupdated 31 Aug 2026

rewards-farmer review

Rewards Farmer is a Python browser bot that completes Microsoft Rewards searches and dashboard tasks through Edge. It replaces a daily manual routine with Selenium automation, using public trend feeds or an Ollama model to generate search terms.

+30 / 1dstars / 7d
Verdict

Our Rewards Farmer run installed 35 packages in 35 seconds, but pytest completed 0 tests because selenium could not be imported. Treat it as inspectable personal automation for an expendable account, not as a dependable service for an account you care about. The current activity is encouraging, yet the account risk, manual profile handling, and cascading browser-state issue make walking away the sensible default.

We ran it

Lab card: what happened when we ran rewards-farmerScreenshot of rewards-farmer (youtu.be/4qdPcMNaioA)
Install✓ · 35s35 packages · 37 MB
Build✓ · 9s
Tests✗ · 7s0 passed · 0 failed · 1 errors of 1 (pytest)
Known vulns0(pip-audit)
Repo24 files~2,877 lines of source · 0.5 MB · 0 CI workflows · tests dir

Answers from our run

Does rewards-farmer build from source?

Dependencies installed in 35 seconds (35 packages), and the build succeeded in 9 seconds. We cloned commit 619b282 into a clean Debian container with 3 CPUs and no project-specific setup.

Do rewards-farmer's tests pass?

Yes: 0 of 1 passed when we ran the project's own test command (pytest), with 1 collection error. Some failures need services or credentials a bare container does not have.

Does rewards-farmer have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use rewards-farmer?

Anyone unwilling to risk a Microsoft account: the README says Microsoft may act against accounts that use automated scripts to gain points.

What are the alternatives to rewards-farmer?

AutoRewarder, MicrosoftRewardsPilot. Our Rewards Farmer run installed 35 packages in 35 seconds, but pytest completed 0 tests because selenium could not be imported.

Setup2/535-second install; test collection and browser setup remain manual
Docs4/5Platform, profile, query, image, and Docker limits are explicit
Community3/5675 stars and active August issue discussion on a young repo
Maturity2/5No release and open browser-state failures after launch

Who it’s for

Developers who accept the account risk and want to inspect a small Python browser bot before running it.
Linux users willing to create a dedicated Edge profile and sign in to Microsoft by hand.
Tinkerers who want trend-fed search terms without an API credential or model download.
Multi-account users prepared to keep a separate browser profile directory for each account.

Who it’s NOT for

Anyone unwilling to risk a Microsoft account: the README says Microsoft may act against accounts that use automated scripts to gain points.
Windows users expecting the documented Linux container to reuse their host Edge login: the README says Windows cookie encryption makes that profile unreadable in the container.
Operators who need one task failure to leave later tasks unaffected: open issue 63 says a failed Bing task can strand the browser on the wrong page and cause following tasks to skip.
Users who expect account selection to be hands-off: issue 61 reports the script opening the wrong Edge Rewards profile despite attempts to copy or select another profile.
Teams that require a passing test gate before use: our pytest run stopped during collection because selenium was unavailable.

Setup reality

Our sandbox installed commit 619b282 in 35 seconds, adding 35 packages and using 37 MB. The build passed in 9 seconds. Pytest stopped after 7 seconds with 1 collection error and no completed tests because importing selenium failed. Pip-audit found 0 known vulnerabilities.

The direct route needs Python 3.12 or newer, Poetry, Edge, its WebDriver, and a Microsoft login stored in a dedicated browser profile. The default query source also needs an Ollama account and CLI sign-in; QUERY_SOURCE=trends avoids those and falls back to nouns.txt when its feeds cannot be reached.

The measured commit had no Dockerfile, while the current README now documents a container route. That route still requires a manually signed-in profile and does not reuse Windows host cookies. The visual-search task needs a local image, and the first browser launch is an interactive sign-in step rather than unattended setup.

It automates 20 searches on an account Microsoft may penalize

Rewards Farmer drives Edge through Selenium to complete Microsoft Rewards work. Its default word list supplies seeds for 20 Bing searches, while the script also visits Rewards dashboard activities and uploads an image for visual search. Search phrases can come from Ollama's gemma4:cloud or a credential-free mix of Google Trends, Wikipedia, and Bing suggestions. If all public feeds fail, it returns to nouns.txt rather than ending the run.

The risk belongs in the first decision, because the README puts it there too. Microsoft may take action against an account for using automated scripts to obtain points. This repository discusses techniques intended to avoid detection, but it cannot grant permission or protect an account. A competent developer may understand every one of the roughly 2,877 source lines and still decide that the possible loss of a Microsoft identity, purchases, or stored data is a poor exchange for automated points.

Python 3.12 is the easy prerequisite; the Edge profile is the work

The documented direct setup starts with Python 3.12 or newer and Poetry, then adds Microsoft Edge and a matching WebDriver. You run main.py once, stop it, and sign in manually to Bing and rewards.bing.com inside the profile the bot created. European users may also need to accept consent screens once. Every Edge window using that profile must then be closed before automation starts.

That sequence is more involved than the 35-second package install in our container. Browser profiles carry the login, account selection, consent state, and Chromium locking rules. The README warns that an open window blocks another Chromium process from using the directory; a browser killed at the wrong moment can leave a SingletonLock that looks like another live session. Multi-account mode repeats the sign-in work for each comma-separated account and runs those profiles one after another.

What happened when we ran it

Our sandbox installed commit 619b282 in 35 seconds, pulled 35 Python packages, and occupied 37 MB on disk. The build completed in 9 seconds. The checkout itself contained 24 files and roughly 2,877 lines of source in 0.5 MB, so this is a small codebase to audit before giving it control of a signed-in browser. Pip-audit reported 0 known vulnerabilities in the installed dependency set.

The test step failed with exit code 1 after 7 seconds. Pytest completed 0 tests because collection of tests/test_element_selectors.py raised ModuleNotFoundError: No module named 'selenium'. The log proves only that Selenium was unavailable to the test process in our fresh environment; it does not identify why. The measured commit had a tests directory, no CI workflow files, and no Dockerfile, leaving no visible automated check that reproduces a clean setup on every change.

A failed task can leave every later task on the wrong page

Open issue 63 describes a concrete state-management flaw. When a visual or Bing search task fails, the browser may remain on that search page. Later tasks expect rewards.bing.com and can skip because their elements are absent. The owner proposes returning to a known address after every failure or skip, which is a sensible fix, but the open issue means current users should read logs task by task instead of treating one completed process as proof that all activities ran.

Issue 53 supplies a second warning from a different angle: a user reports Bing searches timing out before completion. Issue 61 reports the bot choosing the wrong Rewards account when multiple Edge profiles exist. Those reports are especially relevant because a 7-second collection failure prevented our lab from exercising selectors at all. Before using multiple accounts, verify the account shown in the dashboard and confirm that the point change belongs to the intended profile.

The current Docker route does not carry a Windows login into Linux

The current README now has Docker Compose instructions, although commit 619b282 had no Dockerfile in our scan. The container defaults to the trends backend, sets headless mode, and removes the need to install Python or Edge on a Linux host. It still needs visual_search.jpg mounted from the project and a profile signed in where the container can read its cookies. This is packaging around the browser, not a credential-free service.

Windows is the hard boundary in the documented route. The README says Windows protects Edge cookies with DPAPI tied to the Windows account, so Linux in the container cannot decrypt the host profile. In the project's recorded check, Edge inside the container could read 19 of 73 cookies, while the login cookies were absent. Linux without a keyring worked in its test. macOS is described as expected to fail similarly, but the README plainly says that case was not tested.

A 12-day-old project has fast activity and no release anchor

GitHub says the repository was created on August 19, 2026 and pushed on August 31, 2026. It had 675 stars plus 31 open issues and pull requests combined when fetched. Search results separated that queue into 26 issues and 5 pull requests, several updated the same day. That is live development and live breakage on a project less than 2 weeks old, not evidence of settled browser behavior.

GitHub's latest-release endpoint returned no release. Users therefore track a moving branch or pin a commit themselves. Rewards Farmer is readable enough to experiment with, and the trends backend removes the Ollama requirement, but the best candidate is a disposable, separately profiled account on a machine you can watch. The 0 completed tests in our run and the open wrong-page failure are enough reason to keep it away from unattended account infrastructure.

Alternatives

ProjectWhat it isPick it when
AutoRewarderA Microsoft Rewards desktop automation app packaged for a more guided user experience.pick this instead when a packaged desktop interface matters more than reading and changing a small Python script.
MicrosoftRewardsPilotA TypeScript and Playwright Rewards runner aimed at scheduled, self-hosted use.pick this instead when Playwright, cron-style operation, and a TypeScript codebase fit your host better.

What people are saying

  1. [velocity-scout] User0332/rewards-farmer

Sources

  1. Rewards Farmer README
  2. Rewards Farmer repository facts
  3. Issue 63: reset state after task failures
  4. Issue 61: wrong Rewards account
  5. Issue 53: Bing search timeout
  6. AutoRewarder repository
  7. MicrosoftRewardsPilot repository

More automation reviews

OpenCLI · web-access · Karabiner-Elements · WiiUDownloader · prefect · Telegram-Media-Downloader · the whole board →