Danh mục

safarsin/AutoRewarder

An advanced, set-and-forget automation tool for Microsoft Rewards. AutoRewarder performs Bing searches for PC and mobile point collection, collects Daily Sets, and uses mathematically driven, human-like input simulation (W3C Actions, Bezier curves, and smart scrolling). Packaged as an executable app for a seamless, plug-and-play experience

snapshot · 26/10/2026
SA

safarsin/AutoRewarder

Python · danh tính provisional_slug_only

An advanced, set-and-forget automation tool for Microsoft Rewards. AutoRewarder performs Bing searches for PC and mobile point collection, collects Daily Sets, and uses mathematically driven, human-like input simulation (W3C Actions, Bezier curves, and smart scrolling). Packaged as an executable app for a seamless, plug-and-play experience

automationbing-searchmicrosoft-rewardspywebviewrewardseleniuminno-setuppyinstaller
Sao394lịch sử sao
Hạng#12601snapshot toàn cục
Fork28bản ghi nguồn
Số ngày trending0lịch sử xu hướng
Snapshot chỉ có lịch sử sao đầy đủ của star-history/star-history. Lịch sử thiếu thì không vẽ.

README

Từ GitHub · lưu tạm tối đa 7 ngày

AutoRewarder

Stars

Downloads

An advanced, set-and-forget automation tool for Microsoft Rewards (supporting both the legacy and new dashboards). AutoRewarder performs Bing searches for PC and mobile point collection using a massive dataset of realistic queries (with optional, bring-your-own-key AI generation), completes Daily Sets and More Activities, includes Bing Visual Search tasks, and uses mathematically driven, human-like input simulation (W3C Actions, Bezier curves, smart scrolling and realistic keyboard typos).

Built with a robust Python/Selenium backend, it offers two modes of operation: a sleek HTML/CSS/JS frontend wrapped in a native window via pywebview, and a headless runner (CLI) for scheduled background runs and automation scripts. Packaged as a standalone application for Windows (installer and portable) and Linux, ensuring a seamless, cross-platform, plug-and-play experience.

Ready to start? Check out the complete USER GUIDE


Table of Contents

Getting Started

Product Overview

Reference


Installation

Windows (Installer): Download AutoRewarder-Setup.exe from the latest release and run it. The installer will verify all dependencies and install the app for you.

Windows & Linux (Portable): Download the archive for your platform from the latest release:

  • Windows: AutoRewarder-windows.zip (includes the config folder for portable use)

  • Linux: AutoRewarder-linux.tar.gz

  • On Windows: Extract the archive to any folder and run the executable. All settings and profiles will be saved locally inside the included config folder.

  • On Linux: Extract the archive and run the executable. By default, settings and profiles are saved to the standard Linux directory (~/.local/share/AutoRewarder). If you prefer a portable setup, simply create a config folder next to the executable.

Note: Because the portable version is a single-file build, it may take a few seconds longer to start up compared to the installed version while it unpacks core components. Once open, it works at full speed.

Manual Way (Source): See the Development Setup section.


Screenshots & Demo

App Demo
Perform Searches Visual Search
Daily Sets (New Dashboard) & Claim action Tab Switching
View Legacy Dashboard Demo (click to expand)
Daily Sets (Legacy Dashboard)

Demo is sped up for viewing purposes. Actual execution includes randomized delays and pauses to mimic human behavior.

Main Window General Settings
Daily Tasks Settings Search Terms Settings
Settings: Accounts Account Management
About Background Logs
History Statistics Dashboard

Tech Stack

Layer Technology
Backend Python 3.12, selenium, pywebview, pystray, Pillow, nlpaug, PySide6 (Linux GUI), PyGObject (Linux Tray)
Frontend HTML, CSS, JavaScript
Bridge pywebview JS API (pywebview.api)
Build PyInstaller, Inno Setup

System Requirements

  • OS: Windows 10 or later (installer or portable), or Linux (standalone executable build)
  • Browser: Microsoft Edge (driver managed by Selenium Manager)
  • .NET Framework: 4.8 or higher (automatically checked by installer) for Windows builds
  • RAM: Minimum 512 MB (1 GB recommended)
  • Disk Space: ~50 MB for Windows, ~300 MB for Linux (due to PySide6 dependencies)

Features

User Experience & Interface:

  • Multi-account management (add, rename, delete, per-account profiles)
  • First Setup per account with a dedicated Edge profile
  • PC and Mobile query controls (0-130 / 0-99)
  • Optional hide-browser mode (headless UI toggle)
  • Close-to-tray behavior with a tray menu (reopen or exit)
  • Per-account scheduled runs (simple or advanced)
  • Start with Windows/Linux toggle (autostart)
  • Live terminal-like logs with update notifications (GitHub Releases)
  • Local history view per account (date, time, query, status)
  • Statistics dashboard: real scraped points balance, per-run earnings, lifetime activity counters, and a multi-account recap
  • Safe recovery for corrupted settings/history files
  • Detailed analytics window (lifetime counters, real balances, per-day activity charts)
  • Compact stats UI (total points and last run earnings card on main window)
  • Background log viewer for scheduled and headless runs
  • Redesigned Settings with side navigation and per-account pages
  • About page (app details, update checks, data-folder access)
  • Unsaved-change indicators in Settings
  • LLM Model Picker (provider-based selection, custom models, API key visibility)
  • Customizable delays between manual searches (min/max pause range)

Automation & Core Logic:

  • OS-level daily autostart (launches headless runs at per-account scheduled times)
  • Configurable run pacing (advanced scheduling with run duration and queries per hour)
  • Background WebDriver warmup at startup for faster execution
  • Human-like search behavior (typing delays, random pauses, smooth scrolling)
  • Visual Search integration for Bing tasks in both daily-task and standard workflows
  • Hash-bypass architecture that generates a large pool of image variants to avoid file-hash checks
  • Drag-and-drop image uploads for Visual Search with fallback to input
  • Mobile emulation for Rewards credit (iPhone UA and touch)
  • Uses real-world queries from assets/queries.json (+10k unique entries from google-trends dataset)
  • AI-generated search queries in your language (bring-your-own-key LLM: Gemini, Anthropic, OpenAI, OpenAI-compatible)
  • Custom OpenAI-compatible endpoint support (bring-your-own base URL)
  • Randomized delays to reduce repetitive patterns
  • Optional tab switching between result categories (Images/Videos/News)
  • Natural mouse movement/clicking (W3C Actions/randomized Bezier trajectories)
  • Daily Set task collection (runs once per day, per account)
  • Separate browser profile per account
  • Localization detection (language, region)
  • Simulated human typos in search queries (via nlpaug)
  • Smart dashboard selection (automatic detection and switching between legacy and new versions at runtime)

Developer & Code Quality:

  • Advanced documentation (comprehensive docstrings and detailed guides)
  • Strict code formatting and static type checking (Black, Flake8, MyPy)

Quick Start (For Users)

Everything is bundled — no Python, no libraries, no manual setup required.

  1. Download the build for your platform from the latest release:
    • Windows: AutoRewarder-Setup.exe (installer) or AutoRewarder-windows.zip (portable)
    • Linux: AutoRewarder-linux.tar.gz (standalone executable)
  2. Install and run the app
  3. Add your first account and complete setup
  4. Set PC/Mobile counts and start a run

Tip: Closing the main window sends AutoRewarder to the system tray. Use the tray icon to reopen the window or choose Exit to fully close the app.

For detailed guide, see USER_GUIDE.md


Development Setup (For Developers)

  1. Clone the repository.
  2. Create a virtual environment:
  • Windows:
    python -m venv .venv
    .\.venv\Scripts\Activate.ps1
  • Linux:
    python3 -m venv .venv
    source .venv/bin/activate
  1. Install dependencies:
    pip install -r requirements.txt
  2. Run the app:
    python AutoRewarder.py

CLI Usage

For users who prefer the terminal or want to integrate the bot into custom scripts, a headless runner is available. It is the same engine used by the Start with Windows setting. You can call AutoRewarder.py --headless or run AutoRewarder_CLI.py directly (arguments are the same).

Available CLI Arguments

These arguments can be combined. Without --account, it runs every enabled schedule sequentially.

Argument Type Description Default / Fallback
--account String Run only this account (by id or label). Runs all enabled schedules.
--pc Integer Override PC queries for this run (requires --account). Uses the account schedule.
--mobile Integer Override Mobile queries for this run (requires --account). Uses the account schedule.
--force Flag Run even if already triggered today. Skips accounts already triggered today.

Note: Headless mode is forced in the CLI and does not change the GUI Hide Browser preference.


Example CLI commands:

# Run every enabled schedule (same as autostart)
python AutoRewarder.py --headless

# Run a single account once with overrides
python AutoRewarder.py --headless --account "Main" --pc 30 --mobile 20

# Force a re-run the same day
python AutoRewarder.py --headless --account "Main" --pc 30 --force

Build & Distribution

Note

Ensure you have installed the development dependencies, including PyInstaller (pip install -r requirements-dev.txt).

Windows

Build EXE (for installer creation):

pyinstaller --noconfirm --clean AutoRewarder.spec

Build Portable EXE (Standalone Onefile):

pyinstaller --noconfirm --clean AutoRewarder_Portable.spec

Create Windows Installer:

"C:\Program Files (x86)\Inno Setup 6\iscc.exe" AutoRewarder.iss

Or use the Inno Setup IDE to open AutoRewarder.iss and compile it. Output: dist/AutoRewarder-Setup.exe (Installer) and dist/AutoRewarder.exe (Portable)

Linux

Build Standalone Executable (onedirectory):

pyinstaller --noconfirm --clean AutoRewarder.spec

Output: dist/AutoRewarder/ (directory with executable)

Build Standalone Executable (onefile):

pyinstaller --noconfirm --clean AutoRewarder_Portable.spec

Output: dist/AutoRewarder (single executable file)

Warning

onedirectory and onefile builds output to the same dist/AutoRewarder path. Since Linux binaries have no extension, running both with --noconfirm will overwrite the previous artifact. Clean the dist/ folder between builds.


Project Structure

AutoRewarder/
├── gui/
│   ├── index.html             # Main window UI
│   ├── history.html           # History view UI
│   ├── history.css            # History view styling
│   ├── dashboard.html         # Statistics dashboard UI
│   ├── dashboard.css          # Statistics dashboard styling
│   ├── background_logs.html   # Background logs viewer UI
│   ├── background_logs.css    # Background logs viewer styling
│   ├── script.js              # Frontend logic and bridge calls
│   ├── settings.js            # Settings page logic and bridge calls
│   ├── styles.css             # App styling
│   └── normalize.css          # CSS reset
├── assets/
│   ├── icon.ico               # App icon (for Windows)
│   ├── icon.png               # App icon (for Linux)
│   ├── queries.json           # Search query dataset
│   ├── visual_search_assets/  # Visual search assets
│   └── screenshots/           # Screenshots and GIFs for documentation
├── src/
│   ├── __init__.py            # Python package initialization
│   ├── api.py                 # Centralizes all main operations (bridge API exposed to JS)
│   ├── config.py              # Configuration constants/platform and file paths
│   ├── utils.py               # Utility functions (human typing, update checks)
│   ├── accounts/              # Multi-account management
│   │   ├── manager.py         # Account CRUD + current account selection
│   │   ├── meta.py            # Per-account metadata (first_setup_done, schedule)
│   │   └── settings.py        # App-wide settings (hide_browser, autostart)
│   ├── emulator/              # Selenium browser + human-like input
│   │   ├── driver.py          # Edge WebDriver setup
│   │   ├── human.py           # Human-like mouse / touch / scrolling
│   │   └── edge_policy.py     # Windows-only Edge auto-signin opt-out
│   ├── search/                # Bing query execution + history
│   │   ├── engine.py          # Search loop with human-like delays/Visual Search
│   │   ├── history.py         # Per-account search history JSON
│   │   ├── llm.py             # LLM-based query generation
│   │   └── locale.py          # Localization detection (language, region)
│   ├── dailytasks/            # Rewards daily-set + more-activities automation
│   │   ├── runner.py          # DailySet orchestrator + status persistence
│   │   ├── new_dashboard.py   # The New Dashboard support
│   │   ├── card.py            # RewardsCard: DOM checks + click + tab dance
│   │   └── card_js.py         # JS heuristics + CardStatus enum
│   └── stats/                 # Per-account statistics
│       └── manager.py         # StatsManager + points-balance scraper
├── AutoRewarder.py            # Python backend and webview window
├── AutoRewarder_CLI.py        # Headless runner (multi-account aware)
├── AutoRewarder.spec          # PyInstaller build spec
├── AutoRewarder_Portable.spec # Portable PyInstaller build spec
├── AutoRewarder.iss           # Inno Setup installer script
├── update_badges.py           # README badge data updater
├── .flake8                    # Flake8 linting configuration
├── .pre-commit-config.yaml    # Pre-commit hooks configuration
├── mypy.ini                   # MyPy static type checking configuration
├── requirements.txt           # Production dependencies
├── requirements-dev.txt       # Development & testing dependencies
├── CODE_OF_CONDUCT.md         # Community guidelines
├── CONTRIBUTING.md            # Contribution guidelines
├── LICENSE                    # MIT License
├── USER_GUIDE.md              # End-user documentation
└── README.md                  # Project overview and developer setup

Runtime Data

The application stores its runtime files (profiles, history, logs, and settings) in a dedicated folder separate from your main browser.

If a config folder exists in the same directory as the executable, all data is stored inside it. Otherwise, it is stored in in the following directories:

On Windows:

%USERPROFILE%\AppData\Local\AutoRewarder

On Linux:

~/.local/share/AutoRewarder

Created files and folders:

settings.json      # Global settings (hide_browser, current_account_id, autoStartUp etc.)
accounts.json      # Account index
accounts/
	<account_id>/
		EdgeProfile/   # Separate Edge profile for WebDriver
		history.json   # Search history (date, time, query, status)
		status.json    # Daily Set/Visual Search completion status (per-day)
		stats.json     # Statistics: scraped points balance + activity counters
		meta.json      # Per-account metadata (first_setup_done, schedule)
background_log.txt # Logs from the background runner (for debugging)

Troubleshooting

For common issues and solutions, see the Troubleshooting section in the USER GUIDE.


Roadmap

  • Human typos simulation for different keyboard/language layouts (AZERTY, QWERTZ, etc.)
  • Human-like typing with random spaces/backspaces
  • Independent toggle for Visual Search task (for unsupported regions)
  • Explore on Bing support
  • Region-specific search query datasets (US, UK, CA, AU, IN, etc.)
  • Keyboard shortcuts
  • Per-account proxy support
Completed features (Click to expand)
  • Windows installer with dependency checking (Inno Setup)
  • Action Chains Selenium/W3C Actions for more natural mouse movement and clicks
  • Daily Set collector
  • Refactor: split monolith to src modules
  • Update checks (GitHub Releases API)
  • Better randomized scrolling (unique speed/length per session)
  • Advanced "coffee" breaks during long sessions
  • Navigation flow: sometimes switch result tabs (Images/Videos/News)
  • Script-only version (CLI tool without GUI)
  • Automatic start-up
  • Query pacing over a specified duration (rate-based scheduling)
  • Multi-account support (manage multiple Rewards accounts)
  • Mobile support
  • Per-Account Scheduling
  • Brand New UI
  • System tray (close-to-tray)
  • Hide browser mode (headless UI)
  • Statistics dashboard (points tracking, session summaries)
  • Daily "Claim" actions
  • The New Dashboard Support
  • AI-generated search queries in your language (bring-your-own-key LLM)
  • Simulated human typos in search queries (via nlpaug)
  • Visual search integration
  • View background logs directly in the UI
  • Custom OpenAI compatible endpoints
  • Standalone Linux build (PySide6 GUI + PyGObject tray)

Disclaimer

Using automation against third-party services may violate their Terms of Service. You are responsible for your own usage.


Contact

  • Issues — for bug reports, feature requests, and errors.
  • Discussions — for questions, ideas, and general help.

Support

If you found this project helpful and would like to support it, you can buy me a coffee here:

Buy Me a Coffee