microsoft / microsoft/PowerToys

Command Palette: Orphaned Plugin Entry Persists After Plugin Removal (No Files, No Registry Keys, No Config Entries)

Open
#48,369 0 comments 0 reactions 0 assignees View on GitHub
Issue-Bug Needs-Triage Product-Command Palette
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.