Community plugin checklist
September 18, 2024 · View on GitHub
- 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.