Why is an indexer separate from a download client?

Searching for a release and fetching it are two different jobs, done by two different kinds of service.

Sonarr and Radarr keep indexer managers and download clients as two separate services because one holds your indexer credentials and returns candidate releases, and the other holds your download client’s own credentials and moves the bytes. Kochab follows the same split.

What each one does

Indexer manager Download client
Job Hold your indexer credentials and search them through one endpoint Fetch a chosen release and report queue progress
Protocol Kochab speaks Each manager’s own API (Prowlarr’s api/v1, Jackett’s JSON results endpoint, NZBHydra2’s Newznab-compatible API) Client-specific API (SABnzbd’s API, qBittorrent’s Web UI API, and so on)
Kochab connects to Prowlarr, Jackett, NZBHydra2 SABnzbd, NZBGet (Usenet); qBittorrent, Transmission, Deluge (torrents)

Why not combine them

Sonarr or Radarr is what connects the two: it can search several indexer managers and send the release it picks to whichever download client you configured, but no indexer manager talks to a download client directly. Merging the two would mean building indexer support into every download client, or download-client support into every indexer manager.

Because the two stay separate, you can add or swap either side without touching the other. Add Jackett alongside Prowlarr, or move an indexer from one manager to the other, and your download client setup does not change. Add a second qBittorrent instance, and your indexers do not need reconfiguring. Prowlarr’s sync to Sonarr and Radarr works the same way: each app keeps its own indexer entries and makes its own search decisions, even though those entries point back at Prowlarr - see Set up Prowlarr indexer sync for Sonarr and Radarr.

Kochab adds indexer managers and download clients as separate service types, matching the split above: indexer managers under Indexers, download clients under Download clients. See Add and configure a service for how to add either, Prowlarr vs Jackett and SABnzbd vs NZBGet for what Kochab exposes through each option, and What is an *arr stack? for how these pieces fit into the rest of the stack.