npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

torl-client

v1.3.2

Published

A minimal BitTorrent client for Node.js

Readme

Features

  • Torrent files & magnet links — download from .torrent files or resolve magnet: links.
  • Tracker + DHT peer discovery — supports UDP and HTTP trackers plus Mainline DHT.
  • Rarest-first piece selection — prioritizes the pieces that are least available in the swarm.
  • Pause & resume — a .torl.state file stores progress; existing data is verified on restart.
  • NAT traversal — automatic UPnP IGD and NAT-PMP port mapping helpers.
  • Interactive TUI — running torl opens a dashboard where downloads can be added, monitored, paused, and resumed.
  • Multiple downloads — queue or run several torrents and magnet links concurrently.
  • Fully tested — fast, deterministic mock tests for the peer wire protocol, trackers, DHT, and NAT.

Installation

Install or update to the latest published version from npm:

npm install --global torl-client@latest

Check the installed version with torl-cli --version.

Or clone and install locally:

git clone https://github.com/mibienpanjoe/torL.git
cd torL
npm install

The torl command opens the TUI; the underlying TUI binary (torl-tui) is downloaded automatically during npm install for your platform from the matching GitHub release. If a prebuilt binary is not available, it falls back to building from source when Go is installed.

TUI Usage

Running torl without arguments opens the interactive dashboard:

torl

From there, paste a magnet link, type a .torrent path, or browse for a torrent file. Positional inputs remain available as a faster way to preload one or more downloads:

# preload a single torrent
torl debian-13.6.0-amd64-netinst.iso.torrent

# preload several inputs
torl a.torrent b.torrent "magnet:?xt=urn:btih:..."

# override the output directory
torl file.torrent -o ~/Downloads

# override the path to the downloader backend
torl file.torrent -torl-path ./bin/torl-cli.js

Inside the TUI:

  • a opens a field for pasting a magnet link or entering a .torrent path.
  • f opens the integrated .torrent file picker.
  • o changes the output directory for downloads added afterward.
  • / select a torrent.
  • p toggles pause/resume for the selected torrent.
  • q or Ctrl+C pauses all active downloads and exits.
  • Esc closes the active input or picker without changing anything.
  • Downloaded progress is saved automatically; re-running the same torrent resumes where it left off.

CLI Usage

For scripts or headless environments, use torl-cli instead of the TUI.

torl-cli <torrent-file|magnet-link>... [options]

Options

  -o, --output <dir>       Output directory (default: Downloads)
  -c, --concurrency <n>    Max simultaneous downloads (default: 1)
  -q, --quiet              Suppress progress output
  -h, --help               Show help
  -v, --version            Show version

Examples

Download a single torrent:

torl-cli debian-13.6.0-amd64-netinst.iso.torrent

Download from a magnet link:

torl-cli "magnet:?xt=urn:btih:...&dn=example"

Download multiple torrents concurrently:

torl-cli a.torrent b.torrent "magnet:?xt=urn:btih:..." -c 3

Output is written to a directory named after the torrent inside the output directory.

Development

Run the test suite:

npm test

Run a single test file:

npm test -- tests/download.test.js

Build the TUI binary from source:

npm run build-tui

Contributing

See CONTRIBUTING.md for setup, conventions, and how to submit changes.

License

MIT

Acknowledgements

Built with bencode for torrent decoding and Bubble Tea for the TUI.