Skip to main content

Hardcore terminal torrent client with cyberpunk aesthetics, optimized for rare torrents

Project description

▓▓▓▓ TorrentCLI Pro

Hardcore terminal torrent client with cyberpunk aesthetics, optimized for rare content.

Python 3.9+ License: MIT Code style: black


What Makes This Different?

TorrentCLI Pro is not another GUI client. It's an intelligent aria2c wrapper designed for:

  • Rare torrents with 0-1 seeders that other clients give up on
  • Terminal enthusiasts who want a beautiful CLI experience
  • Archivists downloading educational/historical content
  • Privacy-conscious users preferring CLI over bloated GUIs

Key Features

Zero-Config Excellence

  • Works perfectly with just torrentcli download "magnet:?xt=..."
  • Automatic health analysis selects optimal profile
  • Auto-fetches 50-100 working trackers from trusted sources

🎨 Distinctive Cyberpunk TUI

  • Real-time sparklines, heatmaps, and animations
  • 6 built-in themes (cyberpunk, matrix, solarized, nord, gruvbox, midnight)
  • Responsive layouts (80/120 column support)

🚀 Intelligent Optimization

  • Analyzes torrent health before wasting your time
  • Auto-escalates configuration when downloads stall
  • Profile system: rare, fast, seeder, privacy, batch

📊 Actionable Feedback

  • See why downloads are slow (0 seeders vs. slow peers vs. network issues)
  • Tracker heatmap shows which trackers are working
  • Seeder discovery progress (not just "0 B/s")

Legendary Efficiency

  • <50 MiB memory total (Python + aria2c wrapper)
  • <5% CPU average (excluding aria2c download activity)
  • <500ms cold start

Screenshots

Primary View (Cyberpunk Theme)

╔══════════════════════════════════════════════════════════════════════════════╗
║ ▓▓▓▓ TORRENTCLI PRO v1.0               [RARE MODE]      VPN:✓  RAM:8.2M    ║
╚══════════════════════════════════════════════════════════════════════════════╝

 Linux ISO Collection
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 HASH  a1b2c3d4e5f6...
 SIZE  4.7 GiB  •  FILES 3  •  PIECES 512

╭─ DOWNLOAD ─────────────────────────────────────────────────────────────╮
│                                                                        │
│  ████████████████████▓▓▓▓▒▒░░░░░░░░░░░░░░░  42.3%                    │
│  ↓ 2.0 GiB / 4.7 GiB         2.7 GiB remaining          ⧗ 8m 12s     │
│                                                                        │
│  SPEED ▁▂▃▅▇█▇▅▃▂▁ 5.8 MiB/s    AVG 5.2    PEAK 7.1 @ 14:23         │
│  RATIO ▁▁▁▂▂▂▃▃▃▂▂  0.15 (312M↑)                                     │
│                                                                        │
╰────────────────────────────────────────────────────────────────────────╯

╭─ NETWORK ──────────────────────────────────────────────────────────────╮
│                                                                        │
│  🌐 PEERS      ▂▃▅▇ 5/18 connected   │  🌱 SEEDERS  ▁▃▅▇█ 2 active   │
│                Last seen 3s ago      │           Found @ 14:18        │
│                                                                        │
│  📡 TRACKERS   ████▓▓▓▓▒▒▒░░ 52/89 responding  (58.4% success)       │
│     ✓ udp://tracker.opentrackr.org:1337     8 peers    67ms          │
│     ✓ udp://tracker.torrent.eu.org:451      2 peers   134ms          │
│     ✗ udp://tracker.zer0day.to:1337          TIMEOUT                 │
│                                                                        │
╰────────────────────────────────────────────────────────────────────────╯

[q]uit [p]ause [s]tats [t]trackers [f]files [l]ogs [h]elp

Installation

Prerequisites

Install via pip (recommended)

pip install torrentcli-pro

Install from source

git clone https://github.com/torrentcli/torrentcli-pro.git
cd torrentcli-pro
pip install -e .

macOS (Homebrew)

brew install aria2
pip install torrentcli-pro

Linux (Ubuntu/Debian)

sudo apt install aria2
pip install torrentcli-pro

Verify Installation

torrentcli --version
aria2c --version

Quick Start

1. Download a torrent (automatic profile selection)

torrentcli download "magnet:?xt=urn:btih:..."

TorrentCLI will:

  • Analyze torrent health (query DHT, test trackers)
  • Fetch 50-100 working trackers automatically
  • Select optimal profile (rare/default/fast)
  • Display beautiful real-time progress

2. Force rare-torrent mode

For dead/rare torrents with 0-1 seeders:

torrentcli download "magnet:?xt=..." --profile rare

This enables:

  • Aggressive peer discovery (200 max peers vs. 55 default)
  • All 100+ trackers (vs. just "best" 20)
  • IPv6 + DHT bootstrap nodes
  • Auto-escalation if stalled

3. Batch download

cat magnets.txt | while read m; do
  torrentcli dl "$m" --quiet
done

4. Customize theme

# Matrix green-on-black
torrentcli download "magnet:?xt=..." --theme matrix

# Solarized light (for bright environments)
torrentcli download "magnet:?xt=..." --theme solar

5. Speed limits and seeding

# Limit to 5 MiB/s, seed for 1 hour
torrentcli dl "magnet:?xt=..." --max-speed 5M --seed-time 60

Configuration

Initialize config

torrentcli config init

Creates ~/.config/torrentcli/config.toml with defaults.

Edit config

torrentcli config edit  # Opens in $EDITOR

Example config

[general]
default_profile = "rare"
download_dir = "~/Torrents"
tracker_update_interval = 43200  # 12 hours

[ui]
theme = "cyberpunk"

[notifications]
level = "important"  # all | important | none

[aria2c]
max_overall_download_limit = "10M"  # Global speed cap

[profiles.my_rare]
inherit = "rare"
aria2c_options.bt_max_peers = 300  # Even more aggressive

Profiles

Profile Use Case Max Peers Trackers
auto Analyzes health, chooses best Dynamic Dynamic
default Popular torrents (10+ seeders) 55 Best 20
rare Dead/rare torrents (0-10 seeders) 200 All 100+
fast High-speed LANs (100+ Mbps) 100 Best 20
seeder Seed for 24h or 2.0 ratio 100 Best 20
privacy VPN-friendly, minimal exposure 50 Best 20, no DHT
batch Multiple concurrent downloads 30 Best 20

Themes

Available themes:

  • cyberpunk (default) - Neon accents on deep black, data brutalism
  • matrix - Classic green-on-black hacker terminal
  • solar - Solarized light for bright environments
  • nord - Arctic blues, easy on the eyes
  • gruvbox - Warm retro terminal colors
  • midnight - Deep blues and purples

Preview all themes:

torrentcli download "magnet:..." --theme matrix  # Try each one

Commands

Download Management

# Download
torrentcli download <magnet|torrent_file> [OPTIONS]
torrentcli dl <magnet|torrent_file>  # Alias

# List active/resumable
torrentcli list
torrentcli ls

# Resume paused download
torrentcli resume <hash|name>

# Pause active download
torrentcli pause <hash|name>

# Cancel and delete session
torrentcli cancel <hash> [--delete-files]

# Clean old sessions
torrentcli clean --older-than 30d

Information

# Show torrent metadata without downloading
torrentcli info <magnet|torrent>

# Download history
torrentcli history --limit 20

# Aggregate stats
torrentcli stats

# Tracker performance
torrentcli tracker-stats --limit 20

Configuration

# Show current config
torrentcli config show

# Initialize default config
torrentcli config init [--force]

# Edit config in $EDITOR
torrentcli config edit

# List available profiles
torrentcli list-profiles

Trackers

# Manually refresh tracker lists
torrentcli update-trackers

Advanced Usage

Selective File Download

For multi-file torrents:

torrentcli download "magnet:..." --select

Displays interactive file picker with arrow keys + space.

Custom Completion Hook

torrentcli dl "magnet:..." --on-complete "say 'Download complete'"

Non-Interactive Modes

# Quiet mode (no output except errors)
torrentcli dl "magnet:..." --quiet

# JSON mode (for scripts)
torrentcli dl "magnet:..." --json > stats.json

# Summary only
torrentcli dl "magnet:..." --summary

Environment Variables

export TORRENTCLI_PROFILE=rare
export TORRENTCLI_DOWNLOAD_DIR=/data
export TORRENTCLI_THEME=matrix
export TORRENTCLI_QUIET=1

torrentcli dl "magnet:..."  # Uses env vars

Troubleshooting

No seeders found

# Try rare profile
torrentcli dl "magnet:..." --profile rare

# Manually update trackers
torrentcli update-trackers

# Check VPN (some trackers block non-VPN IPs)

Slow download despite seeders

# Check if VPN throttling
# Try fast profile
torrentcli dl "magnet:..." --profile fast

# Check aria2c version (need 1.36.0+)
aria2c --version

aria2c not found

# macOS
brew install aria2

# Ubuntu/Debian
sudo apt install aria2

# Arch
sudo pacman -S aria2

Development

Setup Dev Environment

git clone https://github.com/torrentcli/torrentcli-pro.git
cd torrentcli-pro

# Install Poetry
curl -sSL https://install.python-poetry.org | python3 -

# Install dependencies
poetry install

# Activate venv
poetry shell

# Run tests
pytest

# Linting
ruff check .
mypy src/

Run from Source

poetry run torrentcli download "magnet:..."

# OR
python -m torrentcli download "magnet:..."

Roadmap

v1.0 (Current - MVP)

  • ✅ CLI interface with Click
  • ✅ Profile system (6 built-in profiles)
  • ✅ Theme system (6 themes)
  • ✅ Config management (TOML)
  • ⏳ aria2c wrapper (stub)
  • ⏳ Tracker management (stub)
  • ⏳ Health analyzer (stub)
  • ⏳ TUI renderer (stub)
  • ⏳ SQLite history DB (stub)

v1.1 (Next)

  • aria2c RPC mode (advanced control)
  • Speed scheduling (full speed at night)
  • Selective file downloads (interactive picker)
  • Improved stall detection

v2.0 (Future)

  • Web UI (optional, Flask + React)
  • RSS feed support (auto-download)
  • Torrent creation
  • Ratio management for private trackers

Contributing

Contributions welcome! Please read CONTRIBUTING.md first.

Bug Reports

Use GitHub Issues.

Feature Requests

Open a discussion first to align on scope.


License

MIT License - see LICENSE for details.


Credits


Disclaimer

TorrentCLI Pro is for legal downloads only (Linux ISOs, public domain content, authorized educational materials). Users are responsible for complying with copyright laws in their jurisdiction. The developers do not condone piracy.


Made with ⚡ by terminal hackers, for archivers.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

torrentcli_pro-1.0.2.tar.gz (47.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

torrentcli_pro-1.0.2-py3-none-any.whl (52.8 kB view details)

Uploaded Python 3

File details

Details for the file torrentcli_pro-1.0.2.tar.gz.

File metadata

  • Download URL: torrentcli_pro-1.0.2.tar.gz
  • Upload date:
  • Size: 47.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.14.2 Darwin/25.2.0

File hashes

Hashes for torrentcli_pro-1.0.2.tar.gz
Algorithm Hash digest
SHA256 65841195be0ebaa0c9607be70b1c7569c42ba697698a55b282a87ec5615bcf90
MD5 9d2e6372cbf0a5db29bbcbf87cce8535
BLAKE2b-256 01399cbbbd301ee6ef8541896424d8602836d0cf18c7c329b24953fc2e5fac41

See more details on using hashes here.

File details

Details for the file torrentcli_pro-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: torrentcli_pro-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 52.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.14.2 Darwin/25.2.0

File hashes

Hashes for torrentcli_pro-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cfb9a0594388eaaf3d834f68156474722e715edd41ba565de11836a8ba42dc1f
MD5 63ca90c772b13579dd3b232a86becbde
BLAKE2b-256 fb80808e22a3b4b7da4403a7e77594fddcda4985e95918419644d182835c934c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page