Repository navigation
Releases: M15t/decky-egpu-helper
Release list
v0.2.3 - eGPU Helper
Fix
Clear stale helper installation errors when status polling confirms the Zapret2 helper is available. Previously, installing the helper from a terminal or Desktop Mode after a failed in-plugin installation could leave an outdated Helper setup message visible in Gaming Mode.
The UI now hides this outdated setup message for an available helper. Actual service failures remain visible, and setup errors are retained when the helper is still unavailable.
Update
Install decky-egpu-helper.zip using Decky's ZIP installation option. A working helper does not need reinstalling for this fix. Existing ON/OFF persistence is unchanged.
Validation
72 automated tests, TypeScript checks, frontend build and ZIP verification passed, including regression tests for external installation recovery and preserving runtime failures. Tests use mocked Linux services; this fix has not been validated in a live Gaming Mode session.
v0.2.2 - eGPU Helper
Changes
- Add Tools → Install helper to install the bundled Zapret2 helper directly from the plugin.
- Automatically detect the non-root Decky account. Linux handles administrator authentication through pkexec; the plugin never collects or stores your password.
- Keep status responsive during setup, prevent duplicate installation requests, and report cancelled authentication, unavailable authentication dialogs and installation failures.
- Preserve the ON/OFF setting across reboot and power cycles from v0.2.1.
Install
Download decky-egpu-helper.zip and install it using Decky's ZIP installation option. Open Tools → Install helper, approve the Linux administrator prompt, then turn DPI bypass ON if wanted. New helper installations default OFF.
The install button requires x86_64 Linux, pkexec and a working polkit authentication agent for the calling session, plus the helper's Python/systemd/nftables/kernel prerequisites. Gaming Mode or service-hosted Decky may not provide an authentication dialog. If no prompt is available, try Desktop Mode or follow the terminal setup in the included README. Missing nftables still requires installation through your distribution's package mechanism.
Existing helper installations are not overwritten. A working v0.2.1 helper does not need reinstalling for this UI update. Development v0.2.0 helper installations still require the migration described in the README.
Validation
69 automated tests, TypeScript checks, frontend build and ZIP/runtime checksum verification passed. Authentication, systemd and firewall behavior use mocked tests; the native authentication dialog, live Linux/Decky behavior and ISP effectiveness still need testing on the device. Decky remains non-root.
v0.2.1 - eGPU Helper
Changes
- Add a Zapret2 DPI bypass toggle for TCP HTTP/HTTPS in Tools.
- Remember ON/OFF across reboot and power cycles. The system service restores ON without opening Decky; OFF stays OFF.
- Show saved preference separately from actual runtime status and report service failures.
- Keep Decky non-root, with narrowly scoped start/stop permission for the dedicated helper service.
- Bundle the pinned upstream Zapret2 v1.0.5.2 runtime with SHA-256 verification and its license. No runtime downloads or automatic updates.
Install
Download decky-egpu-helper.zip and install using Decky's ZIP installation option.
The Zapret2 helper also requires one-time installation on x86_64 Linux. Extract the ZIP, open egpu-gamescope/zapret2, and run:
sudo /usr/bin/python3 install.py --user YOUR_DECKY_USERReplace YOUR_DECKY_USER with the non-root account running Decky. See the included README for nftables/systemd/polkit prerequisites, diagnostics and removal instructions.
If you installed the development 0.2.0 helper, remove it using the README instructions and install the new helper once; updating the ZIP alone does not update the privileged service. New installations default OFF; select ON to enable automatic restoration after reboot.
Validation and limits
62 automated tests, TypeScript checks, frontend build and ZIP/runtime checksum checks passed. Systemd and firewall tests use mocks; live Linux/Decky behavior, reboot restoration and ISP effectiveness still need device validation. The initial preset handles TCP ports 80/443, not QUIC or DNS, and is not a VPN. Checksums pin runtime bytes; they are not a complete security audit.
v0.1.8 - eGPU Helper
Changes
- Put Connection and eGPU details on the next line under the status label.
- Use Field
childrenLayout="below"instead ofdescription, so dock/USB/link no longer stack as leftover left-column text. - Keep Refresh and Restart full width. Backlight toggle still has no subtitle.
Install on your handheld
Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode.
Validation
37 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed.
v0.1.7 - eGPU Helper
Changes
- Rename the first section from Thunderbolt / USB4 to Connection.
- Status is the only strong line. Host, USB generation, and link sit on one muted description.
- Keep Refresh and Restart full width.
- Drop all subtitle copy under Force off internal backlight.
Install on your handheld
Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode.
Validation
37 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed.
v0.1.6 - eGPU Helper
Changes
- Reorder the QAM: Thunderbolt first, eGPU plus Restart second, Tools last.
- Thunderbolt leads with Authorized. Dock name, link, and power sit under it. GPU ready lives only in eGPU.
- Shorten GPU names to the SKU (
RX 6800 XT) instead of the full lspci string. - Add a Tools toggle to force the internal panel backlight off. Preference is remembered, reapplies on plugin start, and keeps writing
0while the toggle is on. It does not auto-restore on unplug. - The plugin stays non-root and skips any backlight node on
1002:73ff. Permission or missing-node errors disable the toggle instead of claiming success.
Install on your handheld
Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode.
Validation
37 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed. Live backlight behavior still needs verification on Ally hardware.
v0.1.5 - eGPU Helper
Changes
- Fill the eGPU name from
lspci -Dnnwhen sysfs has no marketing label. - Match only PCI ID
1002:73ff. The Ally iGPU is ignored. - Cache that name for 5 seconds so the 2-second PCI poll does not spam lspci.
- If lspci has no matching line, the panel still shows
GPUinstead of inventing a model.
Install on your handheld
Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode.
Typical SteamOS name looks like Navi 21 [Radeon RX 6800/6800 XT / 6900 XT], not a store SKU.
Validation
32 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed. Live Decky UI still needs verification on Ally hardware.
v0.1.4 - eGPU Helper
Changes
- Show the GPU name from sysfs when available, not PCI IDs.
- Distinguish GPU ready, On PCI · Driver not ready, and GPU not on PCI.
- Thunderbolt line is
Authorized · GPU readyorAuthorized · GPU not on PCI. - Show compact link speed (
40 Gb/s, or different RX/TX) and Power only if boltctl reports them. - Rename the action to Restart. Thunderbolt heading is Thunderbolt / USB4.
Install on your handheld
Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode.
GPU ready is PCI + amdgpu, not proof Gamescope is rendering on the eGPU. Power is omitted when boltctl has no power field.
Validation
30 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed. Live Decky UI still needs verification on Ally hardware.
v0.1.3 - eGPU Helper
Changes
- Parse
boltctltype/name/uuid/statusanywhere on a line, including SteamOS C-locale?prefixes, CRLF, and junk before the key. - Ignore timestamp lines such as
authorized:andconnected:. - If parsing still fails, show a short raw-output preview instead of only "Unrecognized boltctl output".
- Refresh still loads boltctl on demand and runs
lspci -Dnnafter an authorized Thunderbolt device. It does not restart Gamescope.
Install on your handheld
Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode.
v0.1.2 could show PCI Connected while Thunderbolt said Unrecognized. After this install, Refresh should show Intel TBT5 Dock as Authorized. If it still fails, send the preview text from the plugin.
Validation
28 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed. Live Decky UI and display hotplug still need verification on Ally hardware.
v0.1.2 - eGPU Helper
Changes
- Parse SteamOS/C-locale
boltctl listoutput that replaces tree characters with?. - Stop automatic boltctl polling. Status loads on panel open and when you press Refresh.
- Refresh runs
/usr/bin/lspci -Dnnafter a Thunderbolt device isauthorized, matching the PCI poke that makes this eGPU appear. It does not restart Gamescope. - PCI scan errors are shown separately and do not hide Thunderbolt status.
Install on your handheld
Download decky-egpu-helper.zip below and install it using the ZIP installation option in Decky developer mode. No pnpm or local build is needed.
Validation
26 mocked backend tests, TypeScript checks, frontend build, and ZIP integrity checks passed. Live Decky UI, display hotplug, and Gamescope restart still need verification on Ally hardware.
Authorized Thunderbolt is not proof the GPU is enumerating. Restarting Gamescope may close running games. Save first.