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.3.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.3-py3-none-any.whl (96.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: plex_tui-0.16.3.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.3.tar.gz
Algorithm Hash digest
SHA256 18f9e8889b1a26ee58762a856e5d2ed52e07fe2f898bc2ce9eadcb6980142a2e
MD5 4e1b5752ca2b556019558767c4873598
BLAKE2b-256 80ab893cfc95fcf84e67a9cc2f851569fd81aaa4a3cb06f2bf359244216ba46a

See more details on using hashes here.

Provenance

The following attestation bundles were made for plex_tui-0.16.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: plex_tui-0.16.3-py3-none-any.whl
  • Upload date:
  • Size: 96.0 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 482a12d397a2f7804948b71091529e9a6d41409abb118e13a67d035e630af120
MD5 d50bb4840254a1013afff9cf0217037d
BLAKE2b-256 d5d9895bd33acf9bb8bf8df644bc1eff77936d838b2b642f04ff6e0170c8b611

See more details on using hashes here.

Provenance

The following attestation bundles were made for plex_tui-0.16.3-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