Skip to content

Repository files navigation

torrnado

A terminal BitTorrent client: a vim-like TUI (bubbletea/lipgloss) on top of a torrent engine (anacrolix/torrent) that runs as a background daemon. The TUI and CLI are both thin clients that talk to that daemon over a local Unix socket - which is what makes detached operation (start a download, close the terminal, it keeps going) possible without a separate architecture.

ci

Documentation: torrnado.dev

┌──────────────────┐┌────────────────────────────────────────────────────────────────────┐
│ torrnado         ││    Name                  Progress            Size    Status        │
│                  ││ >  archlinux-2026.08.01… ━━━━━━━────── 42%   1.5GiB  downloading   │
│ Status           ││    Fedora-KDE-Desktop-L… ━━━━━━━━━━━━ 100%   3.1GiB  seeding       │
│  All             ││ *  ubuntu-26.04-desktop… ━━──────────  11%   6.1GiB  paused        │
│  Downloading     ││                                                                    │
│  Seeding         │└────────────────────────────────────────────────────────────────────┘
│  Completed       │┌────────────────────────────────────────────────────────────────────┐
│  Stopped         ││  ─ [Pieces]  Peers   Files                                         │
│                  ││  1950/24208 pieces verified × 256.0KiB                             │
└──────────────────┘└────────────────────────────────────────────────────────────────────┘
 ↓ 21.4MiB/s  ↑ 0B/s  │  3 torrents                              added 1 torrent(s)

Install

Grab an archive for your platform from the releases page, or build it:

go build -o torrnado ./cmd/torrnado   # requires Go 1.25+

There is no install step beyond putting the binary on your $PATH.

Use

torrnado add 'magnet:?xt=urn:btih:...'   # spawns a daemon if none is running
torrnado                                  # attach the TUI
torrnado list --watch                     # or just watch from the shell

Quitting the TUI (q) does not stop the daemon - your torrents keep running. Press h in the TUI for every key, and : for the command palette.

What it does

  • Runs detached. One daemon; the TUI and CLI attach and detach freely.
  • Survives restarts. The torrent list, paused state, save paths, rate limits and per-file priorities are restored on start.
  • Streams while downloading. v on a video opens it in your player immediately, seeking included.
  • Opens the folder. o shows a torrent's files in Finder, your file manager, or whatever you configure.
  • Waits for your VPN. Optionally holds every transfer until the system is on one, and lets them go again when it reconnects.
  • Scripts. Every action is a subcommand.
  • Themes. Eight built in, plus your own; :theme switches live.

Documentation

Everything else lives at torrnado.dev:

Installation · Quick start build it and add a torrent
The TUI · Command line panes, keys, palette, every subcommand
Configuration · Themes config schema, keybinds, palettes
Streaming preview play a file while it downloads
The daemon · systemd · Docker leave it running on a box
Library limitations the anacrolix/torrent traps this works around
Development layout, tests, how to work on it

Contributing

make check - gofmt, vet and the unit tests - is the gate every commit has to pass. make e2e drives the built binary through the shell suites, and make docker-test runs all of it on Linux, which is where the daemon is meant to live. See Development.

License

MIT. See LICENSE.

About

A terminal BitTorrent client with a vim-like TUI and a daemon that keeps running without it.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages