Community plugin checklist
Lists 8 validation steps for publishing a PowerToys Run community plugin, with naming, packaging and distribution rules.
What this file does
Lists 8 validation steps for publishing a PowerToys Run community plugin, with naming, packaging and distribution rules.
When to use it
- Submitting a new plugin to the PowerToys Run community list
- Reviewing your own plugin before a GitHub release
- Checking a plugin's zip archive structure and folder naming
Assumes this stack
Community plugin checklist
- Review the official documentation: New plugin checklist
- Package the plugin in a zip archive file
- The plugin folder should have the same name as the plugin
- The default action keyword for the plugin should be unique
- The website should be the URL to the GitHub repo for the plugin source code
- The documentation should be helpful to new users
- Distribute the plugin as an Asset via GitHub Releases
- Validate the plugin with
ptrun-lint
Zip
Package the plugin in a .zip archive file.
Naming convention:
<name>-<version>-<platform>.zip
Platform: x64 | ARM64
Examples:
✔️ InputTyper-0.2.0-x64.zip
❌ InputTyper.zip
The zip file should contain:
- A folder with the same name as the plugin
- An
Imagesfolder- with dark and light
.pngicons
- with dark and light
- Plugin
.dllfiles - A
plugin.jsonfile
- An
Examples:
✔️ InputTyper-0.2.0-x64.zip:
InputTyper
├── Images
│ ├── InputTyper.light.png
│ └── InputTyper.dark.png
├── Community.PowerToys.Run.Plugin.InputTyper.dll
├── Community.PowerToys.Run.Plugin.InputTyper.deps.json
└── plugin.json
Unnecessary files in the zip:
PowerToys.Common.UI.dllPowerToys.ManagedCommon.dllPowerToys.Settings.UI.Lib.dllWox.Infrastructure.dllWox.Plugin.dll
Folder
The plugin folder should have the same name as the plugin.
The name should be in PascalCase, i.e. without spaces or punctuation and with capitalized words.
Examples:
✔️ InputTyper
❌ Input Typer
❌ Community.PowerToys.Run.Plugin.InputTyper
In other words, the plugin folder name should match:
- The name in the
plugin.jsonfile:"Name": "InputTyper"
- The last part of the assembly name:
Community.PowerToys.Run.Plugin.InputTyper
Community plugins are located here:
%LocalAppData%\Microsoft\PowerToys\PowerToys Run\Plugins
For reference, the official plugins are located in one of these places:
C:\Program Files\PowerToys\RunPlugins- Machine wide installation of PowerToys
%LocalAppData%\PowerToys\RunPlugins- Per user installation of PowerToys
Action Keyword
The plugin should have a unique default action keyword.
Action keywords for the official plugins:
Examples:
✔️ @@
❌ =
❌ #
❌ ??
Website
The website in the plugin.json should be the URL to the GitHub repo for the plugin source code.
Examples:
✔️ "Website": "https://github.com/CoreyHayward/PowerToys-Run-InputTyper",
❌ "Website": "https://github.com/CoreyHayward",
Documentation
Help new users with instructions for:
- Requirements
- Installation
- Usage
- Configuration
Release
Distribute the plugin by attaching the .zip archive file to a GitHub Release.
Examples:
✔️ https://github.com/CoreyHayward/PowerToys-Run-InputTyper/releases/tag/v0.2.0
Lint
Run ptrun-lint on the plugin and review the reported issues.
The lint rules are codified from the guidelines in this checklist.
What's inside
8 checklist items, 5 subsections with naming conventions, folder layouts and code examples
Change this for your project
- Replace
InputTyperwith your plugin's PascalCase name - Replace
CoreyHayward/PowerToys-Run-InputTyperwith your GitHub repo URL - Replace
0.2.0with your plugin version number
Where it goes
Keep it in your repository where the agent or team that needs it will read it.
Worth borrowing
- Zip naming convention
<name>-<version>-<platform>.zip - Explicit list of unnecessary DLLs to exclude from the archive
Related Documents
Setup & Deployment Checklist
Guides you through 10 phases to set up, test, deploy, and customize a content agent system using OpenRouter and Streamlit.
RealDiag Demo Video Script
Provides a complete 5-7 minute demo video script for a clinical decision support tool, including timing, visual cues, and production notes.
📱 Mobile Phone Preview - Quick Start
Walks you through four ways to preview a React Native Expo app on real devices and emulators, plus a testing checklist and troubleshooting guide.
🌙 Sleepy Storybook — Launch Marketing Plan
Outlines an 18-day launch plan for a personalized AI bedtime story app, covering social media, influencer outreach, paid ads, and email sequences.