TorrentLive
Archarm64 native
Download
macOS · Windows · v0.1.0

A torrent client that plays the video while it downloads.

Press play the moment a torrent starts. Torrent Live streams video and audio straight out of the swarm — skip ahead and it fetches the pieces that part of the file needs, so nothing waits for the download to finish. That's WebTorrent underneath, the streaming BitTorrent engine, running as a proper desktop app with the full peer swarm rather than a browser tab. The interface borrows from studio software: a session grid where every torrent is a clip with its own colour and its own level meter.

macOS 12+ · Apple Silicon Windows 10+ · x64 MIT licensed

The interface, redrawn here in the browser. Meters advance on the app's own 500 ms snapshot tick.

01

No Rosetta. Nothing compiled.

scripts/check-native.mjs

Rosetta gets pulled into an Electron app one of two ways: the Electron binary itself is x64, or a dependency loads a compiled .node addon built for x86_64. This build closes both doors.

Electron is arm64. Electron 43 ships native Apple Silicon builds, and the packager targets arch: [arm64] explicitly. The running app reports its own architecture in the top-right badge — green for arm64 native, red the moment it is ever translated.

Nothing is ever compiled. WebTorrent pulls in five optional native accelerators. Every one has a pure-JavaScript fallback, and every one ships a prebuilt darwin-arm64 binary. Packaging sets npmRebuild: false, so node-gyp is never invoked: no compiler, no Xcode toolchain, no chance of an x86_64 object being linked into an arm64 app.

npm run check:native
bufferutil arm64:1 x86_64-only:0
fs-native-extensions arm64:1 x86_64-only:0
node-datachannel arm64:1 x86_64-only:0
utf-8-validate arm64:1 x86_64-only:0
utp-native arm64:1 x86_64-only:0
02

A session grid, one clip per torrent.

flat · 1px seams · yellow selection

A session grid is a dense field of coloured clips with level meters, a browser down the left, and a detail panel across the bottom. That maps onto a torrent client almost one-for-one — which is the whole idea.

The styling rules come across intact: completely flat, with no gradients, no shadows and no rounded corners; panels divided by near-black 1px gaps rather than whitespace; monochrome charcoal chrome with saturated colour reserved for data; and selection drawn as a solid yellow fill with black text — the loudest signal in the interface, used sparingly.

RegionWhat it holds
Control barMagnet input, global ↓/↑, peers, ratio
Browser sidebarStatus filters — All, Downloading, Seeding, Paused
Session gridOne row per torrent, each with its own clip colour
Level metersProgress bars, green turning blue on seed
Detail viewFile list of the selected torrent, plus the player
03

What's running underneath.

Electron 43 · React 19 · WebTorrent 3
Full swarm

The client lives in the main process

WebTorrent runs in Electron's main process, not the renderer. That's deliberate: the main process can open raw TCP sockets and speak DHT, so the app reaches the ordinary BitTorrent swarm. A renderer-hosted client would only ever see WebRTC peers.

Play before it lands

Streaming over loopback

The sandboxed renderer can't read a torrent's chunk store, so the main process serves each file over 127.0.0.1 with HTTP byte-range support. Selecting a range tells WebTorrent to prioritise those pieces — video plays before the download finishes, and seeking pulls the pieces it needs.

Locked down

A renderer that holds no keys

Context isolation on, node integration off, sandbox on, and a restrictive CSP where media-src allows only 127.0.0.1. The stream server binds to loopback alone and validates every infohash against a 40-hex pattern before touching a file. External links open in your browser, never in-app.

04

Download

neither build is notarized or code-signed
macOS

Torrent Live 0.1.0

Apple Silicon (arm64) .dmg
Download the .dmg
Requires
macOS 12+ · arm64
Size
SHA-256
Built

First launch

This build is signed with a development certificate and hasn't been through Apple's notary service, so Gatekeeper will refuse it the first time. Drag the app to Applications, then right-click it and choose Open — that gives you an Open button the plain double-click doesn't offer. You only do this once.

If macOS still blocks it, clear the quarantine flag:

xattr -dr com.apple.quarantine "/Applications/Torrent Live.app"

Intel Macs

There's no x64 build. The point of the project is an app that never touches Rosetta, so it ships arm64 only. On an Intel Mac, build from source with npm run dist:universal.

Windows

Torrent Live 0.1.0

x64 and arm64 installer
Download the installer
Requires
Windows 10+ · x64 or arm64
Size
SHA-256
Built

First launch

The installer isn't code-signed, so SmartScreen will show "Windows protected your PC". Choose More info, then Run anyway. It installs per-user by default, so it never asks for an administrator password, and you can change the install location on the way through.

One difference

The optional native accelerators are built for macOS, so the Windows build falls back to the pure-JavaScript paths they were always designed to fall back to. In practice that means TCP rather than µTP transport. Everything else behaves the same.

05

Where it stands

v0.1.0 — first public build
Working today
  • Add by magnet link, info hash, .torrent file, or drag-and-drop
  • Pause and resume any torrent
  • Remove, with the option to delete the files too
  • Reveal in Finder
  • Per-file progress in the detail panel
  • Streaming playback of video, audio and images mid-download
Not yet
  • Creating torrents and seeding local files
  • Persisting the session across restarts
  • Bandwidth limits
  • Sequential-download toggle

Every one of those is up for grabs. The source is on GitHub, and the README walks through the architecture — why the torrent client lives in the main process, how the loopback stream server works — before you touch anything. Issues and pull requests are welcome.

View the source
06

Built on WebTorrent

all MIT licensed

Torrent Live is, honestly, a front end. Everything that makes it a torrent client — the DHT, the peer wire protocol, piece selection, the streaming that lets a video play before it has finished arriving — is WebTorrent, written by Feross Aboukhadijeh and WebTorrent, LLC. This project contributes an interface and a macOS shell around it.

If you find this useful, the upstream project is the thing worth starring, funding and contributing to: webtorrent.io · github.com/webtorrent/webtorrent.

This project's own source is at github.com/juananime/torrentlive, MIT licensed like everything it stands on. Contributions welcome.

Every component below is MIT licensed, and each one's full licence text ships inside the application bundle as required.

Component Version Copyright
WebTorrent 3.0.21 © Feross Aboukhadijeh and WebTorrent, LLC
Electron 43.4.0 © Electron contributors; © 2013–2020 GitHub Inc.
React 19.2.8 © Meta Platforms, Inc. and affiliates