A Decky Loader plugin for PS5 Linux: fan target temperature, live temperatures, CPU governor, indicator LED presets and the chassis buzzer, all from the Quick Access Menu.
Run this on the PS5 as your normal user (not root):
curl -fsSL https://raw.githubusercontent.com/NotHavocc/ps5-hwcon-plugin/main/install.sh | bashThe installer:
- checks for Decky and the PS5 kernel interfaces
- clones this repo and builds the plugin. If Node.js isn't installed, as on stock Bazzite, it builds inside a podman or docker container.
- installs the plugin to
~/homebrew/plugins/ps5-hardware-control - restarts Decky and waits for the plugin to load
Run the same command again to update. Your settings are kept.
To uninstall:
curl -fsSL https://raw.githubusercontent.com/NotHavocc/ps5-hwcon-plugin/main/install.sh | bash -s -- --uninstallThis skips the build, so you don't need git, Node.js or podman.
- Download
ps5-hwcon-plugin.zipfrom the Releases page, or build it yourself withnpm run zip(it lands inout/). - In the Decky menu, open Settings (the gear icon).
- Under General, turn on Developer mode.
- Open the Developer section and choose Install Plugin from ZIP File, then pick the zip.
To update, install the newer zip the same way. Your settings are kept.
Decky can download the release zip itself, so you don't have to copy a file onto the PS5.
-
In the Decky menu, open Settings (the gear icon).
-
Under General, turn on Developer mode.
-
Open the Developer section and choose Install Plugin from URL.
-
Enter this URL and choose Install:
https://github.com/NotHavocc/ps5-hwcon-plugin/releases/latest/download/ps5-hwcon-plugin.zip
This link always points to the newest release, so entering it again updates the plugin. Your settings are kept. To install a specific version, replace latest/download with download/v1.1.0 (or another release tag).
- A PS5 running Linux with the ps5-linux-patches kernel booted. The plugin only talks to the sysfs interfaces that kernel adds.
- Decky Loader 3.0 or newer. On Bazzite:
ujust setup-decky. git, plus either Node.js 18+ or podman/docker for the build.
- Temperatures: live CPU (
k10temp) readings, plus any other hwmon sensors, refreshed every 2 s. - Presets: Quiet 85 °C, Default 80 °C, Balanced 72 °C, Cool 65 °C and Max Cooling 50 °C. A lower target spins the fan up earlier and louder.
- Manual Target: any target from 40 to 90 °C.
- Restore on Startup: re-applies your last target when Decky starts. The kernel resets it to 80 °C on every boot.
- Thermal Guard: when the CPU reaches the Overheat Threshold (80–100 °C, default 95), the fan switches to Max Cooling. Your target comes back once the CPU is 10 °C cooler.
- Overheat Alarm: plays the console's error beep once when the CPU reaches the threshold, and re-arms after it cools down.
Thermal Guard and Overheat Alarm run in the background, even with the menu closed.
- Governor: lists every cpufreq governor the kernel offers (
scaling_available_governors) and applies your choice to all CPUs. Only governors built into or loaded by the kernel are shown. - Status: active governor, average and peak clock, hardware range and the cpufreq driver, refreshed every 2 s. If CPUs disagree, it shows Mixed.
- Restore on Startup: re-applies your last governor when Decky starts.
With an EPP driver such as amd-pstate-epp, the kernel only offers Performance and Powersave. The firmware still manages clocks under Powersave.
- Quick buttons for Off, White Bright, Blue Rich, Purple, Orange Breathe and Pink Breathe.
- A searchable list of every preset the kernel exposes.
- Loop Animations: the firmware plays breathe and pulse animations once. This option replays them on an interval you choose (2–30 s), and keeps going in the background.
- Short, Error and Long test beeps, plus Stop.
- rmuxnet/ps5-linux-patches for the kernel drivers this plugin builds on.
- Decky Loader.



