How to Update Decky Loader on Steam Deck (Easy Guide)
You power on your handheld, press the Quick Access button (
...), and discover your custom UI themes, ProtonDB badges, and custom battery profiles are gone. Every seasoned tinkerer has experienced this exact moment after a major SteamOS release.Valve moves fast with system updates, frequently patching underlying system libraries, rewriting frontend JavaScript components, or refreshing Chromium Embedded Framework (CEF) builds. Because Decky Loader hooks directly into the Steam client's Quick Access Menu, system-level updates often break runtime hooks or disable the service daemon entirely.
Keeping Decky Loader updated ensures your favorite utilities stay functional without destabilizing your handheld. Here is the definitive, field-tested guide to updating, repairing, and maintaining Decky Loader across all branches of SteamOS.
The Architecture: Why Decky Loader Needs Frequent Updates
Decky Loader operates via a clever two-part client-server model tailored specifically for Valve's immutable Linux platform. Understanding how these two distinct layers interact makes troubleshooting trivial when an update goes sideways.
+-------------------------------------------------------------+
| Steam Client UI |
| (Chromium Embedded Framework / React Quick Access Menu) |
+-------------------------------------------------------------+
|
| Inject Hooks (JavaScript / CSS)
v
+-------------------------------------------------------------+
| Decky Frontend Loader |
| (Tab Injection, Quick Access Plugin Menu Manager) |
+-------------------------------------------------------------+
|
| UNIX Domain Socket (RPC)
v
+-------------------------------------------------------------+
| Decky Backend Daemon |
| (Python Plugin Manager Systemd Service) |
+-------------------------------------------------------------+
|
| Subprocess / Filesystem Calls
v
+-------------------------------------------------------------+
| SteamOS System Utilities |
| (Power Profiles, Systemctl, Bluetooth, Files) |
+-------------------------------------------------------------+
1. The Backend Python Daemon (decky)
The core backend runs as a standalone
systemd service with root privileges. It listens on a local UNIX domain socket and handles the heavy lifting, including system-level privilege escalation, file system writes outside the standard sandbox, and executing system commands.Because SteamOS employs an immutable, read-only root file system via A/B partition swapping, the Decky daemon isolates its binaries, runtime assets, and plugins inside
/home/deck/homebrew/. This structure prevents system wipes from erasing your configuration during standard OS upgrades.2. The Frontend UI Injector
The client side injects a custom React component into Steam’s Quick Access Menu via Chromium debugging interfaces. Whenever Valve updates SteamOS—such as refactoring layout components or updating internal UI classes—the injection hooks may fail to resolve DOM target containers.
When you trigger a Decky update, the updater replaces both the backend Python service binaries and the frontend injection script with builds adapted to Valve's latest client changes.
Method 1: The Native In-Deck Update (Gaming Mode)
If your Quick Access Menu still displays the plug icon, updating Decky Loader directly from the couch takes less than thirty seconds.
- Press the Quick Access Menu button (
...) on the right side of your Steam Deck. - Scroll down and highlight the Decky plugin icon (the electrical plug).
- Select the Settings gear icon located at the top-right corner of the Decky panel.
- Navigate to the General tab.
- Locate the Check for Updates button under the Decky Version section.
- If an update is available, click Install Update.
- Allow the installer 10 to 15 seconds to download the payload, restart the background daemon, and inject the refreshed UI layer.
Quick Access (...) -> Decky Plug Icon -> Settings (Gear) -> General -> Check for Updates
Once the process finishes, the Quick Access menu automatically refreshes. You do not need to reboot your Steam Deck.
Method 2: The Desktop Mode Installer Script
When a major SteamOS update completely breaks the UI hook, the plugin icon vanishes from the Quick Access Menu entirely. Because the frontend cannot load, you cannot trigger the in-deck updater. The most reliable fix is running the official installer script inside Desktop Mode.
- Press the physical STEAM button, go to Power, and select Switch to Desktop.
- Open your web browser and navigate to the official Decky repository (
[github.com/SteamDeckHomebrew/decky-loader](https://github.com/SteamDeckHomebrew/decky-loader)). - Scroll to the README and click the Download button to grab the latest
decky_installer.desktopfile. - Move
decky_installer.desktopto your Desktop, double-click it, and select Execute. - When prompted, choose your desired release channel (Release for daily stability or Prerelease for experimental fixes).
- Enter your
sudoadministrative password when requested. If you have not created one yet, open Konsole, runpasswd, and set a password first. - Let the terminal process run until it displays a completion alert.
- Double-click the Return to Gaming Mode shortcut on the Desktop.
Pro Tip: If the installer script freezes while downloading binaries, your Deck's DNS resolver may be struggling with GitHub's CDN over Wi-Fi. In Desktop Mode, open your active Wi-Fi connection settings, switch IPv4 DNS from Automatic to Manual, and set the servers to1.1.1.1and8.8.8.8. Rerun the installer script to bypass network timeouts instantly.
Method 3: The Power-User CLI Pipeline (SSH / Konsole)
For developers and power users managing their handheld over local networks, updating Decky via the command-line interface (CLI) is the fastest and cleanest approach. It eliminates the overhead of switching to Desktop Mode.
Bash
# Connect to your Deck via SSH
ssh deck@steamdeck.local
# Pull and execute the official bootstrap script directly to update/reinstall
curl -L https://github.com/SteamDeckHomebrew/decky-installer/releases/latest/download/install_release.sh | sh
If you prefer testing experimental features or need bleeding-edge compatibility with SteamOS Beta/Preview builds, install the latest pre-release build instead:
Bash
# Download and install the latest Pre-release branch
curl -L https://github.com/SteamDeckHomebrew/decky-installer/releases/latest/download/install_prerelease.sh | sh
Once the script outputs
Done!, reload the Decky service immediately without restarting your game session:Bash
# Restart the Decky systemd background service
sudo systemctl restart plugin_loader.service
How to Update Individual Decky Plugins
Updating Decky Loader updates the core loader framework, but individual plugins (like CSS Loader, Animation Changer, or SteamGridDB) maintain their own release cycles. Outdated individual plugins are the primary cause of UI freezing, slow navigation, and rapid drain that impacts your overall Steam Deck battery life .
+-----------------------------------------------------------------+
| Plugin Store Panel |
+-----------------------------------------------------------------+
| [Installed Plugins] |
| * CSS Loader ............................ [ Update Available ] |
| * SteamGridDB ........................... [ Up to Date ] |
| * ProtonDB Badges ....................... [ Update Available ] |
+-----------------------------------------------------------------+
| [Action] -> Tap "Update All" or cycle through individual items |
+-----------------------------------------------------------------+
- Open the Quick Access Menu (
...) and click the Decky icon. - Select the Store icon (the shopping bag) located in the upper menu header.
- Switch over to the Installed tab.
- Plugins with available updates will display an Update button next to their name.
- Tap Update on each plugin or select Update All.
- If a plugin requires a CSS reload or helper restart, toggle the Quick Access Menu closed and open it again.
Release Channels: Stable vs. Prerelease vs. Git
Decky Loader provides three distinct deployment channels. Choosing the right channel prevents unexpected downtime based on how you configure your Steam Deck.
| Channel | Target User | Valve OS Branch Match | Update Frequency | Stability Level |
| Stable (Release) | Everyday gamers, plug-and-play setups | SteamOS Stable | Monthly / Bi-monthly | High (Zero breaking API calls) |
| Prerelease | Tinkers, beta testers, power users | SteamOS Beta / Preview | Weekly / Bi-weekly | Moderate (Occasional plugin errors) |
| Git (Source) | Plugin developers, custom ROM builders | SteamOS Main / Developer | Continuous (Per commit) | Low (Bleeding-edge dependencies) |
Switching Release Channels
If Valve drops a major system update that breaks Decky on the Stable branch, you can temporarily switch to the Prerelease channel to grab rapid community compatibility patches:
- Open the Decky Settings menu via the Quick Access tray.
- Select the General tab.
- Under Release Channel, tap the dropdown menu and select Prerelease.
- Tap Check for Updates immediately below the dropdown.
- Confirm the installation and allow the UI to reload.
Comparing Decky Loader Update Methods
| Evaluation Metric | Gaming Mode Updater | Desktop Installer Script | Terminal CLI / SSH |
| Setup Effort | Minimal (Zero extra peripherals) | Moderate (Requires Desktop Mode) | Low (Fastest over network) |
| Success Rate on Broken UI | 0% (Fails if menu disappears) | 99% (Restores corrupted hooks) | 100% (Direct binary override) |
| Time to Complete | ~30 seconds | 2 to 3 minutes | ~15 seconds |
| Sudo Password Needed? | No | Yes | Yes |
| Target Use Case | Routine minor version bumps | Post-OS update recovery | Remote admin & headless setups |
Troubleshooting: What to Do When Decky Disappears
When things do not go according to plan, use these targeted diagnostic steps to resolve common failures.
1. The Disappearing Icon After a SteamOS Update
This issue is common when comparing handheld ecosystems like the Cyberpunk 2077 Switch 2 vs Steam Deck experience, where console-level polish meets PC-style maintenance. SteamOS updates routinely recreate the system user runtime or switch active boot partitions, temporarily disabling third-party system daemons.
- The Fix: Switch to Desktop Mode, run the installer script, and choose your release branch. This command reinstalls the systemd unit file into
/etc/systemd/system/without deleting your existing plugin configurations in/home/deck/homebrew/plugins/.
2. The Endless "Checking for Updates" Spinner
If the in-deck updater hangs indefinitely on a loading spinner, the local SQLite database cache for the plugin repository has likely suffered a read conflict.
Bash
# Stop the loader service
sudo systemctl stop plugin_loader.service
# Remove old cache files and logs
rm -rf /home/deck/homebrew/services/.loader.lock
rm -rf /home/deck/homebrew/logs/*
# Restart the service
sudo systemctl start plugin_loader.service
Pro Tip: If a specific plugin crashes your entire Steam Deck UI upon boot, you do not need to uninstall Decky completely. Open Dolphin file manager in Desktop Mode, navigate to/home/deck/homebrew/plugins/, and delete only the folder of the offending plugin. Restart your system, and the core loader will spin up normally.
Practical Maintenance Checklist for Steam Deck Owners
To avoid emergency troubleshooting sessions before boarding a flight or heading out for a commute, follow these best practices:
- Update Decky before updating SteamOS: When a new system update prompt appears, open Decky first, install any pending loader updates, and then install Valve's OS update.
- Keep your
sudopassword backed up: Store your administrative password in your password manager. You cannot run Desktop recovery scripts or SSH commands without it. - Audit your active plugins quarterly: Remove unused or abandoned plugins. Legacy extensions targeting older CEF APIs introduce input latency in the Quick Access Menu.
- Match your update channels: If your Steam Deck is on the SteamOS Stable channel, keep Decky on the Stable channel. If you run SteamOS Preview, always switch Decky to the Prerelease channel.
Frequently Asked Questions
Will updating Decky Loader delete my installed plugins and settings?
No. Decky Loader keeps its binary execution files separated from user configurations. Your custom themes, sound packs, and plugin data are stored in persistent subdirectories (
/home/deck/homebrew/data/ and /home/deck/homebrew/settings/), which are preserved during updates.Can updating Decky Loader brick my Steam Deck?
No. Decky Loader executes entirely within user space and unprivileged system daemon boundaries. It does not flash BIOS firmware, edit bootloaders, or modify your internal storage partition layouts. If a fatal crash occurs, deleting the
/home/deck/homebrew folder completely removes the software.Why does Decky Loader break almost every time SteamOS updates?
Decky injects code into the Steam frontend interface via the Chromium Embedded Framework. When Valve updates the Steam client, internal stylesheet class names, API endpoints, and layout trees change. Decky must update its injection scripts to match these updated element targets.
Can I update Decky Loader without a Wi-Fi connection?
No. Updating requires an active internet connection to download the compiled binaries and plugin assets from GitHub. If you are traveling without Wi-Fi, your current version will continue operating offline, though some cloud-dependent plugins (like SteamGridDB) will pause data fetching until you reconnect.
Handheld Modding Without the Headaches
Decky Loader bridges the gap between a locked-down console experience and the raw freedom of PC hardware. While routine system maintenance is part of the territory when managing a portable Linux machine, keeping your loader updated ensures a fast, reliable, and deeply customized handheld gaming setup.
Whether you run a quick update via Gaming Mode or automate the process through terminal scripts, staying current with the latest releases keeps your custom plugins active, efficient, and ready for your next session.
