DEV Community

Cover image for I built a terminal torrent client because Linux GUI clients kept breaking on me
Debarjun Thakur
Debarjun Thakur

Posted on

I built a terminal torrent client because Linux GUI clients kept breaking on me

I built this after getting tired of GUI torrent clients on Linux either being a packaging headache outside Ubuntu/Debian, or just being heavy on an old laptop I use daily.

Tornedo is plain Node (>=22), no Electron. A few things about the implementation:

TUI built with Ink + React, but the whole thing is scriptable - skip the interactive UI and pipe output straight into jq if you want
Queries multiple torrent indexers concurrently, then merges and ranks results instead of showing eight near-identical uploads side by side
Parses release titles into structured metadata (quality, codec, HDR, season/episode) rather than raw filenames
Manual file selection before anything downloads
Crash-safe - reconciles download state on restart instead of leaving things half-verified
tornedo doctor for diagnostics when something breaks, instead of a silent failure

It also works as a plain magnet-link/.torrent downloader without the search layer at all.

GitHub: https://github.com/Itshardtofindagoodname/Tornedo
npm: https://www.npmjs.com/package/tornedo

Happy to go into the crash-recovery design or the release-title parser if anyone's curious, those were the two trickiest parts to get right.

Top comments (0)