Files
Microsoft-Rewards-Script/docs/humanization.md
Light dc7e122bce V2.1 (#375)
* feat: Implement edge version fetching with retry logic and caching

* chore: Update version to 2.1.0 in package.json

* fix: Update package version to 2.1.0 and enhance user agent metadata

* feat: Enhance 2FA handling with improved TOTP input and submission logic

* fix: Refactor getSystemComponents to improve mobile user agent string generation

* feat: Add support for cron expressions for advanced scheduling

* feat: Improve humanization feature with detailed logging for off-days configuration

* feat: Add live log streaming via webhook and enhance logging configuration

* fix: Remove unused @types/cron-parser dependency from devDependencies

* feat: Add cron-parser dependency and enhance Axios error handling for proxy authentication

* feat: Enhance dashboard data retrieval with retry logic and diagnostics capture

* feat: Add ready-to-use sample configurations and update configuration settings for better customization

* feat: Add buy mode detection and configuration methods for enhanced manual redemption

* feat: Migrate configuration from JSON to JSONC format for improved readability and comments support

feat: Implement centralized diagnostics capture for better error handling and reporting

fix: Update documentation references from config.json to config.jsonc

chore: Add .vscode to .gitignore for cleaner project structure

refactor: Enhance humanization and diagnostics capture logic in BrowserUtil and Login classes

* feat: Reintroduce ambiance declarations for the 'luxon' module to unlock TypeScript

* feat: Update search delay settings for improved performance and reliability

* feat: Update README and SECURITY documentation for clarity and improved data handling guidelines

* Enhance README and SECURITY documentation for Microsoft Rewards Script V2

- Updated README.md to improve structure, add badges, and enhance clarity on features and setup instructions.
- Expanded SECURITY.md to provide detailed data handling practices, security guidelines, and best practices for users.
- Included sections on data flow, credential management, and responsible use of the automation tool.
- Added a security checklist for users to ensure safe practices while using the script.

* feat: Réorganiser et enrichir la documentation du README pour une meilleure clarté et accessibilité

* feat: Updated and reorganized the README for better presentation and clarity

* feat: Revised and simplified the README for better clarity and accessibility

* Update README.md
2025-10-11 16:54:07 +02:00

6.6 KiB

🤖 Humanization (Human Mode)

🎭 Natural automation that mimics human behavior
Subtle gestures for safer operation


🎯 What is Humanization?

Human Mode adds subtle human-like behavior to make your automation look and feel more natural. It's designed to be safe by design with minimal, realistic gestures.

Key Features

  • 🎲 Random delays — Natural pause variation
  • 🖱️ Micro movements — Subtle mouse gestures
  • 📜 Tiny scrolls — Minor page adjustments
  • Time windows — Run during specific hours
  • 📅 Random off days — Skip days naturally
  • 🔒 Safe by design — Never clicks random elements

⚙️ Configuration

{
  "humanization": {
    "enabled": true
  }
}

Advanced Configuration

{
  "humanization": {
    "enabled": true,
    "actionDelay": { "min": 150, "max": 450 },
    "gestureMoveProb": 0.4,
    "gestureScrollProb": 0.2,
    "allowedWindows": ["08:00-10:30", "20:00-22:30"],
    "randomOffDaysPerWeek": 1
  }
}

Configuration Options

Setting Default Description
enabled true Master toggle for all humanization
actionDelay {min: 150, max: 450} Random pause between actions (ms)
gestureMoveProb 0.4 Probability (0-1) for tiny mouse moves
gestureScrollProb 0.2 Probability (0-1) for minor scrolls
allowedWindows [] Time windows for script execution
randomOffDaysPerWeek 1 Skip N random days per week. Set to 0 to disable (scheduler logs reference this setting explicitly).

🎭 How It Works

Action Delays

  • Random pauses between automation steps
  • Natural variation mimics human decision time
  • Configurable range allows fine-tuning

Gesture Simulation

  • Micro mouse moves — Tiny cursor adjustments (safe zones only)
  • Minor scrolls — Small page movements (non-interactive areas)
  • Probability-based — Not every action includes gestures
  • Centralized controller — The Humanizer service now drives all gesture + pause behavior so every module uses the same probabilities and timing windows.

Temporal Patterns

  • Time windows — Only run during specified hours
  • Random off days — Skip days to avoid rigid patterns
  • Natural scheduling — Mimics human usage patterns

🎯 Usage Examples

{
  "humanization": { "enabled": true }
}

Best for most users — Balanced safety and naturalness

Minimal Humanization

{
  "humanization": {
    "enabled": true,
    "gestureMoveProb": 0.1,
    "gestureScrollProb": 0.1,
    "actionDelay": { "min": 100, "max": 200 }
  }
}

Faster execution with minimal gestures

Maximum Natural Behavior

{
  "humanization": {
    "enabled": true,
    "actionDelay": { "min": 300, "max": 800 },
    "gestureMoveProb": 0.6,
    "gestureScrollProb": 0.4,
    "allowedWindows": ["08:30-11:00", "19:00-22:00"],
    "randomOffDaysPerWeek": 2
  }
}

🎭 Most human-like but slower execution

Disabled Humanization

{
  "humanization": { "enabled": false }
}

🚀 Fastest execution — automation optimized


Time Windows

Setup

{
  "humanization": {
    "enabled": true,
    "allowedWindows": ["08:00-10:30", "20:00-22:30"]
  }
}

Behavior

  • Script waits until next allowed window
  • Uses local time for scheduling
  • Multiple windows supported per day
  • Empty array [] = no time restrictions

Examples

// Morning and evening windows
"allowedWindows": ["08:00-10:30", "20:00-22:30"]

// Lunch break only
"allowedWindows": ["12:00-13:00"]

// Extended evening window
"allowedWindows": ["18:00-23:00"]

// No restrictions
"allowedWindows": []

📅 Random Off Days

Purpose

Mimics natural human behavior by skipping random days per week.

Configuration

{
  "humanization": {
    "randomOffDaysPerWeek": 1  // Skip 1 random day per week
  }
}

Options

  • 0 — Never skip days
  • 1 — Skip 1 random day per week (default)
  • 2 — Skip 2 random days per week
  • 3+ — Higher values for more irregular patterns

🔒 Safety Features

Safe by Design

  • Never clicks arbitrary elements
  • Gestures only in safe zones
  • Minor movements — pixel-level adjustments
  • Probability-based — Natural randomness
  • Non-interactive areas — Avoids clickable elements

Buy Mode Compatibility

  • Passive monitoring remains unaffected
  • No interference with manual actions
  • Background tasks only for monitoring

📊 Performance Impact

Setting Speed Impact Natural Feel Recommendation
Disabled Fastest Robotic Development only
Default Moderate Balanced Recommended
High probability Slower Very natural Conservative users
Time windows Delayed start Realistic Scheduled execution

🛠️ Troubleshooting

Problem Solution
Script too slow Reduce actionDelay values; lower probabilities
Too robotic Increase probabilities; add time windows
Runs outside hours Check allowedWindows format (24-hour time)
Skipping too many days Reduce randomOffDaysPerWeek
Gestures interfering Lower probabilities or disable specific gestures

Debug Humanization

$env:DEBUG_HUMANIZATION=1; npm start

🎛️ Presets

Conservative

{
  "humanization": {
    "enabled": true,
    "actionDelay": { "min": 200, "max": 600 },
    "gestureMoveProb": 0.6,
    "gestureScrollProb": 0.4,
    "allowedWindows": ["08:00-10:00", "20:00-22:00"],
    "randomOffDaysPerWeek": 2
  }
}

Balanced (Default)

{
  "humanization": {
    "enabled": true
  }
}

Performance

{
  "humanization": {
    "enabled": true,
    "actionDelay": { "min": 100, "max": 250 },
    "gestureMoveProb": 0.2,
    "gestureScrollProb": 0.1,
    "randomOffDaysPerWeek": 0
  }
}