Hot reload your plugin
The extension finds Decky plugins in your workspace: every folder with a plugin.json, in a workspace
folder or up to two levels below it. It installs to ~/homebrew/plugins/<folder name> (the
decky-toolkit.pluginDirName setting overrides the name). Plugins are expected to follow the
decky-plugin-template layout.
Turn on deploy on change and every save reloads your plugin. To deploy on demand, press
Ctrl+Alt+D or click Deploy <name> in the status bar.
What a deploy does
Section titled “What a deploy does”- Build, only if needed. With
decky-toolkit.deploy.buildset toauto(the default),pnpm run buildruns only when a file undersrc/(ortsconfig.json/rollup.config.*) is newer thandist/index.js.main.pyandpy_modules/never need a build. - Stage and zip what the template ships (
dist,plugin.json,package.json,main.py,py_modules,defaults,assets, …), withoutnode_modules,__pycache__and.git. - Upload to the device, which swaps the plugin directory atomically.
- Reload only this plugin. Decky restarts its backend and the Steam UI imports the new frontend bundle,
with no loader restart. The extension waits until the loader’s log says
Loaded <name>, then reports the time.
Reload or full restart
Section titled “Reload or full restart”A normal deploy reloads only your plugin. Deploy (full restart) restarts Decky Loader instead, which also reloads the Steam UI. Use it when the plugin is not loaded yet; the first deploy of a new plugin always restarts the loader.
Deploy on change
Section titled “Deploy on change”Turn on Plugin → Auto-deploy on change (setting decky-toolkit.deploy.onChange). Changes to
dist/index.js, main.py or py_modules/**/*.py trigger a deploy shortly after the last change.
Keep pnpm run watch running so every save rebuilds the bundle.