A lightweight PowerShell-based mouse jiggler to keep your computer active and prevent status changes in applications like Microsoft Teams, Slack, and other productivity tools.
- Zero Installation: Pure PowerShell script - no additional software required
- Minimal Movement: Moves cursor just 1 pixel to avoid disrupting your work
- Lightweight: Uses minimal system resources
- Configurable: Easy to adjust timing and behavior
- Windows Native: Leverages built-in Windows APIs
- Stealth Mode: Barely noticeable cursor movement
- Windows 10/11 (PowerShell 5.1+ or PowerShell Core)
- Administrator privileges (recommended for reliable operation)
-
Clone the repository:
git clone https://github.com/nruizneiman/AutoJiggler.git cd AutoJiggler
-
Run the script:
.\MyMoneyDontJiggleJiggle.ps1
Open PowerShell as Administrator and run:
.\MyMoneyDontJiggleJiggle.ps1
Copy and paste this code directly into PowerShell:
Add-Type -AssemblyName System.Windows.Forms
Write-Host "Auto-Jiggler execution started. Please hit Ctrl. + C to stop the execution."
while($true) {
$pos = [System.Windows.Forms.Cursor]::Position
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(($pos.X + 1), $pos.Y)
Start-Sleep -Milliseconds 100
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(($pos.X), $pos.Y)
Write-Host "Jiggled at $(Get-Date -Format 'HH:mm:ss')"
Start-Sleep -Seconds 60
}
}
Press Ctrl + C
to stop the mouse jiggler.
Change the sleep interval (default: 60 seconds):
Start-Sleep -Seconds 30 # Jiggle every 30 seconds
Change movement distance or direction:
# Vertical movement
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($pos.X, ($pos.Y + 1))
# Larger movement
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(($pos.X + 5), $pos.Y)
- Press
Win + R
, typeshell:startup
, press Enter - Create a shortcut to your PowerShell script
- Set shortcut to run as administrator
- Open Task Scheduler
- Create Basic Task
- Set trigger to "At startup"
- Set action to start PowerShell with your script
- Enable "Run with highest privileges"
Create AutoJiggler.bat
:
@echo off
powershell -ExecutionPolicy Bypass -File "%~dp0MyMoneyDontJiggleJiggle.ps1"
pause
-
Execution Policy: You may need to set PowerShell execution policy:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
-
Antivirus: Some antivirus software may flag mouse automation tools. Add an exception if needed.
-
Admin Rights: Running as administrator ensures reliable cursor control.
- Remote Work: Keep Microsoft Teams, Slack, or Zoom status active
- Presentations: Prevent screen savers during long presentations
- Monitoring: Keep monitoring dashboards active
- Downloads: Prevent sleep mode during large file transfers
- Development: Keep IDE and development tools active
- Check PowerShell execution policy:
Get-ExecutionPolicy
- Run PowerShell as Administrator
- Ensure Windows Forms assembly is available
- Try running as Administrator
- Check if another application is blocking cursor control
- Verify Windows Forms assembly loaded correctly
- Increase sleep intervals between jiggles
- Check for conflicting mouse software
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create a feature branch:
git checkout -b feature-name
- Make your changes
- Test thoroughly on different Windows versions
- Submit a pull request
This tool is designed for legitimate productivity purposes. Please use responsibly and in accordance with your organization's policies. The authors are not responsible for any misuse of this software.
- MouseJiggler - C# WinForms version
- PowerToys Awake - Microsoft's official keep-awake tool
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Include your Windows version and PowerShell version
β If this project helped you, please give it a star!