Microsoft PowerToys

Microsoft PowerToys is a collection of utilities that help you customize Windows and streamline everyday tasks.

Installation · Documentation · Blog · Release notes



🔨 Utilities

PowerToys includes over 25 utilities to help you customize and optimize your Windows experience:

Advanced Paste icon Advanced Paste Always on Top icon Always on Top Awake icon Awake
Color Picker icon Color Picker Command Not Found icon Command Not Found Command Palette icon Command Palette
Crop and Lock icon Crop And Lock Environment Variables icon Environment Variables FancyZones icon FancyZones
File Explorer Add-ons icon File Explorer Add-ons File Locksmith icon File Locksmith Hosts File Editor icon Hosts File Editor
Image Resizer icon Image Resizer Keyboard Manager icon Keyboard Manager Light Switch icon Light Switch
Mouse Utilities icon Mouse Utilities Mouse Without Borders icon Mouse Without Borders New+ icon New+
Peek icon Peek PowerRename icon PowerRename PowerToys Run icon PowerToys Run
Quick Accent icon Quick Accent Registry Preview icon Registry Preview Screen Ruler icon Screen Ruler
Shortcut Guide icon Shortcut Guide Text Extractor icon Text Extractor Workspaces icon Workspaces
ZoomIt icon ZoomIt

📋 Installation

For detailed installation instructions and system requirements, visit the installation docs.

But to get started quickly, choose one of the installation methods below:

Download .exe from GitHub
Go to the PowerToys GitHub releases, click Assets to reveal the downloads, and choose the installer that matches your architecture and install scope. For most devices, that's the x64 per-user installer.
Description Filename
Per user - x64 PowerToysUserSetup-0.98.0-x64.exe
Per user - ARM64 PowerToysUserSetup-0.98.0-arm64.exe
Machine wide - x64 PowerToysSetup-0.98.0-x64.exe
Machine wide - ARM64 PowerToysSetup-0.98.0-arm64.exe
Microsoft Store
You can easily install PowerToys from the Microsoft Store:

WinGet
Download PowerToys from WinGet. Updating PowerToys via winget will respect the current PowerToys installation scope. To install PowerToys, run the following command from the command line / PowerShell:

User scope installer [default]

winget install Microsoft.PowerToys -s winget

Machine-wide scope installer

winget install --scope machine Microsoft.PowerToys -s winget
Other methods
There are community driven install methods such as Chocolatey and Scoop. If these are your preferred install solutions, you can find the install instructions there.

What's new

Version 0.98.0 (March 2026)

This version includes major updates to Command Palette and the Keyboard Manager Editor along with feature and stability improvements across the PowerToys suite.

Highlights

Command Palette

  • Added Dock — a persistent application launcher bar that lives at the edge of your screen for instant access to pinned commands
  • Lightning-fast mode and precomputed fuzzy matching deliver dramatically faster search and launch times. Thanks @jiripolasek!
  • New Performance Monitor extension ports DevHome perf widgets into CmdPal, single-row list items, transparent window, and searchable filter dropdown

Keyboard Manager

  • Upgraded Keyboard Manager Editor to WinUI 3 for a modern and consolidated experience
  • Added support for toggling shortcuts from the Editor UI

Always on Top

  • Added "Toggle always on top" to the window system menu and transparency adjustment for pinned windows

ZoomIt

  • Added a video trim dialog for editing recordings and configurable audio track input

Cursor Wrap

  • Redesigned wrapping engine with multi-monitor support, GPO policy, and configurable wrap modes

New+

  • Added ability to hide the Windows built-in "New" context menu to avoid duplicates

Settings

  • Tray icon now follows system theme, singleton shortcut conflict window, and multiple crash fixes

Build

  • Added Visual Studio 2026 support, upgraded WASDK to 1.8.5, and CppWinRT to 2.0.250303.1

Advanced Paste

  • Fixed a crash on the Advanced Paste settings page caused by null property values in #45207
  • Fixed a crash on the Advanced Paste settings page caused by unsafe settings upgrade logic in #44862
  • Fixed a settings page crash by resolving the Foundry Local AI endpoint when it changes in #45699
  • Added resilient handling of Foundry Local port changes at runtime so AI paste actions recover automatically in #45362
  • Added auto-copy selection for custom action hotkeys so users can copy and paste with a single shortcut in #44767
  • Updated OOBE description to clarify AI features now support more than just OpenAI API keys in #45233
  • Added AI preview credit documentation in #45236

Always On Top

  • Added a "Toggle always on top" entry to the window system menu (title bar right-click) for easy access without hotkeys in #45773
  • Added transparency adjustment support for pinned windows using modifier keys + plus/minus shortcuts in #44815. Thanks @Copilot!
  • Fixed settings changes not taking effect immediately due to a concurrency bug in #45994
  • Fixed duplicate command entries in the window system menu in #45845

Awake

  • Improved developer experience and code quality for the Awake utility in #44795. Thanks @dend!

Color Picker

  • Added optional integer-rounding formatter for CIELab color components with updated help in Settings UI in #42986. Thanks @ruthiesun!

Command Palette

Dock (New Feature)

  • Added Dock feature to Command Palette, providing a persistent application launcher bar in #45824
  • Added Dock API for extension integration in #45432
  • Fixed Dock visual bugs and polish in #45871. Thanks @jiripolasek!
  • Visual tweaks and nits for Dock in #45873 and #45954. Thanks @jiripolasek!
  • Fixed Dock dealing with multiple app bars on the same side in #45831
  • Adjusted Dock padding for Fitts's law compliance in #45834
  • Fixed tab focus order for Dock items in #45837
  • Replaced IsShownInSwitchers with HiddenOwnerWindowBehavior in DockWindow in #45839. Thanks @jiripolasek!
  • Added locking to TopLevelCommandManager.DockBands for thread safety in #45898. Thanks @jiripolasek!
  • Handled empty icons in Dock items in #45968. Thanks @jiripolasek!
  • Added pin instructions for Dock in #46052

Performance & Reliability

UI & UX

  • Switched to single-row list items for a cleaner compact view in #45763. Thanks @jiripolasek!
  • Added transparent window support in #45159. Thanks @jiripolasek!
  • Replaced FiltersDropDown ComboBox with a searchable dropdown in #45747. Thanks @jiripolasek!
  • Added list item context menu for quick actions on results in #45086. Thanks @jiripolasek!
  • Added context commands for pinning nested commands in #45673
  • Load pinned command items from anywhere in the command tree in #45566
  • Added "Keep previous query" setting to preserve search text across invocations in #45742. Thanks @Copilot!
  • Added ability to refresh list page while preserving selection in #45882. Thanks @jiripolasek!
  • Renamed "Results" section on Home page to "Commands" in #45870. Thanks @jiripolasek!
  • Replaced MainListPage icon with unplated CmdPal icon in #45958. Thanks @jiripolasek!
  • Added new colorful icons for Bookmarks and Performance Monitor in #45979. Thanks @jiripolasek!
  • Added button to toggle visibility of the dev ribbon in #45379. Thanks @jiripolasek!
  • Reset scroll position in DetailsView upon new selection in #46038
  • Fixed selection desync when clearing search query in #45949. Thanks @jiripolasek!
  • Fixed details pane not hiding when item initialization fails in #44757
  • Fixed window centering when moving to a display with different DPI in #45057. Thanks @jiripolasek!
  • Prevented main window from stealing focus in #45309. Thanks @jiripolasek!
  • Fixed window restore when the window is not WS_EX_TOOLWINDOW in #45877. Thanks @jiripolasek!
  • Improved main window positioning behavior in #45585. Thanks @jiripolasek!
  • Fixed null check before caching view model for item in #45815. Thanks @jiripolasek!

Extensions & SDK

  • Ported DevHome performance widgets to CmdPal as a new Performance Monitor extension in #45217
  • Added settings to hide non-apps from search results in #45741. Thanks @jiripolasek!
  • Fixed Calculator extension for reliable results in #44594. Thanks @jiripolasek!
  • Fixed All Apps search result limit default in #45804. Thanks @jiripolasek!
  • Fixed apps extension ignoring fallback results limit setting in #45716. Thanks @Copilot!
  • Fixed RDP extension rejecting host:port connections in #45740. Thanks @Copilot!
  • Made RDP fallback non-global by default in #46053. Thanks @jiripolasek!
  • Fixed starting new web URI for default browser that doesn't support exe arguments in #45614. Thanks @jiripolasek!
  • Added Mouse Without Borders easy mouse support to the CmdPal PowerToys extension in #45350
  • Fixed Window Walker race condition in UWP app enumeration in #45601. Thanks @daverayment!
  • Cached and displayed information for disabled command providers in #44278. Thanks @jiripolasek!
  • Added error when New extension path does not exist in #46037
  • Updated extension template project to 0.9 in #46010
  • Localized clipboard history metadata strings in #45506. Thanks @jiripolasek!
  • Localized "More" button on command bar and hotkeys in #45505. Thanks @jiripolasek!
  • Added AutomationProperties.Name to Extensions page "More" button in #45516
  • Localized additional UI strings in Registry and Services commands in #45508. Thanks @jiripolasek!
  • Localized missing resources related to ShortcutControl in #45589. Thanks @jiripolasek!
  • Fixed alias UI clearing when toggling Direct/Indirect combobox in #45381. Thanks @jiripolasek!
  • Fixed context menu command items in #45499

Infrastructure & Code Quality

  • Introduced global error handling foundation with error report builder and PII sanitizer in #44140. Thanks @jiripolasek!
  • Added ApplicationInfoService and fixed version reporting in error report builder in #45374. Thanks @jiripolasek!
  • Calmed down sanitizer output and adjusted unit tests in #45613. Thanks @jiripolasek!
  • Used a factory for building context menu VMs in #45572
  • Removed dead code from Window Walker and cleanup in #45570. Thanks @jiripolasek!
  • Removed Core projects in #45693. Thanks @jiripolasek!
  • Added IDs to all PowerToys commands in #45840
  • Prevented unsynchronized access to "More commands" in #46020. Thanks @jiripolasek!
  • Fixed search box visibility before bailing out in #46021. Thanks @jiripolasek!
  • Prevented item template selectors from modifying containers in #45498. Thanks @jiripolasek!
  • Safely iterated package metadata tags to prevent exceptions in #45502. Thanks @jiripolasek!
  • Moved TextToSuggest property update back to UI thread in #45878. Thanks @jiripolasek!
  • Suppressed CsWinRT1028 warnings on source-generated interop types in #45827 and #45324. Thanks @jiripolasek!
  • Expanded Binding markup extensions to nested elements to avoid WMC1510 in #45830. Thanks @jiripolasek!
  • Removed OneWay binding mode from bands ItemsRepeater in #45833. Thanks @jiripolasek!
  • Removed invalid return statement from SDK spec example in #44781. Thanks @RubenFricke!
  • Minor string tweaks in #46040. Thanks @Copilot!
  • Run shutdown and restart commands in a hidden window in #45062. Thanks @jiripolasek!
  • Configured .editorconfig to format MSBuild files in #45739. Thanks @jiripolasek!
  • Added PerformanceMonitor to solution filter in #45738. Thanks @jiripolasek!
  • Added solution filter for PowerToys extension projects in #45096. Thanks @jiripolasek!
  • Added trailing backslash to OutDir in Terminal UI project file in #45250. Thanks @jiripolasek!
  • Upgraded MarkdownTextBlock to newer version in #44793
  • Used latest MSIX for extension installation in #44886
  • Updated README to note PowerToys extension requires Windows 11 in #44863
  • Added extension development documentation links in #45632
  • Added PowerToys extension development dev guide in #45967
  • Refactored PerformanceMonitor GPU stats to use batch counter reads in #45835. Thanks @jiripolasek!

Cursor Wrap

  • Completely rewritten cursor wrapping engine with enhanced multi-monitor support, display change notifications, GPO policy support, and configurable wrap mode (horizontal, vertical, or both) in #44936. Thanks @mikehall-ms!
  • Added option to disable CursorWrap when only a single monitor is connected in #45303. Thanks @mikehall-ms!
  • Updated edge wrap model, added cursor logging, and settings support to module loader in #45915. Thanks @Copilot and @mikehall-ms!
  • Reversed the "Holding Ctrl/Shift" activation behavior so wrapping occurs only while the modifier key is held, matching user expectations in #46009

File Explorer

  • Restricted URI scheme navigation in MarkdownPreviewHandler to http/https only to prevent unsafe navigation in #45801

Image Resizer

  • Temporarily disabled AI Super Resolution feature in #44768
  • Refactored codebase to disable AI feature and cache functionality in #44759

Keyboard Manager

  • Added a toggle hotkey (Win+Shift+K) to enable/disable Keyboard Manager on the fly in #42472. Thanks @Copilot and @weikequ!
  • Updated Keyboard Manager to a modern WinUI3 interface with toggle support in #45649. Thanks @chenmy77 and @Jay-o-Way!
  • Added Keyboard Manager to the shortcut list on the Dashboard page in #45938
  • Updated replace text functionality in #46046

Light Switch

  • Fixed Light Switch being toggleable from the Dashboard and Quick Access even when GPO policies were active in #45756
  • Added 10-second timeout and pre-check for location detection to prevent hanging in #45887. Thanks @Copilot!
  • Changed rules around max/min values for the sunrise/sunset offset field in #45125
  • Fixed Light Switch startup logic in #45304

Mouse Utilities

  • Removed new-info badge for Cursor Wrap now that it's no longer a new feature in #45803

New+

  • Added ability to hide the Windows built-in "New" context menu when New+ is enabled to avoid duplicate entries in #44979. Thanks @cgaarden!
  • Fixed issue where templates with numeric-only names were not displayed correctly in #45439. Thanks @cgaarden!
  • Fixed error dialog appearing when toggling the built-in "New" context menu visibility in Settings in #46029

Peek

  • Fixed Space key triggering Peek during file rename or search operations in File Explorer in #44995

PowerRename

  • Improved Unicode normalization and added regex metacharacter tests in #44944

PowerToys Run

  • Replaced Window Walker's brute-force fuzzy matching with an optimal dynamic programming solution for faster search in #44551. Thanks @daverayment!

Settings

  • Implemented singleton pattern for the Shortcut Conflict window to prevent duplicate windows in #42440. Thanks @davidegiacometti!
  • Fixed tray icon to adapt to Windows system theme instead of app theme for better contrast in #44931
  • Fixed right-click menu display issue in #44982
  • Fixed OOBE Launch buttons remaining clickable when modules are disabled in #44736
  • Fixed contrast issue in settings UI in #45367
  • Fixed crash caused by missing default language option in resources in #45766
  • Fixed settings process not shutting down properly when closing secondary windows in #45787
  • Fixed SCOOBE showing unknown symbol instead of bullet in #45696
  • Removed unused experimentation plumbing and refactored OOBE/SCOOBE into standalone windows in #44721
  • Added Open Settings button in SCOOBE for quick access in #45775
  • UX fixes for Settings UI in #45513. Thanks @jiripolasek!
  • Moved GPO info bar for Clipboard History to correct location in #45030. Thanks @htcfreek!
  • Fixed Bug Report button wrongly disabled when Telemetry GPO is off in #45033. Thanks @htcfreek!
  • Changed binding modes to OneTime for static Dashboard controls to reduce overhead in #45765
  • Removed new info badge from system tray in #45992
  • Added solution filter for Settings UI projects in #46036. Thanks @jiripolasek!
  • Set MinWidth on Shortcut user control in #46035
  • Added telemetry for tray icon usage in #44985
  • Added NEW tag to Keyboard Manager and Dock in #46048

Workspaces

  • Fixed an overlay rendering issue for workspace snapshot drawing in #45183

ZoomIt

  • Added a video trim dialog for editing recordings directly in ZoomIt in #45334. Thanks @foxmsft and @MarioHewardt!
  • Made audio track configurable to depend on system audio or audio input in #45700. Thanks @foxmsft!
  • Fixed a bug where after trimming, the video couldn't be saved and new recordings couldn't be started in #46034
  • Fixed ampersand typing bug and debug assertion failure in #43679. Thanks @daverayment!
  • Added datetime suffix to screenshot filenames for easier organization in #43172. Thanks @daverayment!
  • Added full hotkey list display in ZoomIt settings in #43073
  • Fixed virtual microphone not closing on recording stop in #45386. Thanks @foxmsft!

Development

Build & CI

  • Added Visual Studio 2026 support with centralized PlatformToolset v145 in #44304. Thanks @snickler!
  • Added CoreTargetFramework Property to avoid hard-coding .NET TFM in #41366. Thanks @snickler!
  • Upgraded WASDK to 1.8.5 and removed TitleBar workarounds in #45532
  • Upgraded Microsoft.Windows.CppWinRT to 2.0.250303.1 in #45420. Thanks @snickler!
  • Added WinRT coroutine support and refactored async methods in #45522. Thanks @Copilot!
  • Standardized project path references to use $(RepoRoot) for consistency in #44639
  • Fixed release pipeline sign failure due to file not found in #45971
  • Fixed release pipeline and local build failures in #45211. Thanks @Copilot!
  • Fixed pipeline build issue with WASDK 2.0 experimental in #45390
  • Signed new DLL to fix CI in #45582
  • Fixed MouseUtils folder structure within slnx view in #45990
  • Updated BuildWithLatestWinAppSdkDaily pipeline in #45555
  • Removed tests folder before code signing to reduce signing workload in #44800

Documentation

  • Added documentation for writing a new PowerToy module in #44242
  • Added telemetry developer documentation in #44912
  • Improved developer docs in #45534. Thanks @noraa-junker and @snickler!
  • Updated DATA_AND_PRIVACY to reflect current status in #44844
  • Added spellcheck words and sorted expect.txt in #45251. Thanks @jiripolasek!
  • Added dev guideline to verify builds before opening PRs in #45419

Testing

  • Fixed libFuzzer failing to resolve target class name in Hosts fuzz tests in #45784
  • Added unit tests to protect common utility code and fixed discovered bugs in #45290
  • Migrated test infrastructure to newer MSTest framework in #37651. Thanks @Youssef1313!
  • Fixed UI tests for Light Switch, Hosts, Workspaces, and Mouse in #44754

Localization

  • Moved localization build to windows-latest from deprecated 2019 agent in #45889
  • Bundled PowerToys extension localization files into installer in #45194

UI Framework

  • Created Common.UI.Controls library to consolidate shared WinUI controls in #45542. Thanks @jiripolasek!

Enterprise

  • Added Group Policy definition for CursorWrap to ADMX/Intune templates in #45028. Thanks @htcfreek!

Installer

  • Fixed Image Resizer not working after upgrade on Windows 10 in #45184

Copilot & Tooling

  • Enhanced release notes generation and GitHub issue tools in #44762
  • Added fix active PR comments prompt with scoped changes in #44996
  • Added Claude Code support via symlinks in #45204
  • Added WinMD cache generator script for API search skill in #45606. Thanks @Copilot!
  • Updated setup-dev-environment.ps1 to capture prereleases from vswhere in #45813. Thanks @SeanKilleen!

GitHub Workflow

  • Updated Assets conflict script to improve error message clarity in #45551
  • Updated release note generation skill to quote co-authors in #45819
  • Enhanced bug report template with file upload option in #46015. Thanks @noraa-junker!

Other

  • Properly localized "View on GitHub" link and release date in What's New OOBE page in #45847. Thanks @PesBandi!
  • Fixed WinUIEx crash issue in #45443

🛣️ Roadmap

We are planning some nice new features and improvements for the next releases PowerDisplay, Command Palette improvements and a brand-new Shortcut Guide experience! Stay tuned for v0.98!

❤️ PowerToys Community

The PowerToys team is extremely grateful to have the support of an amazing active community. The work you do is incredibly important. PowerToys wouldn't be nearly what it is today without your help filing bugs, updating documentation, guiding the design, or writing features. We want to say thank you and take time to recognize your work. Your contributions and feedback improve PowerToys month after month!

Contributing

This project welcomes contributions of all types. Besides coding features / bug fixes, other ways to assist include spec writing, design, documentation, and finding bugs. We are excited to work with the power user community to build a set of tools for helping you get the most out of Windows. We ask that before you start work on a feature that you would like to contribute, please read our Contributor's Guide. We would be happy to work with you to figure out the best approach, provide guidance and mentorship throughout feature development, and help avoid any wasted or duplicate effort. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you grant us the rights to use your contribution and that you have permission to do so. For guidance on developing for PowerToys, please read the developer docs for a detailed breakdown. This includes how to setup your computer to compile.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct.

Privacy Statement

The application logs basic diagnostic data (telemetry). For more privacy information and what we collect, see our PowerToys Data and Privacy documentation.

Description
Microsoft PowerToys is a collection of utilities that help you customize Windows and streamline everyday tasks
Readme MIT 748 MiB
Languages
C 48.3%
C# 23.9%
C++ 14%
JavaScript 13%
PowerShell 0.5%
Other 0.2%