- 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
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
Images
folder- with dark and light
.png
icons
- with dark and light
- Plugin
.dll
files - A
plugin.json
file
- 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.dll
PowerToys.ManagedCommon.dll
PowerToys.Settings.UI.Lib.dll
Wox.Infrastructure.dll
Wox.Plugin.dll
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.json
file:"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
The plugin should have a unique default action keyword.
Action keywords for the official plugins:
Examples:
βοΈ @@
β =
β #
β ??
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",
Help new users with instructions for:
- Requirements
- Installation
- Usage
- Configuration
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
Run ptrun-lint
on the plugin and review the reported issues.
The lint rules are codified from the guidelines in this checklist.