torrra
Torrra handles download torrents directly from the CLI as a self-hosted solution.
A CLI/TUI torrent search and download tool, honestly reviewed. No marketing fluff, just what you get when you run it from the command line.
TL;DR
- What it is: A Python CLI/TUI tool for searching and downloading torrents without leaving your terminal — built on Jackett/Prowlarr for search and Libtorrent for actual downloading [1].
- Who it’s for: Developers and power users who live in the terminal and don’t want to alt-tab to a GUI client every time they want to grab a Linux ISO [1].
- Cost savings: No SaaS replacement angle here — qBittorrent and Transmission are also free. The value proposition is workflow, not money. You’re paying in setup time, not subscription fees.
- Key strength: Clean Textual-powered TUI with pause/resume, theming, and smart caching — without the overhead of a GUI application [1][2].
- Key weakness: It’s a frontend layer that assumes you’ve already installed and configured Jackett or Prowlarr. If you haven’t, torrra doesn’t work at all. That dependency is buried in the README but central to the product [1].
What is torrra
torrra is a command-line torrent client that does two things: search for torrents through an indexer (Jackett or Prowlarr), and download them using Libtorrent. It wraps both of those in a TUI built with Textual — the same Python framework powering tools like Posting and various modern terminal apps — so you get a full-screen interface with keyboard navigation, real-time download progress, and theme switching [1].
The tagline is “search and download torrents without leaving your CLI,” which is accurate and pleasantly narrow in ambition [1]. It doesn’t try to be a media server. It doesn’t embed an indexer. It doesn’t pretend to be Sonarr. It searches, it downloads, it shows you progress, it gets out of the way.
As of this review, the project is at version 2.0.7, has 1,160 GitHub stars, and is MIT licensed. It’s available on PyPI (pipx install torrra), AUR, Homebrew (via a third-party tap), and as a Docker image. The author is a solo developer going by stabldev [1][README].
The dependency model is worth spelling out upfront because it defines what you’re actually installing. torrra itself doesn’t talk to any torrent index. It talks to Jackett or Prowlarr, which are separate services you run yourself. Jackett is a proxy that aggregates public and private tracker results behind a single API. Prowlarr is the more modern option from the *arr ecosystem. Either way, you need one of those running somewhere on your network before torrra does anything useful [1][docs].
Why people choose it
Third-party reviews of torrra are essentially nonexistent at this star count and age — the tool is too new and niche to have accumulated review coverage. The AlternativeTo page for Rapidbay (a different self-hosted torrent streaming tool) lists torrra as a comparison point, which at least confirms it’s showing up in community discussions [3]. Beyond that, you’re reading the GitHub README and the readthedocs site.
That’s worth naming directly: this review is primarily based on official documentation rather than aggregated user experience. For a 1,160-star project that came out of a solo developer’s work in 2025, that’s expected — not a red flag.
The “why choose this” case, assembled from what the tool actually is:
You use the terminal for everything else. If your workflow runs in tmux and you have a Kitty multiplexer open 10 hours a day, spinning up a Qt-based torrent client just to grab a file feels like a context break. torrra fits into that workflow without window switching [1].
Jackett/Prowlarr is already in your stack. If you’re running Sonarr, Radarr, or any of the *arr applications for media automation, you already have Prowlarr configured. torrra gives you a human-facing search interface into the same indexer infrastructure [1].
You want a TUI, not a daemon. Tools like rtorrent are powerful but their interface is dated and configuration is arcane. Transmission’s CLI is more ergonomic but search isn’t built in. torrra combines search-to-download in a single TUI session without requiring you to configure XML-RPC or a web UI [1].
Features
Based on the README and official documentation [1][docs]:
Search:
- Queries Jackett or Prowlarr through their respective APIs
- Direct search from CLI:
torrra search "arch linux iso"bypasses the TUI entirely - Opt-in result caching for repeated searches (
--no-cacheto override) - Configurable default indexer via
config.toml
Download:
- Powered by Libtorrent — the same library under qBittorrent
- Accepts magnet URIs directly:
torrra download "magnet:?xt=..." - Accepts
.torrentfile paths - Pause and resume via keyboard shortcuts in the TUI
- Configurable download path in the config file
TUI:
- Full-screen terminal interface built with Textual
- Described as “beautiful and responsive” — Textual apps generally look good on modern terminals
- Keyboard-driven navigation
- Dark and light themes, with additional theme support in the config
Configuration:
- TOML config file at a platform-appropriate path
- CLI config management:
torrra config set indexers.jackett.url http://localhost:9117 - Supports multiple named indexer profiles
- Set default indexer once, run
torrrawith no arguments thereafter
Installation:
pipx install torrraoruv tool install torrra(cross-platform)- AUR package for Arch Linux
- Standalone binaries (no Python required) via GitHub releases
- Homebrew tap for macOS
- Docker image at
stabldev/torrra
Platform support: Linux, macOS, Windows [1].
Pricing: SaaS vs self-hosted math
This is not a SaaS replacement story. There’s no Torrent-as-a-Service charging you $29/month for magnet links. The relevant cost comparison is with other free GUI clients like qBittorrent, Transmission, and Deluge — all of which are also $0.
The cost picture looks like this:
| Option | Software cost | Infrastructure | Setup time |
|---|---|---|---|
| torrra | $0 (MIT) | Requires Jackett or Prowlarr already running | Medium (assumes indexer is configured) |
| qBittorrent | $0 | None required | Low |
| Transmission | $0 | None required | Low |
| rtorrent + rutorrent | $0 | VPS if running headless | High |
If you don’t already have Jackett or Prowlarr, you need to install and configure one of those before torrra does anything. That’s an additional self-hosted service — its own Docker container, API key management, tracker configuration. Jackett is the simpler option; Prowlarr integrates better with the *arr stack but has more moving parts [1][docs].
If you’re already running a media automation stack, the marginal cost to add torrra is zero. If you’re starting from scratch, the “install torrra” decision is actually a “install Jackett + torrra” decision.
Deployment reality check
The simplest install path is pipx install torrra on any platform, which takes under a minute. The Docker path works for running it in a containerized environment. Standalone binaries on GitHub releases mean you don’t even need Python [1].
What you actually need before torrra is useful:
- Jackett (https://github.com/Jackett/Jackett) or Prowlarr (https://github.com/Prowlarr/Prowlarr) running on your network
- An API key from whichever indexer you chose
- At least one tracker configured in that indexer
What the config setup looks like:
torrra config set indexers.jackett.url http://localhost:9117
torrra config set indexers.jackett.api_key YOUR_KEY
torrra config set indexers.default jackett
After that, torrra with no arguments launches the TUI [1].
What can go sideways:
- If Jackett or Prowlarr is down or misconfigured, torrra returns no results with minimal error context. The tool doesn’t help you debug the indexer — it just silently fails to find anything.
- The Homebrew tap is third-party (maintained by
Maniacsan, notstabldev) — no guarantees on update cadence [1]. - The Docker setup has less documentation than the direct install path; the readthedocs site doesn’t have a dedicated Docker configuration guide as of version 2.0.7 [docs].
- This is a solo developer project at 1,160 stars. There’s no company behind it, no issue SLAs, no commercial incentive to maintain it. It’s a genuine hobby/OSS project.
Realistic time estimate for someone with Jackett already running: 5–10 minutes to install and configure torrra. For someone starting from scratch: 1–3 hours including Jackett installation and tracker configuration.
Pros and cons
Pros
- MIT licensed, no strings. Free to use, fork, or redistribute without negotiating a commercial license [1].
- Zero-friction terminal workflow. If you’re already in a terminal session, search-to-download without leaving it is a real quality-of-life improvement over alt-tabbing to a GUI client.
- Modern TUI. Textual-based interfaces look significantly better than ncurses-era terminal apps. Dark/light themes and keyboard shortcuts make it feel like a maintained, current project [1].
- Multiple install paths. pipx, uv, AUR, Homebrew, standalone binaries, Docker — something for every workflow [1].
- Direct magnet/torrent download without search. The
torrra download "magnet:..."path is useful even if you found the torrent elsewhere [1]. - Caching. Opt-in result caching means repeated searches for the same thing are fast [1].
- Cross-platform. Linux, macOS, Windows — Textual runs anywhere Python runs [1].
Cons
- Hard dependency on Jackett/Prowlarr. This isn’t a standalone tool. If you don’t already have an indexer running, you need to set one up first. The README covers this but doesn’t front-load how significant that prerequisite is [1].
- Solo developer project. 1,160 stars, one maintainer, no commercial backing. Support is best-effort; the project could go quiet. There’s no roadmap commitment or SLA [1].
- No built-in indexer. You can’t use torrra to search any torrent site directly — it always proxies through Jackett/Prowlarr. That’s an architectural choice that keeps torrra simple, but it means a second moving part in your setup.
- Limited error visibility when the indexer fails. If Jackett is misconfigured or the API key is wrong, the failure experience in torrra is not helpful for debugging.
- Docker documentation is thin. The Homebrew tap is third-party. The standalone binaries require manual update checking. Install paths other than pipx/AUR have support gaps [1][docs].
- No third-party reviews. It’s too new and niche for community validation. You’re going in on documentation alone.
- Not a media server. If you want to stream what you’re downloading to Plex, Jellyfin, or Emby, torrra doesn’t help with that — you’d need something like Radarr/Sonarr handling the download requests instead.
Who should use this / who shouldn’t
Use torrra if:
- You live in the terminal and resent opening a browser or GUI app just to grab a file.
- You already have Jackett or Prowlarr running as part of a media automation stack.
- You want a clean Textual TUI instead of a dated ncurses interface.
- You’re on Arch Linux and want something in the AUR that installs with one command.
- You occasionally need to grab a torrent ad hoc and the full *arr automation pipeline is overkill.
Skip it (use qBittorrent) if:
- You don’t already have Jackett or Prowlarr and don’t want to set them up.
- You want a GUI with visual seeding/downloading dashboards, remote web UI, RSS auto-download rules, or per-torrent bandwidth limits.
- You’re managing a media library and need torrent client ↔ media server integration.
Skip it (use rtorrent + ruTorrent or qBittorrent-nox) if:
- You’re running a headless server and need a web UI accessible from another device.
- You want per-torrent priority queues, seeding ratios, and fine-grained bandwidth scheduling.
Skip it (use Sonarr/Radarr) if:
- You want fully automated TV/movie downloads triggered by release monitoring, not manual search.
- You want rename-on-download, media library organization, and Plex/Jellyfin integration baked in.
Alternatives worth considering
- qBittorrent — the most popular open-source torrent client. GUI-first but has a decent web UI and CLI mode. No indexer dependency required. More mature, larger community. Better choice if you don’t want the Jackett dependency [3].
- Transmission — lighter weight than qBittorrent, clean daemon+web UI architecture. Good for headless servers. No built-in search [3].
- Deluge — plugin-based, daemon architecture, web and GTK UIs. More configuration surface than Transmission. Still no built-in meta-search.
- webtorrent-cli — Node.js CLI that supports magnet streaming. Simpler than torrra, no search, but zero dependencies beyond Node.
- aria2 — not a torrent client per se but handles magnet URIs and
.torrentfiles well. Extremely lightweight, scriptable, no TUI. - Rapidbay — self-hosted web app that takes torrent search input and streams video in-browser. Different use case (video streaming vs. file downloads) but listed as a torrra alternative in community sources [3].
- rtorrent — the classic headless torrent daemon. Powerful, scriptable, battle-tested. The TUI is functional but ugly. Requires
rutorrentor a similar web frontend if you want a decent interface.
For a terminal power user who wants to stay in their workflow, the realistic comparison is torrra vs. qBittorrent CLI + transmission-cli. torrra wins on search integration and TUI quality. The others win on independence from an indexer and larger community support.
Bottom line
torrra is a well-built tool with a narrow and honest scope: if you’re in the terminal and you want to search and download torrents without leaving it, this is the cleanest way to do that. The Textual TUI is genuinely good-looking for a 1,160-star hobby project, the install is painless if you use pipx, and the MIT license means there’s nothing to negotiate.
The catch is real: torrra is a frontend, not a stack. It depends on Jackett or Prowlarr for search, which means your “install torrra” decision is actually a “stand up an indexer and then install torrra” decision. For someone already running a *arr media server with Prowlarr configured, that cost is zero. For someone starting fresh, it’s an afternoon of reading documentation that has nothing to do with torrra itself.
This is not a SaaS escape story — qBittorrent is free too. It’s a workflow optimization for terminal users who find GUI context-switching annoying. If that’s you, torrra is worth 10 minutes to try. If you need indexer setup from scratch, weigh that setup time against just opening a browser tab.
Sources
- stabldev — torrra GitHub README and repository (MIT, 1,160 stars). https://github.com/stabldev/torrra
- torrra Official Documentation (v2.0.7). https://torrra.readthedocs.io/en/latest/
- AlternativeTo — Rapidbay page (community alternatives listing, includes torrra comparison). https://alternativeto.net/software/rapidbay/about/
- torrra on PyPI (package metadata, version history, download stats). https://pypi.org/project/torrra/
Features
Customization & Branding
- Themes / Skins
Mobile & Desktop
- Responsive / Mobile-Friendly
Related Media & Streaming Tools
View all 334 →Immich
95KHigh-performance self-hosted photo and video management — automatic backup, ML-powered search, and a Google Photos-like experience on your own server.
Jellyfin
49KThe volunteer-built media solution that puts you in control of your media. Stream movies, shows, music, and photos to any device from your own server.
PhotoPrism
39KAI-Powered Photos App for the Decentralized Web. Tag and find pictures automatically without getting in your way.
Cobalt
39KSave what you love without ads, tracking, paywalls or other nonsense. Just paste the link and you're ready to rock.
qBittorrent
36KAn open-source software alternative to uTorrent. Feature-rich and runs on all major platforms.
SRS
29KSimple, high efficiency, realtime video server. Supports RTMP, WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH and GB28181.