Introduction
Transmission is a BitTorrent client that prioritizes simplicity and efficiency. Originally built for macOS, it now runs on Linux, Windows, and FreeBSD. Its small footprint makes it a popular choice for NAS devices, Raspberry Pis, and always-on servers where resource usage matters.
What Transmission Does
- Downloads and seeds torrents with full protocol support including DHT, PeX, encryption, and magnet links
- Runs as a background daemon (transmission-daemon) with a built-in web UI for remote management
- Provides native desktop clients for macOS (Cocoa), Linux (GTK and Qt), and Windows
- Supports watch directories for automatic torrent loading without manual intervention
- Offers a full RPC API for scripting and integration with automation tools
Architecture Overview
Transmission is written in C and C++ with a shared core library (libtransmission) used by all frontends. The daemon runs the torrent engine as a background service, exposing an RPC interface over HTTP that powers both the web UI and remote CLI tools. The architecture separates protocol logic from presentation, allowing each platform to use its native UI toolkit.
Self-Hosting & Configuration
- Run transmission-daemon for a headless server setup with the web UI on port 9091
- Edit settings.json (usually in ~/.config/transmission-daemon/) for persistent configuration
- Set up a watch directory to auto-add .torrent files dropped into a specific folder
- Configure bandwidth limits and scheduling to restrict speeds during peak hours
- Use Docker images (e.g., linuxserver/transmission) for containerized deployments with environment-based configuration
Key Features
- Minimal CPU and memory usage compared to feature-heavy alternatives
- Built-in web interface that works well on mobile browsers for remote management
- Blocklist support with automatic URL-based updates for IP filtering
- RPC API enables integration with Sonarr, Radarr, Flexget, and custom scripts
- No ads, trackers, or bundled software in any build
Comparison with Similar Tools
- qBittorrent — more features (built-in search, RSS rules) but uses more resources
- Deluge — plugin-based with more extensibility, though setup is more involved
- rTorrent — terminal-based and powerful for advanced users, but has a steep learning curve
- Aria2 — download manager supporting multiple protocols, but lacks a torrent-focused UI
FAQ
Q: How do I access the Transmission web UI? A: Start transmission-daemon and open http://localhost:9091 in a browser. Default credentials are set in settings.json.
Q: Can Transmission run on a Raspberry Pi? A: Yes. Transmission-daemon is lightweight enough to run on a Raspberry Pi with minimal resource impact.
Q: How do I automate downloads with Transmission? A: Set a watch directory in settings.json, or use the RPC API with tools like Sonarr and Radarr for automated media management.
Q: Is Transmission secure? A: Transmission supports protocol encryption and blocklists. The web UI should be secured with authentication and ideally a reverse proxy with HTTPS.