Overview
Command Palette (CmdPal) is an extensible, modern command launcher that serves as the next iteration of PowerToys Run. With extensibility at its core, it provides a unified interface to start anything, run commands, and interact with system features through a plugin architecture.Activation
Key Features
Extensible Architecture
Extension System
WinRT-based plugin interfaceLanguage-agnostic extension development
Command Providers
Custom command sourcesIntegrate any data or action
Page Extensions
Full UI extensionsCustom interfaces within palette
Native Integration
Built-in PowerToys commandsSystem-level integration
Extension Development
Create extensions in any language supporting WinRT:Built-in Features
Command Palette includes these capabilities out of the box:- Application Launcher
- File Search
- Calculator
- System Commands
- Launch installed applications
- Search Start Menu items
- Open UWP and Win32 apps
- Recent app suggestions
Creating Extensions
The fastest way to create an extension:Configuration
Activation Shortcut
Global hotkey to open Command PaletteConfigurable in PowerToys Settings
Extension Management
Manage installed extensions:- Open Command Palette
- Type “extensions” or “plugins”
- View installed extensions
- Enable/disable individual extensions
- Configure extension settings
Search Behavior
Maximum number of results to display
Debounce delay for search queries (milliseconds)
Enable fuzzy search for command matching
Use Cases
Quick Actions
Launch Applications
Launch Applications
Fastest way to open applications:
Calculations
Calculations
Quick math without opening calculator:
File Navigation
File Navigation
Developer Workflows
System Management
Settings Access
Quick access to Windows settings
Win+Alt+Space → "settings display"PowerToys Control
Manage PowerToys utilities
Win+Alt+Space → "powertoys color picker"Process Management
Extension for task managementCustom commands for process control
Power Options
Quick power commandsShutdown, restart, sleep actions
Custom Integrations
Examples of custom extensions:- API Testing: Quick REST API calls
- Cloud Services: Interact with Azure, AWS, etc.
- Database Queries: Run quick database lookups
- Documentation: Search local documentation
- Snippets: Insert code snippets
- DevOps: Trigger CI/CD pipelines
Extension Development
Getting Started
Install Prerequisites
- Visual Studio 2022+ with C++ and .NET workloads
- Windows SDK 10.0.26100.0+
- PowerToys installed
Create Extension Project
Use the “Create extension” command in Command PaletteOr manually with project template
Extension Types
- Command Providers
- Page Extensions
- Form Pages
Provide searchable commands:
Extension Packaging
Package and distribute extensions:Sample Extensions
Official samples in repository:- Generic samples:
src/modules/cmdpal/ext/SamplePagesExtension - Real-world samples:
src/modules/cmdpal/ext/ProcessMonitorExtension - Shipped extensions: GitHub - CmdPalExtensions
src/modules/cmdpal/README.md:48
Technical Details
Architecture
Key Projects
| Project | Purpose |
|---|---|
Microsoft.CmdPal.UI | Main Command Palette application |
Microsoft.CommandPalette.Extensions | Extension interface (language-agnostic WinRT) |
Microsoft.CommandPalette.Extensions.Toolkit | C# helper library for extensions |
SampleExtensions/* | Example extension implementations |
src/modules/cmdpal
Extension SDK
The extension interface is designed to be language-agnostic:src/modules/cmdpal/doc/initial-sdk-spec/initial-sdk-spec.md
Extension Discovery
Command Palette discovers extensions through:- Installation Directory:
%LOCALAPPDATA%\Microsoft\PowerToys\CommandPalette\Extensions - Package Registration: Windows package registration
- Development Mode: Direct DLL loading for debugging
Keyboard Shortcuts
Global
| Shortcut | Action |
|---|---|
Win+Alt+Space | Open Command Palette (default) |
In Command Palette
| Shortcut | Action |
|---|---|
Type to search | Filter commands |
↑ / ↓ | Navigate results |
Enter | Execute selected command |
Esc | Close Command Palette |
Tab | Auto-complete / Next field |
Shift+Enter | Alternative action (if available) |
Ctrl+[Number] | Quick select result |
Troubleshooting
Command Palette won't open
Command Palette won't open
Check:
- PowerToys is running
- Command Palette enabled in settings
- Shortcut not conflicting
- Check PowerToys logs
- Try alternate activation shortcut
- Restart PowerToys
Extension not loading
Extension not loading
Verify:
- Extension built successfully
- Extension in correct directory
- Extension manifest valid
- Dependencies installed
%LOCALAPPDATA%\Microsoft\PowerToys\CommandPalette\ExtensionsLogs: Check Command Palette logs for load errorsExtension crashes Command Palette
Extension crashes Command Palette
Steps:
- Disable extension
- Review extension error handling
- Check exception logs
- Debug extension in Visual Studio
- Wrap extension code in try-catch
- Validate all inputs
- Handle async operations properly
Search results not appearing
Search results not appearing
Check:
- Extension implementing search correctly
- Query parsing logic
- Result filtering
- Performance (timeout issues)
See Also
- PowerToys Run - Previous generation launcher
- Extension Development Guide
- Sample Extensions
- Command Not Found - Shell integration