Skip to content

What is jack? ​

jack lets you and your friends share media libraries with each other through the *arr stack you already run. You point Radarr/Sonarr at jack, search like you would on any indexer, and when a friend has the movie or episode you want, jack pulls it straight from their server into your library. The transfer runs over a private peer-to-peer bridge between your media servers, with no public tracker and no BitTorrent swarm involved.

Built with Bun and Hono.

Concepts ​

jack sits between three kinds of servers. You only need to configure the ones relevant to what you want to do (share, consume, or both).

jack talks to Radarr/Sonarr for everything; there's no separate media server. Each server you configure is one entry in servers, with two role flags (it can be either, or both):

RoleWhat it doesNeeded to
sourcejack reads your Radarr/Sonarr library and serves it to peers: it searches your movies/episodes that have files and streams those files.Share your library with friends.
destinationjack registers itself in that Radarr/Sonarr as a Torznab indexer + qBittorrent download client and triggers imports of finished downloads.Consume, driving everything from your existing *arr UI.
PeerAnother jack instance, run by a friend. You list their URL + API key under peers; jack queries them when your *arr searches.Consume media your friends have.

So a typical "both" setup has your Radarr/Sonarr as source: true anddestination: true (share your library and search your friends'), plus some peers (friends, to consume from).

What's Torznab?

Torznab is the search API that indexers speak to Radarr/Sonarr (the same protocol Prowlarr/Jackett expose). jack pretends to be a Torznab indexer so your *arr apps can search your friends' libraries without special setup. To them, jack looks like any other indexer.

Next steps ​

Released under the GPL-3.0 License.