Skip to main content

Helm - Torrent Automation Prototype

PyPI Python Versions Docker Pulls CI Status License Stars



Table of Contents

Helm is a blazing-fast CLI-based torrent automation tool designed to fetch, filter, and send magnet links to qBittorrent.

It completely automates its own setup, orchestrating Jackett, Flaresolverr, and qBittorrent using Docker or Podman under the hood.


Features

  • Automated Container Setup: No more manually configuring Jackett, qBittorrent, or Flaresolverr. setup.sh orchestrates everything via Docker/Podman compose.
  • Ephemeral (One-Shot) Mode: Containers spin up when you search/download, and tear down immediately after to save RAM and CPU.
  • Permanent Mode: Keep the stack running 24/7 if you prefer.
  • VPN Support: Automatically route qBittorrent traffic through Gluetun (Wireguard/OpenVPN).
  • Live Search & Filter: A fast, interactive CLI interface to search indexers and select torrents.
  • Lite Mode (Zero Setup): Search and get Magnet links instantly using built-in Python scrapers without needing Docker or Jackett installed!
  • CLI Indexer Management: Add and remove Jackett indexers directly from the command line.

Installation

Helm requires Docker (with Docker Compose) or Podman (with podman-compose) installed on your system.

Python Package (New!)

You can now install Helm directly via pip to run it natively or use the new Lite Mode:

pip install helm-torrent

Once installed, you can launch the CLI from anywhere using:

helm

Container Setup (Full Mode)

Instant Terminal Installation: For a fully automated setup that skips cloning the repository manually, run:

bash <(curl -sL https://raw.githubusercontent.com/Piratebird/helm/main/setup.sh)

# Or for a completely silent install using defaults (Docker, Ephemeral mode):
bash <(curl -sL https://raw.githubusercontent.com/Piratebird/helm/main/setup.sh) --skip-prompts

Manual Source Installation: If you prefer to inspect the source and install manually:

# Clone the repo
git clone https://github.com/Piratebird/helm.git
cd helm

# Run the automated setup script
./setup.sh

The script will guide you through:

  1. Choosing your container engine (Docker vs Podman)
  2. Choosing your run mode (Ephemeral vs Permanent)
  3. Setting up a VPN (optional)

Why this exists

Honestly for the most part it's for myself and my own usage i wanted to get magnets of torrents and shows and it was annoying sometimes to look all over the internet for a torrent so i wanted to do that but with the terminal for the most part and heck yeah it gets the job done so far it's not perfect but it's my own so hell yeah :)

Roadmap

Helm is actively roaming the 7seas and trying to get more treasures:

  • Prowlarr integration (Replacing Jackett).
  • Scrumptious TUI interface.
  • Better indexer management.

For more detailed tasks breakdown check TODO.md

Changelog

All notable changes are tracked in CHANGELOG.md.

Latest release: 0.9.3 — Frictionless Onboarding! Added helm init for native Python-based Docker bootstrapping, --skip-prompts for silent shell installations, and a new curl one-liner to get started instantly. See the full file for everything that came before.

Configuration

Helm uses a combo of env variables and config files cleanly sandboxed away from your host OS.

With the adoption of XDG standards, your configuration and state are stored natively based on your OS:

  • Linux: ~/.config/helm/ (Config) and ~/.local/state/helm/ (State)
  • Mac: ~/Library/Application Support/helm/ (Config and State)
  • Windows: %APPDATA%\helm\ (Config) and %LOCALAPPDATA%\helm\ (State)

What these do:

  • config.json: Settings only (indexers, URLs, flags) — never secrets.
  • secrets.env: API keys and passwords (e.g. JACKETT_API_KEY, JACKETT_PASSWORD, QB_PASSWORD). Written with mode 0600 and resolved with env vars taking priority.
  • state/.env.docker: Environment variables for the containers
  • state/jackett/: Jackett configuration and indexers
  • state/qbittorrent/: qBittorrent configuration and state
  • Downloads/helm/: Your downloaded files

The first run migrates any legacy secrets found in older config.json files into secrets.env and rewrites the config file scrubbed.

Usage

Helm is primarily run using the included scripts to manage the Docker containers and CLI.

Typical workflow:

  1. Run ./setup.sh to configure indexers, VPN, and credentials.
  2. Run ./helm.sh to launch the interactive CLI and search for torrents.
  3. Matching torrents are filtered and sent to qBittorrent automatically.

You can also pass arguments directly to the wrapper script:

# Force one-shot mode (spins up and tears down Docker)
./helm.sh --oneshot

# Auto-download the top result for a query
./helm.sh --oneshot --auto -q "Ubuntu 24.04" --type software

# Run built-in Lite Mode (without Jackett/Docker)
./helm.sh --lite

# Manage Jackett indexers
./helm.sh --indexers

Performance & Resource Optimization

Helm is aggressively optimized for a minimal memory footprint. While containerized applications are usually heavy, the setup.sh installer strictly throttles the Docker/Podman engines using Linux cgroups (e.g., hard-capping Jackett to 256MB).

In our Resource Benchmarks, we proved that running Helm's containerized stack actually saves RAM compared to installing the software natively!

Disclaimer

Helm does NOT host, distribute, or provide any copyrighted content.

This tool simply automates (kinda) the process of fetching RSS feeds and sending magnet links to a torrent client.

However you use this tool is your responsibility gangster.

Contributing

Contributions are welcome especially but not limited to bug fixes, refactors or documentation improvements.

If you plan to add a major feature or change behavior, it's prolly a good idea to open an issue.

with that out the way this project is real close to me since it's my official first project so let's make this bozo go (perchance).

How it works (high-level)

Helm pulls torrent RSS feeds from configured indexers, applies filtering and deduplication rules, and automatically sends matching magnet links to qBittorrent.

Credits

Shoutout to the goats! This project is built utilizing these fantastic open-source tools: qBittorrent, Jackett, and Flaresolverr.

Lite Mode Plugins: A massive thank you to the qBittorrent search engine plugins community and developers. Helm's lightweight search mode natively supports their .py plugins, making it possible to search dozens of torrent indexers instantly without any Docker overhead.

License

This project is licensed under the GPL License. See the LICENSE file for details.

Metadata

Release files for helm-torrent 0.9.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for helm-torrent 0.9.3
File Size Uploaded
helm_torrent-0.9.3.tar.gz 69.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for helm-torrent 0.9.3
File Interpreter ABI Platform
helm_torrent-0.9.3-py3-none-any.whl Python 3 none any Details

Total release size: 138.1 kB

Release files / helm_torrent-0.9.3.tar.gz

Download URL helm_torrent-0.9.3.tar.gz
Size 69.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a3585d71dd30c3f49e1629c42dd33d06e9c1c6348d0ec97289323993cfce9c9a
BLAKE2b-256 checksum
How to use checksums
f325e2b8362abd2e52f07477a19b8264bc4fe3948b61460e717f6a77730f6dd6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / helm_torrent-0.9.3-py3-none-any.whl

Download URL helm_torrent-0.9.3-py3-none-any.whl
Size 68.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
87afeb87eca39be0a854e7d436ec11826b5d42815d66da21a19ca515385ff83e
BLAKE2b-256 checksum
How to use checksums
a23e4c8d994d26aa223427010159a8176a8a8f315867b3cc360c5050665c5146
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.9.5

2 release files

0.9.4

2 release files

This release

0.9.3 This release

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page