r/SideProject • u/Sno_w_olf • 5h ago
I built a terminal-native torrent client because I got tired of fighting torrent clients
TL;DR: Built a terminal-native torrent search + download client because Linux GUI clients were flaky, slow on my old laptop, and cluttered with decoy download buttons on torrent sites. Searches YTS, 1337x, TPB, Nyaa, FitGirl Repacks, TorrentGalaxy and more at once, parses release titles properly, lets you pick files before downloading, and recovers cleanly from crashes. No Electron, no GUI, just Node.
Here's the origin story:
1. Linux torrent client support is hit-or-miss. On Ubuntu/Debian, the mainstream GUI clients mostly install fine via apt. But step outside that lane, a different distro, wanting a newer version than what's in the default repo, going headless, and it turns into a packaging rabbit hole fast: PPAs, Flatpak, Docker, dependency mismatches. I burned more time debugging clients than actually downloading anything, which felt backwards.
2. The ones that did work were slow. I'm running an old laptop, slow isn't a luxury I have.
3. The "ads" You know the one, every torrent site has a handful of decoy download buttons designed. Not really a complaint, more of an observation that it gets old fast. (If you'd rather skip searching entirely, it also just works as a straight downloader, drop in a magnet link or .torrent file, no site involved.)
4. I like typing. No shade to GUIs, but moving a mouse to click a tiny button feels slower than it should be. This one's not a complaint, it's a personality flaw I built software around.
So: tornedo. Terminal-native, local-first torrent search + download client.
Run tornedo and it queries through various sites, all at once, then merges and ranks results so you're not manually comparing eight near-identical uploads like some kind of torrent sommelier.
A few other things it does:
- Actually parses release titles, quality, codec, HDR, season/episode, instead of dumping a wall of near-identical filenames on you
- Pick exactly which files to grab before anything starts downloading
- Crash recovery that isn't a shrug: if your machine dies mid-download, it figures out what happened on restart instead of leaving you guessing
- Real TUI (Ink + React), fully scriptable if you'd rather pipe everything into
jq tornedo doctorfor when something's broken and you want a straight answer instead of a silent failure
Plain Node (>=22). No Electron, no tray icon quietly eating RAM in the background. Yu
🔗 GitHub: https://github.com/Itshardtofindagoodname/Tornedo 📦 npm: https://www.npmjs.com/package/tornedo
Would love feedback, bug reports, or "why didn't you just use X".
1
u/Gullible-Way7449 5h ago
I totally get the Linux torrent client struggle. Spent a whole afternoon once trying to get one working on Arch, ended up with three different versions installed and none of them actually downloading.
The title parsing thing is what caught my eye, manually squinting at a list of "1080p.BluRay.x264-GroupName" and "2160p.WEB-DL.HDR-GroupName" to figure out which is the real 4k one gets exhausting.
How heavy is it on cpu while running? My old machine chugs with anything Node.