Rootless background Transmission torrent client manager for Bazzite and SteamOS.
Decky Torrent is a rootless background client execution manager for the Transmission torrent daemon, designed as a plugin for Decky Loader on SteamOS and Bazzite. The plugin orchestrates a headless Transmission container inside rootless Podman and exposes a responsive configuration interface and connection URL overlay directly within the SteamOS Gaming Mode Quick Access Menu (QAM).
- No Root Required: Manages a headless Transmission daemon inside a rootless Podman container (
decky-torrent), avoiding any modification of immutable system layers. - SELinux Compatibility: Enforces strict
:Zflag bound volume mappings to ensure proper host-to-container access without SELinux violations.
- State-aware Status Indicator: See if the Transmission container is Running, Stopped, or Missing at a glance.
- Quick Action Controls: Start, Stop, and Restart the container daemon directly from the SteamOS Gaming Mode Quick Access Menu (QAM).
- Remote Control Overlay: Displays your remote control access URL (e.g.,
http://<your-deck-ip>:9091) directly in the QAM for easy reference. - Web UI & Connection Details: Quick access to connect via browser or remote Transmission apps.
- Internal Storage (SSD): Home directory (
~) mapped to/home_dirinside the container. - Removable Media: Removable media storage (
/run/media) mapped to/mediainside the container, granting direct access to SD Cards and external USB drives.
When adding or configuring torrent downloads inside the Transmission Web UI, use the following paths to direct files to the correct physical location:
| Host Location | Container Path | Usage / Example |
|---|---|---|
Internal SSD (~) |
/home_dir/... |
Route downloads to /home_dir/Downloads/ |
SD Cards & USBs (/run/media) |
/media/... |
Route downloads to /media/primary/ or /media/my_external_drive/ |
(Coming Soon / Available in the Decky Store)
- Download the latest release
.zipfrom the Releases page. - Open Decky Loader > Settings > Developer > Install from Zip.
- Select the downloaded Zip file (do not extract it!).
- Restart Decky Loader if prompted.
- Node.js (v16.14+)
- pnpm (v9+)
- SSH enabled on your target Bazzite/SteamOS device.
Pull in the required React modules and run the compilation to generate the frontend bundle:
pnpm install
pnpm run buildTo deploy the plugin over the network, your development computer needs SSH access to your gaming machine:
- Open the terminal on your Bazzite/SteamOS machine.
- Set a password for the default user:
passwd
- Enable and start the SSH daemon:
sudo systemctl enable --now sshd - Find the device's IP address (Settings -> Internet -> Connection Details).
Open or create .vscode/settings.json and configure it with your Bazzite/SteamOS machine credentials:
{
"deckip" : "192.168.x.xxx",
"deckport" : "22",
"deckuser" : "deck",
"deckpass" : "xxxx",
"deckkey" : "",
"deckdir" : "/home/deck",
"pluginname": "decky-torrent",
"isDevModeEnabled": "false"
} This repository includes configured VS Code tasks to automate build, package, network copy, and plugin reload.
- Open the project in VS Code.
- Open the Command Palette (
Cmd+Shift+P/Ctrl+Shift+P). - Select Tasks: Run Task and choose:
setup: Downloads the local Decky CLI compiler tool and validates tools.builddeploy: Compiles the TSX frontend, packages the plugin assets, uploads them to your device via SSH/rsync, and restarts the Decky Loader daemon to apply the updates.
If your development machine has a container engine installed, you can use the official Decky build compiler:
# Build TSX frontend
pnpm run build
# Package with Decky CLI (outputs to ./out/)
./cli/decky plugin buildLicensed under the BSD 3-Clause License. See LICENSE for details.
- Author: DozeLabs
- Framework: Decky Loader
- Container Image: linuxserver/transmission
