Transmission is a light-weight and cross-platform BitTorrent client. It is the default BitTorrent client in many Linux distributions.
- 1 Installation
- 2 Configuring the GUI version
- 3 Transmission-daemon and CLI
- 4 See also
There are several options in official repositories:
- CLI, and web client (http://localhost:9091) interfaces. - daemon, with
- - Curses interface for the daemon.
- - GTK3 package.
- - Qt5 package.
Configuring the GUI version
Both GUI versions, transmission-gtk and transmission-qt, can function autonomously without a formal back-end daemon.
GUI versions are configured to work out-of-the-box, but the user may wish to change some of the settings. The default path to the GUI configuration files is
A guide to configuration options can be found on the Transmission web site: https://trac.transmissionbt.com/wiki/EditConfigFiles#Options.
Transmission-daemon and CLI
The commands for transmission-cli are:
- transmission-daemon: starts the daemon.
- transmission-remote: invokes the CLI for the daemon, whether local or remote, followed by the command you want the daemon to execute.
- transmission-remote-cli: (requires curses interface for the daemon, whether local or remote. ) starts the
- transmission-cli: starts a non-daemonized local instance of transmission, for manually downloading a torrent.
- transmission-show: returns information on a given torrent file.
- transmission-create: creates a new torrent.
- transmission-edit: add, delete, or replace a tracker's announce URL.
Starting and stopping the daemon
As explained in #Choosing a user, the
transmission daemon can be run:
- As the user
transmission, by running as root:
# transmission-daemonThe daemon can then be stopped with:
# killall transmission-daemon
- As your own user, by running under your user name:
$ transmission-daemonThe daemon can then be stopped with:
$ killall transmission-daemon
- Starting (and stopping) the
transmissionservice with systemctl will use the user set in #Choosing a user. Note that the name for the systemd service is
Starting the daemon will create an initial transmission configuration file. See #Configuring the daemon.
An alternative option to stop the
transmission daemon is to use the transmission-remote command:
$ transmission-remote --exit
Autostart at boot
transmission daemon to run at system start, using systemd.
Note that the name for the systemd service is
The daemon is started after
network.service was initialised. However, if you enable the service
dhcpcd as opposed to the device-specific service, such as
firstname.lastname@example.org for example, it may happen that Transmission is started too early and cannot bind to the network interface. Thus, the web interface is unreachable. A possible solution is to add the
Requires line to the unit's configuration file:
Run only while connected to network
#!/bin/bash killall transmission-daemon
Choosing a user
Choose how you want to run
- As a separate user,
transmissionby default (recommended for increased security).
By default, transmission creates a user and a group
transmission, with its home files at
/var/lib/transmission/, and runs as this "user". This is a security precaution, so transmission, and its downloads, have no access to files outside of
/var/lib/transmission/. Configuration, operation, and access to downloads needs to be done with "root" privileges (e.g. by using sudo).
- Under the user's own user name.
To set this up, override the provided service file and specify your username:
Configuring the daemon
Create an initial configuration file by starting the daemon.
- If running Transmission under the username
transmission, the configuration file will be located at
- If running Transmission under your own username, the configuration file will be located at
One can customize the daemon by using a Transmission client or using the included web interface accessible via http://localhost:9091 in a supported browser.
A guide to configuration options can be found on the Transmission web site: https://trac.transmissionbt.com/wiki/EditConfigFiles#Options
A recommendation for those running under username
transmission is to create a shared download directory with the correct permissions to allow access to both the
transmission user and system users, and then to update the configuration file accordingly. For example:
# mkdir /mnt/data/torrents # chown -R facade:transmission /mnt/data/torrents # chmod -R 775 /mnt/data/torrents
/mnt/data/torrents will be accessible for the system user
facade and for the
transmission group to which the
transmission user belongs. Making the target directory world read/writable is highly discouraged (i.e. do not chmod the directory to 777). Instead, give individual users/groups appropriate permissions to the appropriate directories.
If you want to Automatically add .torrent files from a folder, but you find that the
watch-dir-enabled options set in the config file do not work, you can start the transmission daemon with the flag
If you're using systemd, edit the unit file located at