๐ PowerToys Run: Pomodoro Plugin
April 7, 2025 ยท View on GitHub
โฑ๏ธ Pomodoro for PowerToys Run โฑ๏ธ
Manage your productivity sessions directly from PowerToys Run
๐ Table of Contents
- ๐ Overview
- โก Easy Install
- โจ Features
- ๐ฌ Demo Gallery
- ๐ Installation
- ๐ง Usage
- ๐ Data Storage
- ๐ ๏ธ Building from Source
- ๐ Project Structure
- ๐ค Contributing
- โ FAQ
- โจ Why You'll Love Pomodoro Plugin
- ๐ License
- ๐ Acknowledgements
- ๐ ๏ธ Implementation Details
- ๐ถโโ๏ธ My Pomodoro Journey
๐ Overview
Pomodoro is a plugin for Microsoft PowerToys Run that brings the popular Pomodoro Technique to your keyboard. Simply type pomodoro followed by a command like start, pause, or status to manage your productivity sessions directly from your PowerToys Run interface.
โก Easy Install
Quick Installation Steps:
1. Download using the button above
2. Extract to %LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Plugins\
3. Restart PowerToys
4. Start using with Alt+Space then type pomodoro
โจ Features
- โฑ๏ธ Start, Pause, and Reset Pomodoro Sessions - Manage your work sessions with simple commands
- ๐ Visual Countdown - See time remaining in your current session
- ๐ End-of-Session Alerts - Get notified when your session ends with sound or visual cues
- ๐ Break Management - Automatically switch between work sessions and breaks
- โ๏ธ Configurable Session Length - Customize work and break durations to fit your workflow
๐ฌ Demo Gallery
๐ Start a Pomodoro Session

Simply type pomodoro start to begin a focused work session
๐ Installation
๐ Prerequisites
- Microsoft PowerToys installed
- Windows 10 or later
๐ฅ Installation Steps
- Download the latest release from the Releases page
- Extract the ZIP file to:
%LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Plugins\ - Restart PowerToys
- Open PowerToys Run and type
pomodoroto access the plugin
๐ง Usage
- Open PowerToys Run (default: Alt + Space)
- Use the following commands:
| Command | Description | Example |
|---|---|---|
pomodoro | Show Pomodoro instructions | pomodoro |
pomodoro start | Start a new Pomodoro session | pomodoro start |
pomodoro pause | Pause the current timer | pomodoro pause |
pomodoro resume | Resume a paused timer | pomodoro resume |
pomodoro stop | Stop and reset the timer | pomodoro stop |
pomodoro status | Show remaining time and state | pomodoro status |
pomodoro break | Start a short break | pomodoro break |
pomodoro longbreak | Start a long break | pomodoro longbreak |
๐ฏ Quick Tips
- Press Enter on a command to execute it
- Right-click on a command for additional options
- Customize plugin settings in PowerToys Settings
- Long breaks automatically trigger after a configurable number of completed Pomodoros
๐ Data Storage
The Pomodoro plugin stores the following settings locally:
- Session length preferences (Pomodoro, short break, long break)
- Sound notification preference (enabled/disabled)
- Auto-start next session preference (enabled/disabled)
- Completed session history and statistics
All settings are stored securely in the PowerToys settings file.
๐ ๏ธ Building from Source
-
Clone the repository:
git clone https://github.com/ruslanlap/PowerToysRun-Pomodoro.git -
Open the solution in Visual Studio 2022 or later
-
Build the solution:
dotnet build Pomodoro/Pomodoro.sln -
Run the build-and-zip script to create installation packages:
./build-and-zip.sh
๐ Project Structure
Pomodoro/
โโโ Community.PowerToys.Run.Plugin.Pomodoro/
โ โโโ Images/ # Plugin icons and animations
โ โโโ Sounds/ # Sound effects
โ โโโ Main.cs # Main plugin logic
โ โโโ PomodoroResultWindow.xaml # Pomodoro timer window
โ โโโ plugin.json # Plugin metadata
โ โโโ ...
โโโ Services/
โ โโโ TickCounterApiService.cs # Timer service
โ โโโ SoundService.cs # Sound notification service
โโโ Models/
โ โโโ PomodoroSession.cs # Session data model
โ โโโ PomodoroSettings.cs # Settings data model
โโโ Pomodoro.sln # Solution file
๐ค Contributing
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
Please make sure to update tests as appropriate.
Contributors
- ruslanlap - Project creator and maintainer
โ FAQ
How do I customize the Pomodoro session length?
Open PowerToys Settings, navigate to PowerToys Run > Plugins > Pomodoro, and adjust the "Pomodoro length (minutes)" setting.
Can I disable sound notifications?
Yes, open PowerToys Settings, navigate to PowerToys Run > Plugins > Pomodoro, and toggle the "Play sound notifications" option.
What happens when a Pomodoro session ends?
By default, you'll receive a notification. If you've enabled "Auto-start next phase," the plugin will automatically start a short break after a work session, or a work session after a break.
How many Pomodoros before a long break?
By default, a long break occurs after 4 completed Pomodoro sessions. This can be customized in the settings.
Can I view my productivity history?
Yes, this feature is available in the plugin. Your completed sessions are tracked and can be viewed through the plugin interface.
โจ Why You'll Love Pomodoro Plugin
- Helps Maintain Focus: Structure your work with dedicated focus periods
- Encourages Healthy Break Patterns: Reminds you to take regular breaks
- Tracks Daily Performance: Monitor your productivity patterns
- Keyboard-Centric: Perfect for keyboard power users
- Customizable: Set your preferred session lengths and notification settings
- Fast: Instant access to timer controls
- Beautiful: Clean, modern UI that matches PowerToys style
- Resource-Efficient: Lightweight with minimal system impact
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgements
- Microsoft PowerToys team for the amazing launcher
- All contributors who have helped improve this plugin
- The Pomodoro Techniqueยฎ by Francesco Cirillo for the time management method
๐ ๏ธ Implementation Details
The Pomodoro plugin is built using:
- C# and .NET
- WPF for the UI components
- System.Timers.Timer for countdown functionality
- Windows notification API for alerts
- Task-based asynchronous pattern for non-blocking operations
The plugin implements several PowerToys Run interfaces:
IPlugin- Core plugin functionalityIDelayedExecutionPlugin- Support for delayed executionIContextMenu- Right-click context menuIDisposable- Resource cleanupISettingProvider- Settings management
Roadmap
- Custom notification sounds
- Weekly productivity analytics
- Task labeling for Pomodoro sessions
๐ถโโ๏ธ My Pomodoro Journey
I created this plugin because the Pomodoro Technique transformed my own productivity. As a developer juggling multiple projects, I found myself constantly distracted and struggling to maintain focus for extended periods. That's when I discovered the power of structured work intervals.
The problem? I needed a tool that integrated seamlessly with my workflow - no separate apps to launch or browser tabs to keep open. PowerToys Run was already part of my daily routine, so building a Pomodoro plugin felt like the perfect solution.
This plugin represents hundreds of hours of focused work (ironically, managed using the Pomodoro Technique itself!). It's designed by a developer, for developers, with the features I personally needed to stay productive:
- Zero Friction: Two keystrokes (Alt+Space) and I'm managing my time
- Minimal Interruption: Notifications that don't break concentration
- Rhythm Building: The consistent work/break pattern helped me develop better focus habits
I hope this plugin helps you as much as the technique has helped me. Happy focusing! ๐
With love from ruslanlap ๐