microsoft / microsoft/PowerToys
Command Palette: Orphaned Plugin Entry Persists After Plugin Removal (No Files, No Registry Keys, No Config Entries)
- Dominant language
- C
- Stars
- 139k
- Forks
- 8.6k
- PR merge metrics
- PR metrics pending
Description
### Microsoft PowerToys version
0.99.1
### Installation method
Microsoft Store
### Area(s) with issue?
Command Palette
### Steps to reproduce
After installing and later removing a third‑party Command Palette plugin (“Port for Command Palette”) via `Get-AppxPackage *port* | Remove-AppxPackage`, the plugin’s entry continues to appear in the Command Palette settings UI. The plugin itself is fully removed from the system, but the UI panel remains permanently visible.
This appears to be a UI persistence bug rather than a configuration or plugin‑cleanup issue.
**Steps to Reproduce**
1. Install a third‑party Command Palette plugin (in this case: “Port for Command Palette”).
2. Remove the plugin manually (the plugin does not register with Windows Apps & Features).
3. Open PowerToys → Command Palette settings.
4. Observe that the plugin’s configuration panel still appears, even though the plugin is no longer present.
### ✔️ Expected Behavior
PowerToys should remove the plugin’s settings panel when the plugin is no longer installed, or at minimum provide a way to remove orphaned plugin entries.
### ❌ Actual Behavior
The plugin’s settings panel remains visible indefinitely, even though:
- No plugin files exist under %LOCALAPPDATA% or %PROGRAMFILES%
- No Command Palette config files exist (JSON, module folders, or DB)
- No registry keys exist under HKCU\Software\Microsoft\PowerToys or HKLM\Software\Microsoft\PowerToys
- No plugin metadata exists in any PowerToys config path
- PowerToys appears to be using an internal or cached representation of plugin metadata that is not exposed to the user
This results in a “ghost” plugin panel that cannot be removed by any normal means.
**Additional Info:**
- The system is fully updated and clean — no leftover files, no stale registry entries, no legacy PowerToys folders.
- The Command Palette module does not appear to store plugin metadata in any documented location.
- This suggests the UI is rendering a stale or static plugin entry that is not tied to actual plugin presence.
- A reset of PowerToys, clearing AppData, and checking all known config paths did not resolve the issue.
**Suggested Improvements:**
1. Provide a documented, consistent storage location for Command Palette plugin metadata.
2. Implement a proper uninstall hook for third‑party plugins.
3. Add a “Remove orphaned plugins” or “Reset Command Palette plugins” button.
4. Enforce a plugin template that includes required registration and unregistration steps.
5. Ensure the Command Palette UI reflects actual installed plugins rather than cached or static entries.
### Upload Bug Report ZIP-file
[PowerToysReport_2026-06-07-07-35-36.zip](https://github.com/user-attachments/files/28680991/PowerToysReport_2026-06-07-07-35-36.zip)
### Additional Information
Edition Windows 11 Pro Insider Preview
Version 25H2
Installed on 5/19/2026
Evaluation expires on 8/11/2026 2:09 PM
OS build 26300.8553
Experience Windows Feature Experience Pack 1000.26100.381.0
### Other Software
C:\Users\jdurc>dotnet --info
Host:
Version: 9.0.16
Architecture: x64
Commit: a1e6809fb8
RID: win-x64
.NET SDKs installed:
No SDKs were found.
.NET runtimes installed:
Microsoft.NETCore.App 6.0.36 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.16 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.36 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 9.0.16 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Other architectures found:
None
Environment variables:
Not set
global.json file:
Not found
Contributor guide
Research direction
Start by reproducing the issue through PowerToys → Command Palette settings after removing a third-party plugin, then trace how the settings UI discovers and persists plugin entries. The issue names no source files or tests, so first locate the Command Palette settings and plugin-registration entry points. Done means an absent plugin no longer leaves a visible settings panel, with regression coverage for removal.
Written by the indexing model from the issue text.
Assessment
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100