Skip to main content

plex-tui

plex-tui

CI Release PyPI AUR Homebrew License

plex-tui is a terminal Plex client for browsing and watching media.

It is built around a quiet three-pane interface: libraries on the left, artwork and media selection in the center, and playback context on the right. The app is keyboard-first, media-first, and designed for choosing something to watch without leaving the terminal.

Plex, from the terminal.

plex-tui demo preview

Watch the showcase or install from your package channel:

brew trust --tap so1omon563/plex-tui
brew tap so1omon563/plex-tui
brew install plex-tui
plex-tui --smoke

What It Feels Like

plex-tui is not a server administration tool and it is not a retro terminal novelty. It treats the terminal as a modern application surface: structured, calm, and direct.

Real media gets real artwork. Details unfold only when they help the decision. The footer keeps common actions close, while the full keyboard reference stays in Help.

Screenshots

Three surfaces carry the shape of the app: the main movie grid, personalized Continue Watching state, and first-class TV browsing.

Movies: the primary browsing surface

Movie library grid with poster artwork and details pane

Poster artwork carries the page. The selected item gains just enough metadata and action context to make the next choice clear.

Continue Watching: Plex state at the front

Continue Watching grid with saved playback progress

In-progress media opens from Plex playback state, with resume progress and direct playback actions visible without changing modes.

TV Shows: shows, seasons, and episodes

TV show library grid with show posters and selected show details

TV libraries use the same browsing rhythm as movies while keeping show context clear as you move into seasons and episodes.

What It Does

  1. Browse Plex libraries through a focused terminal interface.
  2. Navigate with explicit keyboard flows.
  3. Launch playback through mpv while Plex remains the source.
  4. Keep diagnostics near the running app.
  5. Fit macOS and Linux terminal habits.

Install

plex-tui requires Python 3.11 or newer, a Plex account/server, and mpv for playback.

Homebrew

brew trust --tap so1omon563/plex-tui
brew tap so1omon563/plex-tui
brew install plex-tui
plex-tui --smoke

The Homebrew formula installs mpv automatically.

PyPI

pipx install plex-tui
plex-tui --smoke
plex-tui

This is the recommended cross-platform Python install path. Install mpv separately with your platform package manager.

Arch Linux

paru -S plex-tui
plex-tui --smoke

Any AUR helper can be used; paru is only an example.

From GitHub

pipx install "git+https://github.com/so1omon563/plex-tui.git"
pipx install "git+https://github.com/so1omon563/plex-tui.git@v0.13.6"

Use this path when testing main or a tagged release before it reaches your preferred package channel.

First Run

Launch plex-tui and follow the Plex browser login. The app saves the selected server connection and token in the platform config directory.

Useful checks:

plex-tui --version
plex-tui --smoke
plex-tui --diagnostics
plex-tui --config-path

Read the User Guide for configuration, playback, keyboard shortcuts, artwork modes, diagnostics, and CLI helper commands.

Current Surface

  • Plex browser login, server selection, and Plex Home profile switching.
  • Library-first sidebar with Continue Watching, Playlists, normal library browsing, and a Plex Services row for optional Discover, On Plex, and categorized non-DRM Live TV features.
  • Movie, show, season, episode, collection, category, hub, and playlist views.
  • Poster artwork in grid view, with Kitty/Ghostty native image support when available and block art elsewhere.
  • Current-library search, global Plex search, and read-only CLI helpers.
  • External mpv playback with play-from-start, resume, optimized transcode, progress reporting, watched state, and active pause/seek/stop controls.
  • Audio and subtitle preference pickers with saved defaults.
  • Settings for stream preferences, playback display, artwork, grid density, library visibility/order, optional sidebar entries, and diagnostics.

Documentation

Development

git clone https://github.com/so1omon563/plex-tui.git
cd plex-tui
python3 -m venv .venv
source .venv/bin/activate
make install-dev
make check

Common commands are documented in Contributing. Public release and package maintenance lives in Release Checklist and Packaging.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plex_tui-0.16.4.tar.gz (11.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

plex_tui-0.16.4-py3-none-any.whl (96.1 kB view details)

Uploaded Python 3

File details

Details for the file plex_tui-0.16.4.tar.gz.

File metadata

  • Download URL: plex_tui-0.16.4.tar.gz
  • Upload date:
  • Size: 11.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for plex_tui-0.16.4.tar.gz
Algorithm Hash digest
SHA256 75b092c7e88dec23810b8785a00bf4883d43d54d55b90049c16b1551e6265f60
MD5 f7c6316c053e9db0fee1249701c81fb2
BLAKE2b-256 d0d7e6c51c15291f4d55b3fb7fbed5377fc8926d756a1cd652ce5894a7930190

See more details on using hashes here.

Provenance

The following attestation bundles were made for plex_tui-0.16.4.tar.gz:

Publisher: bump.yml on so1omon563/plex-tui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file plex_tui-0.16.4-py3-none-any.whl.

File metadata

  • Download URL: plex_tui-0.16.4-py3-none-any.whl
  • Upload date:
  • Size: 96.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for plex_tui-0.16.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ddb8334d2ff4665b1a039deae2af0e23f95397d3d791f99ded1101ecf09590cd
MD5 2e52214261ffd6325b78c09460ace407
BLAKE2b-256 1fbf6142c3d1949058b57da2e34e73a6d7eeecd86ea999239fee2ab36468eb06

See more details on using hashes here.

Provenance

The following attestation bundles were made for plex_tui-0.16.4-py3-none-any.whl:

Publisher: bump.yml on so1omon563/plex-tui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page