A Python tool that lets you find and download torrents without leaving your CLI.
Project description
torrra
A Python tool that lets you find and download torrents without leaving your CLI.
Overview
torrra provides a streamlined command-line interface for your torrent needs. It allows you to search for and download torrents, and manage active downloads without leaving your terminal, offering a fast and efficient solution for command-line users.
Table of Contents
Features
- Integrate with services like
JackettandProwlarr. - Fetch and download magnet links directly, powered by
Libtorrent. - A responsive download manager built with
Textual. - Pause and resume torrent downloads using keyboard shortcuts.
- Operates as both a
CLItool and a full-screen terminalUI. - Toggle between dark and light themes.
Installation
torrra offers several installation methods to suit your environment.
Cross-Platform (recommended)
Using pipx ensures torrra is installed in an isolated environment, preventing conflicts with your system's Python packages.
pipx install torrra
This method supports Linux, macOS, and Windows.
libtorrentis installed automatically via pip.
Arch Linux
- From AUR (builds from source):
yay -S torrra
- From AUR Binary Package (faster installation):
yay -S torrra-bin
torrra-binincludes a precompiled standalone binary for x86_64 Linux, requiring no Python dependencies.
Standalone Binaries (No Python Required)
Download pre-built executables directly from GitHub Releases:
| OS | File |
|---|---|
| Linux | torrra-vX.Y.Z-linux-x86_64 |
| Windows | torrra-vX.Y.Z-windows.exe |
| macOS | torrra-vX.Y.Z-macos-x86_64 |
On Linux/macOS, ensure the binary is executable:
chmod +x torrra-vX.Y.Z-*-x86_64.
Docker
torrra is also available as a Docker image, allowing you to run it in an isolated environment without installing Python dependencies directly on your host system.
The official image is hosted on Docker Hub: stabldev/torrra.
Quick Usage
docker run --rm -it stabldev/torrra:latest --jackett
Replace
--jackettwith your preferred provider flag. You can also pass URL and API key directly:--jackett http://localhost:9117 your_api_key. You must mount any required config or download directories if needed.
With Config and Downloads Folder Mounted
docker run --rm -it \
-v ~/.config/torrra:/root/.config/torrra \
-v ~/Downloads:/downloads \
stabldev/torrra:latest --jackett
Ensure your
config.tomlinside~/.config/torrrais set up correctly.
Image Tags
stabldev/torrra:latest- always points to the latest releasestabldev/torrra:<version>- for a specific release (e.g.,x.y.z)
Local Development
To set up torrra for development:
git clone https://github.com/stabldev/torrra
cd torrra
uv sync # or `pip install -e .`
uv run torrra
Usage
To start torrra, you must specify a provider. For example, to use Jackett:
torrra --jackett
Uses Jackett with credentials from your saved configuration.
Or pass your own URL and API_KEY directly. For example, to use Prowlarr:
torrra --prowlarr http://localhost:9696 your_api_key
Omitting a provider flag will result in an error.
CLI Commands & Flags
Top-level commands
| Command | Description |
|---|---|
torrra |
Launches the interactive TUI |
torrra config |
Manages configuration settings |
torrra --help |
Displays help for the top-level CLI commands |
Provider flags (used with torrra)
| Flag | Description |
|---|---|
-h, --help |
Displays help for the main application |
-v, --version |
Shows the current torrra version |
-j, --jackett |
Uses Jackett as the torrent indexer. Optionally accepts URL and API_KEY. |
-p, --prowlarr |
Uses Prowlarr as the torrent indexer. Optionally accepts URL and API_KEY. |
TUI Controls
| Key | Action |
|---|---|
↑↓ |
Navigate through results |
Tab |
Focus the next widget |
Enter |
Start download for selection |
p |
Pause the current download |
r |
Resume a paused download |
q |
Quit torrra |
Configuration
torrra's behavior can be customized via a config.toml file located in your OS-specific user config directory:
- Linux/macOS:
~/.config/torrra/config.toml - Windows:
%APPDATA%\torrra\config.toml
The actual path is automatically resolved using
platformdirs.
Example config.toml:
[general]
download_path = "/home/username/Downloads" # Default folder for saving torrents
remember_last_path = true # Reuse the last used path as default
Managing Your Configuration
Use the built-in torrra config command to manage settings:
torrra config -g general.download_path # Get a specific config value
torrra config -s general.remember_last_path False # Set a key-value pair
torrra config -l # List all config settings
Config Options
| Flag | Description |
|---|---|
-g, --get KEY |
Retrieves a config value (e.g., general.download_path) |
-s, --set KEY VALUE |
Sets a key-value pair |
-l, --list |
Lists all configuration settings |
-h, --help |
Displays help for the config command |
Indexer Support
Currently supported:
Planned:
- Support for custom indexers
Roadmap
Ongoing development focuses on enhancing torrra's capabilities:
- Jackett integration
- Prowlarr support
- Torrent download
UIwith pause/resume - Config file support
- Standalone binary & AUR packaging
- Magnet info preview (seeders/leechers before download)
- Advanced filtering/sorting
- Nyaa & anime-specific indexers
- Keyboard shortcuts overlay / help screen
Contributing
torrra is an open-source project, and contributions are highly valued.
- If you find an issue, please open an issue with detailed steps to reproduce.
- We welcome new features or indexer integrations. Fork the repository and submit a Pull Request.
- General feedback and feature requests are always appreciated.
License
MIT License. Copyright (c) stabldev
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file torrra-1.1.2.tar.gz.
File metadata
- Download URL: torrra-1.1.2.tar.gz
- Upload date:
- Size: 865.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3a1d11fa35fdac7454318c18b0b69bbd0b65d0f879563da9745feffe887f5b7
|
|
| MD5 |
6747bec99bf52d041563154a3de06b73
|
|
| BLAKE2b-256 |
6696658a53278d25b20f6506276b377bfba9535f23e6966d8b439f409ff2e0d8
|
File details
Details for the file torrra-1.1.2-py3-none-any.whl.
File metadata
- Download URL: torrra-1.1.2-py3-none-any.whl
- Upload date:
- Size: 20.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff7c29dca8cbd262a46159e5a3613316372bf45ad559614f1fc17442524707f3
|
|
| MD5 |
3aaea8b735fb0908703b1d48ae675226
|
|
| BLAKE2b-256 |
10ad11baa3e239f22d5a4c273618fb4e652efe6f48c9163d41a276605f437d62
|