A terminal torrent client: everything the toolbar does
termtorrent is a terminal torrent client that is deliberately narrow: it exposes the actions you repeat, and leaves scheduling, RSS, watch directories and protocol details where they belong.
Adding a torrent
Press a and give termtorrent one of three things: an HTTP(S) URL to a .torrent file, a magnet link, or a path to a local file. The dialog accepts all three in the same field. termtorrent passes the value to rtorrent’s load.start and returns to the list; the new job appears within the two-second refresh, or immediately after pressing r.
This is the same call a script would make. There is no separate download queue and no second copy of the data: rtorrent owns the session.
Controlling the list
| Action | Key | What rtorrent does |
|---|---|---|
| Start selected torrent | s | Starts the job and resumes hashing or downloading |
| Stop selected torrent | S | Stops the job but keeps it in the session |
| Remove entry | d | Closes the torrent; downloaded data stays on disk |
| Remove and delete data | d then confirm | Closes the torrent and erases files inside the download directory |
| Details | o or Enter | Reads hash, directory, sizes, ratio and rates |
| Global limits | l | Sets download and upload limits in KB/s; 0 means unlimited |
| Refresh now | r | Re-reads the list without waiting for the timer |
How it compares
The honest comparison is not “which client is best” but “how much interface do you want around rtorrent”. termtorrent sits between the raw client and a full web UI.
| termtorrent | rtorrent CLI | ruTorrent | transmission-remote | |
|---|---|---|---|---|
| Runs in a terminal | Yes | Yes | No | Yes |
| Visible toolbar and dialogs | Yes | No | Yes | No |
| Live list with rates and state | Yes | Views | Yes | Per command |
| Needs a web server | No | No | Yes | No |
| Works on a different client | No, rtorrent only | n/a | No | Transmission only |
| Mouse support | Optional | No | Yes | No |
| Footprint | Tiny Python script | Client itself | PHP + web stack | Small CLI |
ruTorrent is the right answer when you need a browser-accessible dashboard shared by several people. transmission-remote is the right answer when your client is Transmission. termtorrent is for the case in between: rtorrent, a terminal, and a preference for seeing the job rather than typing its name.
Limits, details and the two-second refresh
The limits dialog writes rtorrent’s global download and upload rate settings. Values are in KB/s, and zero restores unlimited transfer. The details dialog reads the hash, the download directory and both size counters, which is enough to tell a stalled torrent from one that is still checking.
The list refreshes every two seconds by default. That is a deliberate compromise: fast enough to watch progress, slow enough not to spam the SCGI socket. Pressing r forces a refresh when you have just changed something.
What termtorrent does not do
- No search or indexers. It does not talk to trackers beyond what rtorrent does.
- No RSS or scheduling. rtorrent’s own schedule and watch-directory features remain the right tool.
- No web UI. There is no port to expose, no login and no remote dashboard.
- No second engine. If rtorrent is not running, termtorrent has nothing to show.
Keeping those out is what keeps the program small and the behaviour predictable. If you need them, combine termtorrent with rtorrent’s configuration rather than expecting the front-end to grow into a platform.