{"id":27140308,"url":"https://github.com/ruslanlap/powertoysrun-pomodoro","last_synced_at":"2026-04-21T16:42:58.272Z","repository":{"id":286679765,"uuid":"962191050","full_name":"ruslanlap/PowerToysRun-Pomodoro","owner":"ruslanlap","description":"PowerToysRun-Pomodoro: Manage your productivity sessions directly from PowerToys Run","archived":false,"fork":false,"pushed_at":"2025-04-07T21:00:09.000Z","size":9813,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T00:52:54.708Z","etag":null,"topics":["csharp","microsoft","plugin","powertoys","powertoys-run","powertoys-run-plugin","windows"],"latest_commit_sha":null,"homepage":"https://ruslanlap.github.io/ruslanlap_buymeacoffe/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruslanlap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-07T19:35:50.000Z","updated_at":"2025-04-07T21:00:13.000Z","dependencies_parsed_at":"2025-04-10T00:43:31.855Z","dependency_job_id":null,"html_url":"https://github.com/ruslanlap/PowerToysRun-Pomodoro","commit_stats":null,"previous_names":["ruslanlap/powertoysrun-pomodoro"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ruslanlap/PowerToysRun-Pomodoro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslanlap%2FPowerToysRun-Pomodoro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslanlap%2FPowerToysRun-Pomodoro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslanlap%2FPowerToysRun-Pomodoro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslanlap%2FPowerToysRun-Pomodoro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruslanlap","download_url":"https://codeload.github.com/ruslanlap/PowerToysRun-Pomodoro/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslanlap%2FPowerToysRun-Pomodoro/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259479617,"owners_count":22864363,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","microsoft","plugin","powertoys","powertoys-run","powertoys-run-plugin","windows"],"created_at":"2025-04-08T05:51:39.668Z","updated_at":"2026-04-21T16:42:58.189Z","avatar_url":"https://github.com/ruslanlap.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍅 PowerToys Run: Pomodoro Plugin\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"Assets/demo.png\" alt=\"Pomodoro Plugin Demo\" width=800\"\u003e\n  \n  \u003cp align=\"center\"\u003e\n    \u003cimg src=\"Assets/logo.png\" alt=\"Pomodoro Icon\" width=\"128\" height=\"128\"\u003e\n  \u003c/p\u003e\n  \n  \u003ch1\u003e⏱️ Pomodoro for PowerToys Run ⏱️\u003c/h1\u003e\n  \u003ch3\u003eManage your productivity sessions directly from PowerToys Run\u003c/h3\u003e\n\n  \n  ![PowerToys Compatible](https://img.shields.io/badge/PowerToys-Compatible-blue)\n  ![Platform](https://img.shields.io/badge/platform-Windows-lightgrey)\n  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n  ![Maintenance](https://img.shields.io/maintenance/yes/2025)\n  ![C#](https://img.shields.io/badge/C%23-.NET-512BD4)\n  ![Version](https://img.shields.io/badge/version-v1.0.0-brightgreen)\n  ![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)\n  [![GitHub stars](https://img.shields.io/github/stars/ruslanlap/PowerToysRun-Pomodoro)](https://github.com/ruslanlap/PowerToysRun-Pomodoro/stargazers)\n  [![GitHub issues](https://img.shields.io/github/issues/ruslanlap/PowerToysRun-Pomodoro)](https://github.com/ruslanlap/PowerToysRun-Pomodoro/issues)\n  [![GitHub release (latest by date)](https://img.shields.io/github/v/release/ruslanlap/PowerToysRun-Pomodoro)](https://github.com/ruslanlap/PowerToysRun-Pomodoro/releases/latest)\n  [![GitHub all releases](https://img.shields.io/github/downloads/ruslanlap/PowerToysRun-Pomodoro/total)](https://github.com/ruslanlap/PowerToysRun-Pomodoro/releases)\n  ![Made with Love](https://img.shields.io/badge/Made%20with-❤️-red)\n  ![Awesome](https://img.shields.io/badge/Awesome-Yes-orange)\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ruslanlap/PowerToysRun-Pomodoro/releases/download/v1.0.0/Pomodoro-x64.zip\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Download%20Latest%20Release-x64-blue?style=for-the-badge\u0026logo=github\" alt=\"Download Latest Release\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/ruslanlap/PowerToysRun-Pomodoro/releases/download/v1.0.0/Pomodoro-ARM64.zip\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Download%20Latest%20Release-ARM64-blue?style=for-the-badge\u0026logo=github\" alt=\"Download Latest Release\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## 📋 Table of Contents\n\n- [📋 Overview](#-overview)\n- [⚡ Easy Install](#-easy-install)\n- [✨ Features](#-features)\n- [🎬 Demo Gallery](#-demo-gallery)\n- [🚀 Installation](#-installation)\n- [🔧 Usage](#-usage)\n- [📁 Data Storage](#-data-storage)\n- [🛠️ Building from Source](#️-building-from-source)\n- [📊 Project Structure](#-project-structure)\n- [🤝 Contributing](#-contributing)\n- [❓ FAQ](#-faq)\n- [✨ Why You'll Love Pomodoro Plugin](#-why-youll-love-pomodoro-plugin)\n- [📄 License](#-license)\n- [🙏 Acknowledgements](#-acknowledgements)\n- [🛠️ Implementation Details](#-implementation-details)\n- [🚶‍♂️ My Pomodoro Journey](#-my-pomodoro-journey)\n\n## 📋 Overview\n\nPomodoro is a plugin for [Microsoft PowerToys Run](https://github.com/microsoft/PowerToys) 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.\n\n\n## ⚡ Easy Install\n\n\u003cdiv align=\"\"\u003e\n  \u003ca href=\"https://github.com/ruslanlap/PowerToysRun-Pomodoro/releases/download/v1.0.0/Pomodoro-x64.zip\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/⬇️_DOWNLOAD-POMODORO_PLUGIN-blue?style=for-the-badge\u0026logo=github\" alt=\"Download Pomodoro Plugin\"\u003e\n  \u003c/a\u003e\n  \n  \u003cp\u003e\n    \u003cb\u003eQuick Installation Steps:\u003c/b\u003e\u003cbr\u003e\n    1. Download using the button above\u003cbr\u003e\n    2. Extract to \u003ccode\u003e%LOCALAPPDATA%\\Microsoft\\PowerToys\\PowerToys Run\\Plugins\\\u003c/code\u003e\u003cbr\u003e\n    3. Restart PowerToys\u003cbr\u003e\n    4. Start using with \u003ccode\u003eAlt+Space\u003c/code\u003e then type \u003ccode\u003epomodoro\u003c/code\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## ✨ Features\n\n- ⏱️ **Start, Pause, and Reset Pomodoro Sessions** - Manage your work sessions with simple commands\n- 🍅 **Visual Countdown** - See time remaining in your current session\n- 🔔 **End-of-Session Alerts** - Get notified when your session ends with sound or visual cues\n- 🌙 **Break Management** - Automatically switch between work sessions and breaks\n- ⚙️ **Configurable Session Length** - Customize work and break durations to fit your workflow\n\n## 🎬 Demo Gallery\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch3\u003e🍅 Start a Pomodoro Session\u003c/h3\u003e\n  \u003cp\u003e\u003cimg src=\"Assets/demo.png\" width=\"650\" alt=\"Start Pomodoro Demo\"/\u003e\u003c/p\u003e\n  \u003cp\u003e\u003ci\u003eSimply type \u003ccode\u003epomodoro start\u003c/code\u003e to begin a focused work session\u003c/i\u003e\u003c/p\u003e\n  \n\u003c/div\u003e\n\n## 🚀 Installation\n\n### 📋 Prerequisites\n\n- [Microsoft PowerToys](https://github.com/microsoft/PowerToys/releases) installed\n- Windows 10 or later\n\n### 📥 Installation Steps\n\n1. Download the latest release from the [Releases page](https://github.com/ruslanlap/PowerToysRun-Pomodoro/releases/latest)\n2. Extract the ZIP file to:\n   ```\n   %LOCALAPPDATA%\\Microsoft\\PowerToys\\PowerToys Run\\Plugins\\\n   ```\n3. Restart PowerToys\n4. Open PowerToys Run and type `pomodoro` to access the plugin\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ruslanlap/PowerToysRun-Pomodoro/releases/latest\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/⬇️_Download-Latest_Release-blue?style=for-the-badge\u0026logo=github\" alt=\"Download Latest Release\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## 🔧 Usage\n\n1. Open PowerToys Run (default: \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003eSpace\u003c/kbd\u003e)\n2. Use the following commands:\n\n\u003cdiv align=\"center\"\u003e\n\n| Command | Description | Example |\n|---------|-------------|---------|\n| `pomodoro` | Show Pomodoro instructions | `pomodoro` |\n| `pomodoro start` | Start a new Pomodoro session | `pomodoro start` |\n| `pomodoro pause` | Pause the current timer | `pomodoro pause` |\n| `pomodoro resume` | Resume a paused timer | `pomodoro resume` |\n| `pomodoro stop` | Stop and reset the timer | `pomodoro stop` |\n| `pomodoro status` | Show remaining time and state | `pomodoro status` |\n| `pomodoro break` | Start a short break | `pomodoro break` |\n| `pomodoro longbreak` | Start a long break | `pomodoro longbreak` |\n\n\u003c/div\u003e\n\n### 🎯 Quick Tips\n\n- Press \u003ckbd\u003eEnter\u003c/kbd\u003e on a command to execute it\n- Right-click on a command for additional options\n- Customize plugin settings in PowerToys Settings\n- Long breaks automatically trigger after a configurable number of completed Pomodoros\n\n## 📁 Data Storage\n\nThe Pomodoro plugin stores the following settings locally:\n\n- Session length preferences (Pomodoro, short break, long break)\n- Sound notification preference (enabled/disabled)\n- Auto-start next session preference (enabled/disabled)\n- Completed session history and statistics\n\nAll settings are stored securely in the PowerToys settings file.\n\n## 🛠️ Building from Source\n\n1. Clone the repository:\n   ```\n   git clone https://github.com/ruslanlap/PowerToysRun-Pomodoro.git\n   ```\n\n2. Open the solution in Visual Studio 2022 or later\n\n3. Build the solution:\n   ```\n   dotnet build Pomodoro/Pomodoro.sln\n   ```\n\n4. Run the build-and-zip script to create installation packages:\n   ```\n   ./build-and-zip.sh\n   ```\n\n## 📊 Project Structure\n\n```\nPomodoro/\n├── Community.PowerToys.Run.Plugin.Pomodoro/\n│   ├── Images/                  # Plugin icons and animations\n│   ├── Sounds/                  # Sound effects\n│   ├── Main.cs                  # Main plugin logic\n│   ├── PomodoroResultWindow.xaml # Pomodoro timer window\n│   ├── plugin.json             # Plugin metadata\n│   └── ...\n├── Services/\n│   ├── TickCounterApiService.cs # Timer service\n│   ├── SoundService.cs          # Sound notification service\n├── Models/\n│   ├── PomodoroSession.cs       # Session data model\n│   ├── PomodoroSettings.cs      # Settings data model\n└── Pomodoro.sln                # Solution file\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Here's how you can help:\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/amazing-feature`\n3. Commit your changes: `git commit -m 'Add amazing feature'`\n4. Push to the branch: `git push origin feature/amazing-feature`\n5. Open a Pull Request\n\nPlease make sure to update tests as appropriate.\n\n### Contributors\n\n- [ruslanlap](https://github.com/ruslanlap) - Project creator and maintainer\n\n## ❓ FAQ\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eHow do I customize the Pomodoro session length?\u003c/b\u003e\u003c/summary\u003e\n\u003cp\u003eOpen PowerToys Settings, navigate to PowerToys Run \u003e Plugins \u003e Pomodoro, and adjust the \"Pomodoro length (minutes)\" setting.\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eCan I disable sound notifications?\u003c/b\u003e\u003c/summary\u003e\n\u003cp\u003eYes, open PowerToys Settings, navigate to PowerToys Run \u003e Plugins \u003e Pomodoro, and toggle the \"Play sound notifications\" option.\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eWhat happens when a Pomodoro session ends?\u003c/b\u003e\u003c/summary\u003e\n\u003cp\u003eBy 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.\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eHow many Pomodoros before a long break?\u003c/b\u003e\u003c/summary\u003e\n\u003cp\u003eBy default, a long break occurs after 4 completed Pomodoro sessions. This can be customized in the settings.\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eCan I view my productivity history?\u003c/b\u003e\u003c/summary\u003e\n\u003cp\u003eYes, this feature is available in the plugin. Your completed sessions are tracked and can be viewed through the plugin interface.\u003c/p\u003e\n\u003c/details\u003e\n\n## ✨ Why You'll Love Pomodoro Plugin\n\n- **Helps Maintain Focus**: Structure your work with dedicated focus periods\n- **Encourages Healthy Break Patterns**: Reminds you to take regular breaks\n- **Tracks Daily Performance**: Monitor your productivity patterns\n- **Keyboard-Centric**: Perfect for keyboard power users\n- **Customizable**: Set your preferred session lengths and notification settings\n- **Fast**: Instant access to timer controls\n- **Beautiful**: Clean, modern UI that matches PowerToys style\n- **Resource-Efficient**: Lightweight with minimal system impact\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgements\n\n- [Microsoft PowerToys](https://github.com/microsoft/PowerToys) team for the amazing launcher\n- All contributors who have helped improve this plugin\n- The Pomodoro Technique® by Francesco Cirillo for the time management method\n\n## 🛠️ Implementation Details\n\nThe Pomodoro plugin is built using:\n\n- C# and .NET\n- WPF for the UI components\n- System.Timers.Timer for countdown functionality\n- Windows notification API for alerts\n- Task-based asynchronous pattern for non-blocking operations\n\nThe plugin implements several PowerToys Run interfaces:\n- `IPlugin` - Core plugin functionality\n- `IDelayedExecutionPlugin` - Support for delayed execution\n- `IContextMenu` - Right-click context menu\n- `IDisposable` - Resource cleanup\n- `ISettingProvider` - Settings management\n\n### Roadmap\n\n- [ ] Custom notification sounds\n- [ ] Weekly productivity analytics\n- [ ] Task labeling for Pomodoro sessions\n\n### 🚶‍♂️ My Pomodoro Journey\n\nI 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.\n\nThe 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.\n\nThis 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:\n\n- **Zero Friction**: Two keystrokes (Alt+Space) and I'm managing my time\n- **Minimal Interruption**: Notifications that don't break concentration\n- **Rhythm Building**: The consistent work/break pattern helped me develop better focus habits\n\nI hope this plugin helps you as much as the technique has helped me. Happy focusing! 🍅\n\nWith love from [ruslanlap](https://github.com/ruslanlap) 🌟\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruslanlap%2Fpowertoysrun-pomodoro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruslanlap%2Fpowertoysrun-pomodoro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruslanlap%2Fpowertoysrun-pomodoro/lists"}