Fedora splits Transmission into desktop, terminal, and daemon packages, so the right install command depends on whether you want a GTK window, a Qt desktop build, one-off CLI downloads, or a browser-managed background service. If you want to install Transmission on Fedora, the default repositories already carry those roles without adding a third-party RPM source.
Flathub also ships the desktop app for readers who prefer Flatpak-managed updates or use a Flatpak-first Fedora desktop. The Fedora RPM packages remain the cleanest default on mutable Workstation, Server, and minimal installs because they also cover CLI and daemon workflows.
Install Transmission on Fedora
Fedora does not need a third-party repository for Transmission. The default packages cover the GTK client, the Qt build, the CLI tools, and the daemon, so the main choice is which interface you want to run.
The DNF package methods below target mutable Fedora Workstation, Server, and minimal installs. On Fedora Atomic desktops, use the Flatpak desktop method unless you deliberately manage host packages with rpm-ostree.
| Method | Package or App ID | Update behavior | Best fit |
|---|---|---|---|
| Fedora GTK build | transmission-gtk | DNF-managed updates | GNOME and other GTK desktops |
| Fedora Qt build | transmission-qt | DNF-managed updates | KDE Plasma and other Qt desktops |
| Fedora CLI tools | transmission-cli | DNF-managed updates | One-off terminal downloads and torrent inspection |
| Fedora daemon | transmission-daemon | DNF-managed updates | Headless systems and web-based control |
| Flathub desktop build | com.transmissionbt.Transmission | Flatpak-managed updates | Fedora Atomic desktops and Flatpak-first users |
Most desktop users should start with transmission-gtk. Fedora’s transmission package is a GTK metapackage, so the explicit package names below help you avoid installing the wrong interface. Use transmission-daemon when the client needs to stay running in the background, and pick Flathub when you specifically want the Flatpak build.
Update Fedora Before Installing Transmission
Refresh package metadata and apply any pending Fedora updates first:
sudo dnf upgrade --refresh
These commands use
sudofor package management, services, and firewall changes. If your account does not have sudo access yet, follow the guide to add a user to sudoers on Fedora before continuing.
Install Transmission GTK on Fedora
The GTK build is the default choice for Fedora Workstation and other GTK-based desktops. The package installs a launcher named Transmission in Activities.
sudo dnf install transmission-gtk -y
Verify the GTK client command is available:
command -v transmission-gtk
/usr/bin/transmission-gtk
Install Transmission Qt on Fedora
The Qt build fits better on KDE Plasma and other Qt desktops. Fedora exposes this launcher as Transmission (Qt) in Activities.
sudo dnf install transmission-qt -y
Verify the Qt client command is available:
command -v transmission-qt
/usr/bin/transmission-qt
Install Transmission CLI Tools on Fedora
The CLI package is useful when you want to inspect a torrent file, kick off a one-off download, or work entirely from a shell without opening the desktop client. Unlike transmission-daemon, it runs in the foreground and exits when that download session ends.
sudo dnf install transmission-cli -y
Verify that one of the CLI tools is available:
command -v transmission-show
/usr/bin/transmission-show
The same package also gives you transmission-cli, which can pull from a torrent file or magnet link directly from the terminal:
transmission-cli ~/Downloads/example.torrent -w ~/Downloads
transmission-cli "magnet:?xt=urn:btih:..." -w ~/Downloads
Install Transmission from Flathub on Fedora
Use the Flathub build when you want the desktop client through Flatpak instead of Fedora RPM packages.
Fedora Workstation includes Flatpak by default. On Server or minimal installs, run
sudo dnf install flatpakfirst. The commands below keepsudobecause Flathub is being added at system scope.
Flathub currently lists the Transmission app as unverified and grants it broad host filesystem access, so choose this method for Flatpak packaging and update behavior rather than stronger isolation.
Add the Flathub remote if it is not configured yet:
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Verify that the Flathub remote is listed at system scope:
flatpak remotes --system --columns=name | grep -Fx flathub
flathub
Install the Flathub build of Transmission:
sudo flatpak install flathub com.transmissionbt.Transmission
Verify that the system Flatpak install comes from Flathub:
flatpak info --system --show-origin com.transmissionbt.Transmission
flathub
Launch Transmission on Fedora
After installation, Fedora can launch Transmission either from Activities or from the terminal.
Launch Transmission from Activities
Search for Transmission in Activities to open the GTK client or the Flatpak build. If you installed the Qt package, Activities also shows a separate launcher named Transmission (Qt).


Launch Transmission from the Terminal
Use the command that matches the build you installed:
transmission-gtk &
transmission-qt &
flatpak run com.transmissionbt.Transmission &
The trailing ampersand keeps your shell prompt free after the app opens. The daemon setup below is separate because transmission-daemon runs as a system service rather than as a desktop window.
Install and Configure Transmission Daemon on Fedora
Use transmission-daemon when Transmission needs to keep running after you close your terminal or when you want the built-in web interface for remote control.
Before opening the web interface to your LAN, turn on RPC authentication and restrict the RPC whitelist to trusted client addresses. The daemon can run locally without these changes, but network access needs an explicit password and address boundary.
Install and Start Transmission Daemon
The daemon package creates a dedicated transmission system user and stores its working files under /var/lib/transmission.
sudo dnf install transmission-daemon -y
sudo systemctl enable --now transmission-daemon
Verify that the service is active:
systemctl is-active transmission-daemon
active
Create Download Directories for Transmission Daemon
Create the download directories before you change the daemon settings so the transmission user already owns them. The example keeps downloads under /var/lib/transmission, the daemon package’s Fedora state directory.
sudo install -d -o transmission -g transmission /var/lib/transmission /var/lib/transmission/Downloads /var/lib/transmission/Incomplete
Verify the ownership before continuing:
stat -c '%U %G %n' /var/lib/transmission /var/lib/transmission/Downloads /var/lib/transmission/Incomplete
transmission transmission /var/lib/transmission transmission transmission /var/lib/transmission/Downloads transmission transmission /var/lib/transmission/Incomplete
Edit Transmission Daemon Settings
Stop the daemon before editing settings.json. If you leave the service running, it can overwrite your changes when it exits.
sudo systemctl stop transmission-daemon
sudo nano /var/lib/transmission/.config/transmission-daemon/settings.json
Update the download paths, enable RPC authentication, and allow your LAN in the whitelist:
"download-dir": "/var/lib/transmission/Downloads",
"incomplete-dir": "/var/lib/transmission/Incomplete",
"incomplete-dir-enabled": true,
"rpc-authentication-required": true,
"rpc-username": "fedora",
"rpc-password": "choose-a-strong-password",
"rpc-whitelist": "127.0.0.1,::1,192.168.1.*",
"rpc-whitelist-enabled": true,
Replace
192.168.1.*with your own LAN range. Transmission rewritesrpc-passwordinto a hash the next time the daemon starts, so seeing a long brace-prefixed value afterward is normal.
Restart Transmission Daemon and Verify the Web UI
Start the service again after saving the file:
sudo systemctl start transmission-daemon
Verify that the web interface answers with HTTP 200 when you use the credentials you just set. The curl command in Linux is useful here because it can return the HTTP status without opening a browser:
curl -s -u 'fedora:your-password' -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9091/transmission/web/
200
Open the Transmission Web UI on Fedora
Replace your-password with the RPC password you set in settings.json. In a browser, open http://localhost:9091/transmission/web/ on the same machine or http://YOUR-FEDORA-IP:9091/transmission/web/ from another system on your LAN.
Open Firewalld Ports for Transmission Daemon
Open the web interface and peer ports only if other systems need to reach this host. If you still need to set up the firewall service itself, follow the guide to install firewalld on Fedora first.
Check the firewalld zones first. Use the zone that contains the network interface clients will reach; on many Fedora systems that is the default zone, but custom installs can differ.
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --get-active-zones
Set the zone variable, then add the web interface and peer ports. Do not open port 9091 on an untrusted network; keep the RPC whitelist and password aligned with the systems that should control the daemon.
If --get-active-zones shows the client-facing interface in a different zone, replace the assignment with that zone name before adding, querying, or removing the rules.
firewall_zone=$(sudo firewall-cmd --get-default-zone)
sudo firewall-cmd --permanent --zone="$firewall_zone" --add-port=9091/tcp
sudo firewall-cmd --permanent --zone="$firewall_zone" --add-port=51413/tcp
sudo firewall-cmd --permanent --zone="$firewall_zone" --add-port=51413/udp
sudo firewall-cmd --reload
Verify that the permanent rules are present:
firewall_zone=$(sudo firewall-cmd --get-default-zone)
sudo firewall-cmd --permanent --zone="$firewall_zone" --query-port=9091/tcp
sudo firewall-cmd --permanent --zone="$firewall_zone" --query-port=51413/tcp
sudo firewall-cmd --permanent --zone="$firewall_zone" --query-port=51413/udp
yes yes yes
To close these ports later, remove the same permanent rules and reload firewalld:
firewall_zone=$(sudo firewall-cmd --get-default-zone)
sudo firewall-cmd --permanent --zone="$firewall_zone" --remove-port=9091/tcp
sudo firewall-cmd --permanent --zone="$firewall_zone" --remove-port=51413/tcp
sudo firewall-cmd --permanent --zone="$firewall_zone" --remove-port=51413/udp
sudo firewall-cmd --reload
Control Transmission Daemon with transmission-remote
The daemon install also pulls in transmission-common, which includes transmission-remote for terminal-side management.
transmission-remote 127.0.0.1:9091 -n 'fedora:your-password' -l
ID Done Have ETA Up Down Ratio Status Name Sum: None 0.0 0.0
You can add either a torrent file or a magnet link the same way:
transmission-remote 127.0.0.1:9091 -n 'fedora:your-password' -a ~/Downloads/example.torrent
transmission-remote 127.0.0.1:9091 -n 'fedora:your-password' -a "magnet:?xt=urn:btih:..."
Update Transmission on Fedora
Fedora RPM packages update through DNF, while the Flathub build updates through Flatpak.
Update Fedora Packages for Transmission
sudo dnf upgrade --refresh
Update the Transmission Flatpak
sudo flatpak update com.transmissionbt.Transmission
Troubleshoot Transmission on Fedora
Fix Transmission Web UI 403 Forbidden on Fedora
If the web interface opens locally but returns 403 Forbidden from another machine, the requesting IP is not inside rpc-whitelist.
The error looks like this:
curl -s http://YOUR-FEDORA-IP:9091/transmission/web/
<h1>403: Forbidden</h1>
Check the current whitelist values first:
sudo grep -E 'rpc-whitelist|rpc-whitelist-enabled' /var/lib/transmission/.config/transmission-daemon/settings.json
"rpc-whitelist": "127.0.0.1,::1", "rpc-whitelist-enabled": true,
Add your LAN range to rpc-whitelist, then start the daemon again:
sudo systemctl stop transmission-daemon
sudo nano /var/lib/transmission/.config/transmission-daemon/settings.json
sudo systemctl start transmission-daemon
After the whitelist includes the client subnet, verify remote access with the credentials you configured:
curl -s -u 'fedora:your-password' -o /dev/null -w "%{http_code}\n" http://YOUR-FEDORA-IP:9091/transmission/web/
200
Fix Transmission Web UI 401 Unauthorized on Fedora
If the daemon answers but refuses the login, the credentials in settings.json no longer match what you are sending.
An unauthenticated request returning 401 only means RPC authentication is enabled. To confirm a credential mismatch, test the username and password that are failing:
curl -s -u 'fedora:wrong-password' -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9091/transmission/web/
401
Confirm that RPC authentication is enabled and which username is stored:
sudo grep -E 'rpc-authentication-required|rpc-username' /var/lib/transmission/.config/transmission-daemon/settings.json
"rpc-authentication-required": true, "rpc-username": "fedora",
Reset the username or password, then start the daemon again:
sudo systemctl stop transmission-daemon
sudo nano /var/lib/transmission/.config/transmission-daemon/settings.json
sudo systemctl start transmission-daemon
Transmission hashes the new password when it starts, but the login should succeed immediately afterward:
curl -s -u 'fedora:your-password' -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9091/transmission/web/
200
Remove Transmission from Fedora
Use the removal path that matches the method you installed.
Remove Fedora Packages for Transmission
If you installed Fedora RPM packages, build the removal list from the packages that are actually installed. This avoids failing on variants you did not install while still removing the shared transmission-common package when no Transmission package needs it.
mapfile -t transmission_packages < <(rpm -qa --qf '%{NAME}\n' 'transmission*' | sort -u)
if ((${#transmission_packages[@]})); then
sudo dnf remove "${transmission_packages[@]}"
else
echo "No Fedora Transmission packages are installed."
fi
Verify that the Fedora packages are gone:
rpm -qa 'transmission*' | grep . || echo "No Fedora Transmission packages are installed."
No Fedora Transmission packages are installed.
Remove the Transmission Flatpak
Remove the system-wide Flatpak app first, then clear unused runtimes if Flatpak reports any:
sudo flatpak uninstall com.transmissionbt.Transmission
sudo flatpak uninstall --unused
Verify that the Flatpak app is no longer installed:
flatpak list --system --app --columns=application | grep -Fx com.transmissionbt.Transmission || echo "NOT_INSTALLED"
NOT_INSTALLED
Delete Remaining Transmission Data
The following commands permanently delete Fedora desktop settings, daemon state, and Flatpak app data for the current account. Back up anything you want to keep first, for example with
sudo cp -a /var/lib/transmission ~/transmission-backup-daemonif you need to preserve the daemon queue and session files.
Removing the packages and Flatpak app can still leave these paths behind, so clean them up manually if you want a full reset:
rm -rf ~/.config/transmission
rm -rf ~/.var/app/com.transmissionbt.Transmission
sudo rm -rf /var/lib/transmission
Verify that the remaining data directories are gone:
test -d ~/.config/transmission && echo present || echo missing
test -d ~/.var/app/com.transmissionbt.Transmission && echo present || echo missing
sudo test -d /var/lib/transmission && echo present || echo missing
missing missing missing
Conclusion
Transmission is installed on Fedora as the interface that fits your workflow: GTK or Qt for desktop use, CLI tools for one-off terminal work, Flatpak for a Flathub-managed desktop app, or the daemon for web-based background transfers. Keep RPC authentication, the whitelist, and firewalld rules aligned before exposing the daemon beyond the local machine.


Formatting tips for your comment
You can use basic HTML to format your comment. Useful tags currently allowed in published comments:
<code>command</code>command<strong>bold</strong><em>italic</em><blockquote>quote</blockquote>