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 — no public trackers, no BitTorrent swarm, just a private peer-to-peer bridge between your media servers.

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 doesYou need it 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 — drive everything from your existing *arr UI.
PeerAnother jack instance — 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 with zero special setup — to them, jack looks like any other indexer.

Next steps

Released under the GPL-3.0 License.