PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity. Inspired by the Windows 95 era PowerToys project, this reboot provides power users with utilities to squeeze more out of the Windows shell and customize it for their individual workflows.

What tools are included in PowerToys?

Microsoft keeps adding utilities to the suite, however the 21 main tools are: Always on Top, PowerToys Awake, Color Picker, FancyZones, File Explorer Add-ons, File Locksmith, Hosts File Editor, Image Resizer, Keyboard Manager, Mouse utilities, Mouse Without Borders, Peek, Paste as Plain Text, PowerRename, PowerToys Run, Quick Accent, Registry Preview, Screen Ruler, Shortcut Guide, Text Extractor, and Video Conference Mute.

What is the purpose of PowerToys?

PowerToys are smaller add-ons or utilities that can enhance and customize your Windows experience. Microsoft created PowerToys for power users looking for a bit more personalization and tweakability.

What are the two most useful tools in PowerToys?

PowerToys offers several handy tools for specific use cases, but two very popular ones are FancyZones, which lets you rearrange your window layout to run multiple apps on one screen, and PowerToys Run, which is a Spotlight-like launcher that includes quick search for apps and files in Windows.

Is Microsoft PowerToys free?

Yes, PowerToys is free and open-source.

Does PowerToys work on Windows 11?

PowerToys is compatible with Windows 10 and Windows 11

Getting started

To kick the tires on the first two utilities, download the installer here. The main PowerToys service runs when Windows starts and a user logs in. When the service is running, a PowerToys icon appears in the system tray. Selecting the icon launches the PowerToys settings UI. The settings UI lets you enable and disable individual utilities and provides settings for each utility. There is also a link to the help doc for each utility. You can right click the tray icon to quit the Power Toys service.

PowerToys settings UI.Note that some PowerToys functionality requires running in an elevated process. Elevation is required to interact with and manipulate windows from processes that have a higher set of rights than the current user. This is why the PowerToys.exe requests elevation when launched.

If you find bugs or have suggestions, please open an issue in the Power Toys GitHub repo. The backlog for creating new utilities is here. You can provide feedback on the backlog to suggest new ideas or a different priority order by joining the backlog discussion in this issue.

Current PowerToy utilities

The currently available utilities include:

Crop And Lock

Crop And Lock allows you to crop a current application into a smaller window or just create a thumbnail. Focus the target window and press the shortcut to start cropping.

Mouse Without Borders

Control a set of machines using the same keyboard/mouse, share clipboard between the machines and transfer files between the machines.

Peek

A system-wide utility for Windows that allows you to preview file content without the need to open multiple applications or interrupt your workflow. It offers a seamless and quick file preview experience for various file types, including images, web pages, Markdown files, text files, and developer files.

Always on Top

Always on Top enables you to pin windows on top of all other windows with a quick key shortcut (â Win+Ctrl+T).

PowerToys Awake

PowerToys Awake is designed to keep a computer awake without having to manage its power & sleep settings. This behavior can be helpful when running time-consuming tasks, ensuring that the computer does not go to sleep or turns off its screens.

Color Picker

ColorPicker is a system-wide color picking utility activated with Win+Shift+C. Pick colors from any currently running application, the picker automatically copies the color into your clipboard in a set format. Color Picker also contains an editor that shows a history of previously picked colors, allows you to fine-tune the selected color and to copy different string representations. This code is based on Martin Chrzan's Color Picker.

FancyZones

FancyZones is a window manager that makes it easy to create complex window layouts and quickly position windows into those layouts.

File Explorer add-ons

File Explorer add-ons enable preview pane rendering in File Explorer to display SVG icons (.svg), Markdown (.md) and PDF file previews. To enable the preview pane, select the "View" tab in File Explorer, then select "Preview Pane".

Image Resizer

Image Resizer is a Windows Shell extension for quickly resizing images. With a simple right click from File Explorer, resize one or many images instantly. This code is based on Brice Lambson's Image Resizer.

Keyboard Manager

Keyboard Manager allows you to customize the keyboard to be more productive by remapping keys and creating your own keyboard shortcuts. This PowerToy requires Windows 10 1903 (build 18362) or later.

Mouse utilities

Mouse utilities add functionality to enhance your mouse and cursor. With Find My Mouse, quickly locate your mouse's position with a spotlight that focuses on your cursor. This feature is based on source code developed by Raymond Chen.

PowerRename

PowerRename enables you to perform bulk renaming, searching and replacing file names. It includes advanced features, such as using regular expressions, targeting specific file types, previewing expected results, and the ability to undo changes. This code is based on Chris Davis's SmartRename.

PowerToys Run

PowerToys Run can help you search and launch your app instantly - just press the shortcut Alt+Space and start typing. It is open source and modular for additional plugins. Window Walker is now included as well. This PowerToy requires Windows 10 1903 (build 18362) or later.

Shortcut Guide

Windows key shortcut guide appears when a user presses â Win+Shift+/ (or as we like to think, â Win+?) and shows the available shortcuts for the current state of the desktop. You can also change this setting and press and hold â Win.

Video Conference Mute

Video Conference Mute is a quick way to globally "mute" both your microphone and camera using â Win+Shift+Q while on a conference call, regardless of the application that currently has focus. This requires Windows 10 1903 (build 18362) or later.

Languages

Currently, PowerToys is available in the following languages: Chinese (simplified), Chinese (traditional), Czech, Dutch, English, French, German, Hungarian, Italian, Japanese, Korean, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Turkish.

Community led and developed in the open

Our goal for the PowerToys project is for it to be an extension of the Windows power user community and for it to provide the functionality these users find most valuable. Our backlog of utilities is on GitHub, and we encourage the community to provide feedback on the backlog in this issue. Each utility has its own feature backlog. You can also contribute to the Windows shortcut guide backlog and the FancyZones backlog. For new utility suggestions, please create a new issue to discuss the idea.

Creating your own PowerToys utilities

While opening bug reports, feature suggestions, and feedback on the backlog are all incredibly valuable for this project, if you're one of the many power users that are also developers, you can contribute directly to the product.

When the PowerToys project was first announced this spring, we didn't think the reception would be as enthusiastic as it has been. The project started with just an empty repo, with a roadmap and a place for power users to provide suggestions and ideas. However, over 4000 users starred the repo, showing a strong interest in the project. Given this enthusiasm, we're anticipating many developers will want to contribute to PowerToys, and we've made sure that the documentation, project architecture, and tools are ready for the community to dive in.

Before getting started, it's worthwhile to read the contribution guidelines for the project. After that, you should read the "Developer Guidance" section of the PowerToys readme, which has a link to the new PowerToys utility Visual Studio template. Each utility is a .dll, which is loaded by the PowerToys runtime and each utility can provide settings to the PowerToys settings framework with a JSON blob. The settings UI takes this JSON and automatically creates a settings UI for the utility. More information on the settings format can be found in the Settings spec.

What's New

Highlights

  • New utility: Command Not Found PowerShell 7.4 module - adds the ability to detect failed commands in PowerShell 7.4 and suggest a package to install using winget. Thanks @carlos-zamora!
  • Keyboard manager does not register low level hook if there are no remappings anymore.
  • Added support for QOI file type in Peek. Thanks @pedrolamas!
  • Added support for loading 3rd-party plugins with additional dependencies in PowerToys Run. Thanks @coreyH!

Known issues

  • There are some incompatibilities between Command Not Found and some PowerShell configurations. You can find about those in the #30818 issue.

General

  • Bump WPF-UI package version to fix crashes related to theme changes. (This was a hotfix for 0.76)
  • Fixed typo in version change notification. Thanks @PesBandi!
  • Code improvements and fixed silenced warnings introduced by upgrade to .NET 8.
  • Update copyright year for 2024.
  • Added setting to disable warning notifications about detecting an application running as Administrator.

AlwaysOnTop

  • Show notification when elevated app is in the foreground but AlwaysOnTop is running non-elevated.

Command Not Found

  • Added a new utility: A Command Not Found PowerShell 7.4 module. It adds the ability to detect failed commands in PowerShell 7.4 and suggest a package to install using winget. Thanks @carlos-zamora!

Environment Variables

  • Fixed issue causing Environment Variables window not to appear as a foreground window.

FancyZones

  • Fixed snapping specific apps (e.g. Facebook messenger). (This was a hotfix for 0.76)
  • Fixed behavior of Move newly created windows to current active monitor setting to keep maximize state on moving. Thanks @quyenvsp!
  • Fixed issue causing FancyZones Editor layout window to be zoned.

File Explorer add-ons

  • Fixed WebView2 based previewers issue caused by the latest WebView update. (This was a hotfix for 0.76)

Hosts File Editor

  • Fixed issue causing settings not to be preserved on update.

Image Resizer

  • Fixed crash caused by WpfUI ThemeWatcher. (This was a hotfix for 0.76)

Keyboard Manager

  • Do not register low level hook if there are no remappings.

Peek

  • Improved icon and title showing for previewed files. Thanks @davidegiacometti!
  • Added QOI file type support. Thanks @pedrolamas!

PowerToys Run

  • Fixed results list UI element height for different maximum number of results value. (This was a hotfix for 0.76)
  • Fixed icon extraction for .lnk files. (This was a hotfix for 0.76)
  • Fixed search box UI glitch when FlowDirection is RightToLeft. (This was a hotfix for 0.76)
  • Fixed theme setting. (This was a hotfix for 0.76)
  • Fixed error reporting window UI issue. Thanks @niels9001!
  • UI improvements and ability to show/hide plugins overview panel. Thanks @niels9001!
  • Allow interaction with plugin hints. Thanks @davidegiacometti!
  • Switch to WPF-UI theme manager. Thanks @davidegiacometti!
  • Fixed issue causing 3rd party plugin's dependencies dll not being loaded properly. Thanks @coreyH!
  • Added configurable font sizes. Thanks @niels9001!
  • Changed the text color of plugin hints to improve the contrast when light theme is used. Thanks @davidegiacometti!
  • Fix scientific notation errors in Calculator plugin. Thanks @viggyd!
  • Add URI/URL features to Value generator plugin. Thanks @htcfreek!

Quick Accent

  • Moved Greek specific characters from All language set to Greek. Thanks @Aaron-Junker!
  • Add more mathematical symbols. Thanks @kevinfu2!

Settings

  • Fixed exception occurring on theme change.
  • Fix "What's new" icon. Thanks @niels9001!
  • Remove obsolete UI Font icon properties. Thanks @Jay-o-Way!
  • OOBE UI improvements. Thanks @Jay-o-Way!
  • XAML Binding improvements. Thanks @Jay-o-Way!
  • Fixed crash caused by ThemeListener constructor exceptions.

Documentation

  • Improved docs for adding new languages to monaco. Thanks @PesBandi!
  • Update README.md to directly state x64 & ARM processor in requirements.
  • Added Scoop plugin to PowerToys Run thirdPartyRunPlugins.md docs. Thanks @Quriz!

Development

  • Adopted XamlStyler for PowerToys Run source code. Thanks @davidegiacometti!
  • Consolidate Microsoft.Windows.SDK.BuildTools across solution.
  • Upgraded Boost's lib to v1.84.
  • Upgraded HelixToolkit packages to the latest versions.
  • Updated sdl baselines.

Previous Release Notes:

This is a patch release to fix issues in v0.76.1 we deemed important for stability based on incoming rates. See v0.76.0 and v0.76.1 for full release notes.

  • #30357 - Fixed issue causing Wpf apps to crash or report error dialogs by using latest WPF-UI package version.
  • #30370 - Workaround for WebView2 based preview and thumbnail handlers issue caused by WebView2 runtime latest update.

Previous Release Notes:

  • New utility: An environment variables editor with the functionality to configure profiles that can be enabled/disabled. Thanks @niels9001 for the design and UI work that made this possible!
  • Settings has a new Dashboard home page, with quick access for enabling modules, short descriptions and activation methods. Thanks @niels9001 for the design and UI work that made this possible!
  • Added a previewer to Peek that hosts File Explorer previewers to support every file type that a machine is currently able to preview. For example, this means that if Microsoft Office handlers are installed, Peek can preview Office files. Thanks @dillydylann!

General

  • Many typo fixes through the projects and documentation. Thanks @brianteeman!
  • Refactored and improved the logic across utilities for bringing a window to the foreground after activation.

Color Picker

  • After activating Color Picker, it's now possible to cancel the session by clicking the right mouse button. Thanks @fredso90!

Environment Variables

  • Added a new utility: An environment variables editor that has the functionality to configure profiles that can be enabled/disabled. Thanks @niels9001 for the design and UI work that made this possible!
  • Shows in the title bar if it's running as an administrator. Thanks @davidegiacometti!

FancyZones

  • Fixed an issue causing context menu pop-ups from some apps to automatically snap to a zone. (This was a hotfix for 0.74)
  • Applied the fix for the context menu pop-ups to the logic that decides which windows can be snapped.
  • Reworked the "Keep windows in their zones" option to include the work area and turn it on by default, fixing an incompatibility with the Copilot flyout.
  • Fixed an issue causing windows to be snapped while moving to a different virtual desktop.

File Explorer add-ons

  • Fixed an issue blocking some SVG files from being previewed correctly. (This was a hotfix for 0.74)
  • Fixed crashes on invalid files in the STL Thumbnail generator.

GPO

  • Added a global GPO rule that applies for all utilities unless it's overridden. Thanks @htcfreek!
  • Added GPO rules to control which PowerToys Run plugins should be enabled/disabled by policy. Thanks @htcfreek!
  • All plugins have to provide its plugin ID as static property in its Main method.

Image Resizer

  • Fixed wrong .bmp file association in the registry. Thanks @meitinger!

Keyboard Manager

  • Visually distinguish between the Numpad and regular period characters in the UI.
  • This utility is now disabled by default on new installations, since it requires user configuration to affect keyboard behavior.
  • Fixed a typo in the Numpad Subtract key in the editor.

Mouse Highlighter

  • Removed the lower limit of fade delay and duration, to allow better signaling of doing a double click. Thanks @fredso90!

Mouse Jump

  • The process now runs in the background, for a faster activation time. Thanks @mikeclayton!

Peek

  • Reported file sizes will now more closely match what's reported by File Explorer. Thanks @Deepak-Sangle!
  • Added a previewer that hosts File Explorer previewers to support every file type that a machine is currently able to preview. Thanks @dillydylann!
  • Fixed an issue causing the preview of the first file to be stuck loading. Thanks @davidegiacometti!
  • Fixed showing the previously previewed video file when invoking Peek with a new file. Thanks @davidegiacometti!
  • Added the wrap and file formatting options to the Monaco previewer. Thanks @davidegiacometti!

PowerRename

  • Save data from the last run in a different file to avoid conflicting with changing settings in the Settings application.

PowerToys Run

  • Fixed a case where the query wasn't being cleared after invoking a result action through the keyboard. Thanks @davidegiacometti!
  • Improved the shell selection option for Windows Terminal in the Shell plugin and improved the backend code for adding combo box options to plugins. Thanks @htcfreek!
  • The implementation of the combo box items has changed amd isn't backward compatible. (Old plugins won't crash, but the combo box setting isn't shown in settings ui anymore.)
  • Added Unix time in milliseconds, fixed negative unix time input and improved error messages in the TimeDate plugin. Thanks @htcfreek!
  • The PowerToys plugin allows calling the new Environment Variables utility. Thanks @davidegiacometti!
  • Refactored and added support to VSCodium Stable, VSCodium Insider and Remote Tunnels workspaces. Thanks @eternalphane!

Quick Accent

  • Fixed characters that were removed from "All languages" because they were not in any single language. (This was a hotfix for 0.74)
  • Added Asturian characters to the Spanish character set. Thanks @blakestack!
  • Added Greek characters with tonos. Thanks @PesBandi!

Registry Preview

  • Fixed a parsing error that crashed the Application. (This was a hotfix for 0.74)
  • Fixed opening file names with non-ASCII characters. Thanks @randyrants!
  • Fixed wrong parsing when the file contained an assignment with spaces around the equals sign. Thanks @randyrants!
  • Fixed key transversal issues when a key was a substring of a parent key. Thanks @randyrants!

Runner

  • Fixed the update notification toast to show an Unicode arrow. Thanks @TheJoeFin!

Settings

  • Added a new Dashboard home page, with quick access for enabling modules, short descriptions and activation methods. Thanks @niels9001 for the design and UI work that made this possible!
  • Fixed a typo in the Hosts File Editor page. Thanks @Deepak-Sangle!
  • Added a lock icon to the flyout listing of all modules when its enabled state is controlled by policy.
  • The "All apps" list in the flyout will now list all apps even if their enabled state is controlled by policy.

Video Conference Mute

  • Added an option to allow for the toolbar to hide after some time passed. Thanks @quyenvsp!
  • Added an option to select to mute or unmute at startup. Thanks @quyenvsp!
  • Fixed an issue causing a cascade of mute/unmute triggers.

Documentation

  • Updated the Group Policy documentation on learn.microsoft.com, removed the Group Policy documentation from the repository and linked to the published documentation on learn.microsoft.com instead.

Development

  • Added project dependencies to the version project and headers to avoid building errors. Thanks @johnterickson!
  • Enabled Control Flow Guard in the C++ projects. Thanks @DHowett!
  • Switched the release pipeline to the 1ES governed template. Thanks @DHowett!
  • Styled XAML files and added a XAML Style checker to the solution, with a CI action to check if code being contributed is compliant. Thanks @davidegiacometti!
  • Suppressed redundant midl file warnings in PowerRename.
  • Add unit tests to FancyZones Editor. Thanks @garv5014, @andrewbengordon and @Cwighty!
  • Improved the Default Layouts internal structure in FancyZones Editor. Thanks @garv5014!
  • Fixed code issues to allow building in Visual Studio 17.8 Preview 4.

Previous release notes

  • #28785 - After trying to calculate the All Languages charset in Quick Accent by joining the charsets of all languages, we missed that some characters were not in any of the languages. This adds those characters to All Languages again.
  • #28798 - Fixes a parsing issues when converting binary data from the registry files in Registry Preview.
  • #28914 - Fixes FancyZones automatically snapping context menus on some applications.
  • #28819 - Fixes SVG Preview ignoring some files with comments after we optimized the file parsing code.

Highlights

  • Upgraded to Windows App SDK 1.4.1, increasing stability of WinUI3 utilities. Thanks @dongle-the-gadget for starting the upgrade!
  • Text Extractor was upgraded to its version 2.0, with a new overlay, table mode and more Quality of Life improvements. Thanks @TheJoeFin!
  • Improved FancyZones stability, fixing some layout resets and improving handling of newly created windows on Windows 11.
  • Fixed many silent crashes that were reported to Watson and the user's event viewer.

General

  • Turning animations off in Windows Settings will now also turn them off in PowerToys.
  • Upgraded the Windows App SDK dependency to 1.4.1. Thanks @dongle-the-gadget for the original 1.4.0 upgrade!
  • Show in the thumbnail label and application titles when running as administrator. Thanks @davidegiacometti!
  • Upgraded the Win UI Community Toolkit dependency to 8.0. Thanks @niels9001!

Awake

  • Added down-sampled variants to the application's icon. Thanks @morriscurtis!

Color Picker

  • After adding a new color in the editor, the history will scroll the new color into view. Thanks @peerpalo!

Crop and Lock

  • Fixed a Crop and Lock crash that would occur when trying to reparent a window crashes the target application. An error message is shown instead.

FancyZones

  • Set the process and main thread priority to normal.
  • Fixed handling newly created windows on Windows 11.
  • Fixed scenarios where opening the FancyZones Editor would reset the layouts.

File Explorer add-ons

  • Optimized CPU usage for generating SVG thumbnails.
  • Improved handling of Gcode Thumbnails, including JPG and QOI formats. Thanks @pedrolamas!
  • Better handled errors when sending telemetry, which were causing reported crashes.
  • Fixed some thumbnails not being shown centered like before the optimization.

File Locksmith

  • Shows files opened by processes with PID greater than 65535. Thanks @poke30744!
  • Fixed a GDI object leak in the context menu which would crash Explorer.

Find My Mouse

  • Added new activation methods, including by hotkey. Thanks @davidegiacometti!

Hosts File Editor

  • Ignore the default ACME sample entries in the hosts file. Thanks @davidegiacometti!
  • Improved save error handling and added better error messages. Thanks @davidegiacometti!
  • Corrected a check for an error when signaling the application to start as administrator.
  • Refactored the context menu. Thanks @davidegiacometti!
  • Fixed dialogs overlapping the title bar after the upgrade to Windows App SDK 1.4. Thanks @davidegiacometti!

Keyboard Manager

  • Distinguish between the regular minus key and the numpad minus key.

Mouse Without Borders

  • Fixed a crash when trying to restart the application.

Peek

  • Using Peek on HTML files will show a white background by default, similar to a browser's default behavior.
  • Fix a white flash on Dark theme when switching file and improved the development file preview detection and adjustments.

PowerRename

  • Fixed a crash caused by big counter values on the new enumeration method.

PowerToys Run

  • It's now possible to select which shell is used by the Shell plugin.
  • A combobox option type was added to the plugin options.
  • Fixed a bug in the Calculator plugin that was causing decimal numbers to be misinterpreted on locales where the dot (.) character isn't used as a decimal or digit separator.
  • Improved the Program plugin stability when it fails to load a program's thumbnail at startup.
  • The use of Pinyin for querying some plugins can now be turned on in Settings. Thanks @ChaseKnowlden!
  • Refactored option types for plugin and added number, string and composite types to be used in the future. Thanks @htcfreek!
  • Fixed the entry for searching for Windows updates in the Settings plugin. Thanks @htcfreek!

Quick Accent

  • The "All languages" character set is now calculated by programmatically querying the characters for every available language. Thanks @dannysummerlin!
  • Added é to the Norwegian and Swedish languages. Thanks @Aaron-Junker!
  • Added a runtime cache to the "All languages" character set, to only calculate accents once per key.

Registry Preview

  • Fixed focusing issues at startup.
  • Improved the data visualization to show data in a similar way to the Windows Registry Editor. Thanks @dillydylann!

Runner

  • Fixed hanging when a bug report was generated from the flyout. Thanks @davidegiacometti!

Settings

  • Improved the way the OOBE window reacts to Windows theme change.
  • Fixed an issue that made it impossible to change the "Switch between windows in the current zone" "Next window" shortcut for FancyZones.
  • Fixed a crash when entering a duplicate name for a color in the Color Picker page and improved clean up when cancelling a color edit. Thanks @davidegiacometti!

Text Extractor

  • Text Extractor 2.0, with a new overlay, table mode and more Quality of Life improvements. Thanks @TheJoeFin!

Documentation

  • SECURITY.md was updated from 0.0.2 to 0.0.9. Thanks @Aaron-Junker!
  • Improved the README and main development document for clarity and completeness. Thanks @codeofdusk and @aprilbbrockhoeft!

Development

  • Fixed PowerToys Run DateTime plugin tests that were failing depending on locale, so that they can be run correctly on all dev machines.
  • Fixed PowerToys Run System plugin tests that were failing for certain network interfaces, so that they can be run correctly on all dev machines. Thanks @snickler!
  • Fixed a markdown bug on the GitHub /helped command.
  • Switched build pipelines to a new agent pool. Thanks @DHowett!
  • New .cs files created in Visual Studio get the header added automatically. Thanks @davidegiacometti!