Awesome
PowerToys Run Plugin Manager
This is a cli tool to manage PowerToys Run plugins. It can be used to install, uninstall, update, list, and import plugins.
Installation
Download binary from releases page.
or build from source:
cargo install --git https://github.com/8LWXpg/ptr.git
Features
- Easy to use command line interface with informative help messages.
- Automatically download and install plugins from GitHub.
- Restart PowerToys after installing or removing plugins.
- Update all plugins with a single command.
- Restore plugins from a configuration file.
Limitations
If you have any suggestions for these limitations, feel free to open an issue.
- This tool only supports plugins hosted on GitHub.
- The plugin release must be a zip file with either
x64
orarm64
in the file name, or the tool will prompt you to specify the asset. - The zip structure must be like this:
something-x64.zip └── anyPluginName | plugin.dll └── plugin files...
For more general pattern matching and downloading, check another tool I wrote: gpm.
Usage
This tool will create a file at %LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Plugins\version.toml
to store installed plugins.
Usage: ptr.exe <COMMAND>
Commands:
add Add a plugin [aliases: a]
update Update plugins [aliases: u]
remove Remove plugins [aliases: r]
list List all installed plugins [aliases: l]
import Import plugins from configuration file [aliases: i]
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
Add
Usage: ptr.exe add <NAME> <REPO>
Arguments:
<NAME> The name of the plugin, can be anything.
<REPO> The GitHub repository of the plugin
Options:
-v, --version <VERSION> The target version of the plugin
-h, --help Print help
e.g.
ptr a GitHubRepo 8LWXpg/PowerToysRun-GitHubRepo
Update
Usage: ptr.exe update [OPTIONS] [NAME]...
Arguments:
[NAME]... The name of the plugins to update
Options:
-a, --all Update all plugins
-v, --version <VERSION> Version to update to
-h, --help Print help
e.g.
ptr u -a
ptr u Plugin1 Plugin2 -v v1.1.0 -v 1.2.0
Remove
Usage: ptr.exe remove [NAME]...
Arguments:
[NAME]... The name of the plugins to remove
Options:
-h, --help Print help
e.g.
ptr r GitHubRepo ProcessKiller
List
Usage: ptr.exe list
Import
This reads the configuration file at %LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Plugins\version.toml
.
Usage: ptr.exe import [OPTIONS]
Options:
-d, --dry-run Update the configuration file without downloading the plugin
-h, --help Print help
Why Rust?
The clap
crate in Rust is very powerful and easy to use for building command line applications, so I chose Rust to build this tool.