Self-hosted Plex and Tunarr automation

Programmarr

Programmarr plans, deploys, and optionally maintains themed Tunarr channels using metadata from a Plex-backed media library.

IN THIS PROFILE
Product context, evaluation guidance and source-linked answers.
ADDED TO VIBEATLAS
September 15, 2026
EDITORIAL UPDATED
September 15, 2026
Programmarr — website screenshot
Website screenshot captured on 2026-09-14. The page may change after capture.Captured website
THE PRODUCT, IN CONTEXT

What to know before you start

Programmarr is a self-hosted web application for turning media stored in Plex into themed virtual television channels managed through Tunarr. It requires Tunarr 1.x and a Plex-backed media source. The application reads Plex library metadata, helps the user assemble a channel lineup, and deploys selected channels to Tunarr. The repository describes a web interface modeled on the workflow of media-management applications such as Sonarr and Radarr, as well as an advanced command-line interface for users who prefer terminal-based operation. The product therefore fits into an existing self-hosted media stack rather than serving as a general-purpose media library service.

The central workflow is the Planner. Users can generate possible channels from genres, decades, studios, directors, actors, franchises, series, networks, and other metadata found in their Plex library. Programmarr presents a live, counted list so the user can inspect available channel ideas and select the exact ones to deploy. Its standard planning process is deterministic and does not require AI. The project also documents an optional AI layer intended to find themes that fixed metadata filters may overlook, such as heist films or time-travel stories, and to divide broad groups by tone. Because this layer is optional, the core product can be evaluated independently of AI-generated suggestions.

Deployed channels can be marked as live and rechecked against the Plex library on a schedule. Programmarr then patches those channels in place as qualifying media appears, allowing new episodes or franchise films to enter an existing channel without a complete redeployment. The application also supports category ordering and sequential channel numbering. Fresh deployments begin at channel 1, while deployments that retain existing channels place new ones above the highest retained number. Users can reorder channel categories through the settings interface. Per-channel commercial breaks are also documented: they depend on a filler list configured in Tunarr and can be enabled for selected channels before the next deployment.

The documented deployment path uses a prebuilt container image from GitHub Container Registry. A Docker Compose configuration exposes the application on port 7979 and mounts a data directory for configuration, channels, and library exports. On first run, an onboarding wizard asks the user to create a login, supply the Tunarr and Plex URLs, and test both connections. A TrueNAS Compose example is included. Advanced users can instead run the Python command-line application without Docker; the repository states that its scripts use only the Python standard library. These choices still make Programmarr an operator-managed product: users need a suitable server environment and must maintain the surrounding Plex and Tunarr services.

Deployment behavior deserves attention when evaluating the product. The default mode replaces the channels managed by Programmarr. Users with an existing hand-built Tunarr lineup are instructed to choose Add/Edit mode rather than Nuke mode. The application snapshots the existing lineup before deleting anything, but reviewing the mode and backup behavior remains important before a first production deployment. Container images are published when versions are released and do not update themselves. The interface displays an update-available banner, after which an operator can pull and restart the container. Watchtower can be added for automatic release updates, although the documented configuration requires Docker socket access and, on newer Docker engines, a specified Docker API version.

The clearest fit is a technically comfortable Plex user who already runs, or intends to run, Tunarr 1.x and wants repeatable channel creation based on library metadata. It is not currently suitable for a Tunarr installation backed only by Jellyfin or Emby. The project explicitly requires a Plex-backed source, and its open tracking issue explains that Plex supplies metadata including genres, decades, studios, directors, actors, country, mood, and style tags, as well as DVR mapping used by the workflow. Jellyfin and Emby support is being used to gauge demand, with no promised timeline. Programmarr is therefore best assessed as a focused automation and curation layer for a specific self-hosted Plex-and-Tunarr stack, not as a general-purpose virtual television platform.

AI-generated editorial illustration for Programmarr
AI illustration AI-generated illustration by gpt-image-2. Conceptual artwork; it does not depict the product's actual interface.
LISTING SNAPSHOT

At a glance

Directory information for Programmarr. Check the official source for current terms.
CategoryDeveloper Tools
PlatformWeb
Pricing categoryOpen source
Built withClaude Code
Added to VibeAtlasSeptember 15, 2026
Decision lenses

Three questions that determine whether the workflow fits

The product’s value depends less on general media-server needs than on the exact services, metadata, and deployment controls already present in the installation.

Stack dependency
Do you already use Plex with Tunarr 1.x?

Programmarr requires Tunarr 1.x and a Plex-backed media source. A Tunarr installation using only Jellyfin, Emby, or local files does not satisfy the documented requirement.

Curation model
Do you want metadata-driven channel planning?

The Planner creates counted channel candidates from Plex metadata and lets the operator select an exact lineup. Its normal workflow is deterministic; the AI discovery layer is optional.

Operational control
Are you comfortable managing deployment modes and updates?

The default deployment mode replaces channels managed by Programmarr. Add/Edit mode is recommended by the project for preserving a hand-built lineup, while software updates require a container pull or separately configured Watchtower automation.

Sources: [1] github.com[2] github.com

Evaluation plan

Test the complete path before handing over a lineup

The following steps are editorial recommendations based on the project’s documented requirements and deployment behavior.

  1. 01

    Verify the media-source requirement

    Confirm that the target Tunarr 1.x installation has a Plex-backed source. Do not proceed on the assumption that Tunarr’s own Jellyfin or Emby support carries over to Programmarr.

  2. 02

    Deploy with persistent storage

    Run the prebuilt container with port 7979 exposed and a host directory mounted at /data. Alternatively, technically experienced evaluators can inspect the documented Python CLI path.

  3. 03

    Complete onboarding and test connections

    Create the local login, enter the Plex and Tunarr URLs, and use the onboarding wizard’s connection tests before attempting channel planning.

  4. 04

    Start with a limited Add/Edit deployment

    If Tunarr already contains hand-built channels, choose Add/Edit rather than the default replacement-oriented mode. Review the snapshot and backup behavior before testing a small set of planned channels.

  5. 05

    Observe maintenance and update behavior

    Mark a test channel live, add matching media, and check whether scheduled patching suits the intended workflow. Separately decide whether updates will remain manual or be automated through Watchtower.

Sources: [1] github.com

Operational fit

A focused tool for one media stack

Good fit
Plex and Tunarr operators seeking repeatable curation

Programmarr is a good fit when Plex supplies rich library metadata, Tunarr 1.x is already part of the stack, and the operator wants planned channels that can be redeployed or maintained on a schedule.

Think twice
Jellyfin-only, Emby-only, or low-maintenance setups

Jellyfin and Emby sources are explicitly unsupported, with no promised delivery date. The product also requires self-hosting, connection configuration, deployment-mode decisions, persistent storage, and an update process.

Sources: [1] github.com[2] github.com

VERIFIABLE SIGNALS

What the public footprint actually shows

Recorded research signals from 2026-09-14. The editorial score is a selection heuristic, not a measured product rating. Counts may change.

BUILD-TOOL ATTRIBUTION
Claude Code

A retrieved public source attributes this project's development to this tool. The source claim was checked on 2026-09-13; it is not an independent audit of the development process.

Check the evidence
EDITORIAL SCORE
Selection priority
91/100

Programmarr is a clearly described, publicly available self-hosted app that automates themed virtual TV-channel creation from Plex libraries in Tunarr. Its repository provides concrete capabilities, Docker setup instructions, operational details, and explicit Claude Code attribution, making it suitable for a factual directory listing.; Real, functional-looking public project distributed through a documented Docker image and an advanced CLI.; Specific utility: plans, deploys, and optionally maintains themed Tunarr channels from Plex metadata.; Detailed product documentation covers setup, onboarding, updates, backups, channel numbering, commercials, and configuration.; Build-tool attribution i

SEARCH FOOTPRINT
Indexed visibility
N/A

No dependable indexed-page estimate was available from the configured search service.

OPEN SOURCE
Repository not confirmed
Unknown

No clearly attributable public GitHub repository was found. This does not prove that the product is closed source.

Editorial conclusion

Useful automation when the prerequisites already match

Programmarr addresses a concrete operational task: converting Plex metadata into a selected Tunarr lineup and keeping chosen channels synchronized as a library changes. Its Planner, scheduled live-channel updates, deployment controls, numbering settings, commercial configuration, Docker image, and CLI are all described in the project repository.

The main caveat is architectural rather than cosmetic. Programmarr is tied to Plex metadata and DVR behavior, even though Tunarr itself supports additional media sources. Our editorial recommendation is to evaluate it first in a non-critical or backed-up Tunarr environment, use Add/Edit mode around an existing lineup, and treat optional AI suggestions as an additional discovery path rather than a requirement.

Sources: [1] github.com[2] github.com[3] github.com

Product questions

What to know before installing Programmarr

What services does Programmarr require?

The repository requires Tunarr 1.x and Plex. Tunarr must have a Plex-backed media source that Programmarr can access.

Read the source
Does Programmarr support Jellyfin or Emby?

No. The project states that Jellyfin and Emby are not currently supported. An open issue is gauging demand, but it makes no promise about timing.

Read the source
Is Docker required?

No. Docker Compose with a prebuilt GHCR image is the documented quick-start path, but the repository also provides a Python CLI and states that its scripts have no dependencies beyond the standard library.

Read the source
Does channel creation require AI?

No. The documented Planner is deterministic. AI is an optional layer for discovering themes that fixed filters may miss and for splitting broad groups by tone.

Read the source
Can a deployment replace existing Tunarr channels?

Yes. The default mode replaces channels managed by Programmarr. The project advises users with a hand-built lineup to use Add/Edit rather than Nuke mode and states that it snapshots the existing lineup before deletion.

Read the source
Is Programmarr open source, and is hosted pricing available?

The repository identifies Programmarr as MIT-licensed. The supplied documentation does not describe a hosted service, subscription, or other commercial pricing.

Read the source

Sources: [1] github.com[2] github.com

REFERENCES & EDITORIAL NOTES

Trace the details to their sources

Editorial updated: September 15, 2026. Features, prices and repository counts can change. Evaluation advice is editorial interpretation, not a claim of hands-on testing.

  1. github.com/AlpineArchitecture/programmarr
  2. github.com/AlpineArchitecture/programmarr/issues/36
  3. github.com/chrisbenincasa/tunarr
Filed under
channel planningdockermedia automationplexpythonself-hostedtunarrvirtual tv

Similar projects