Skip to main content

Stealth TUI YouTube audio player - stream music while looking productive

Project description

wrkmon

Stream YouTube audio from your terminal - a beautiful TUI music player that runs anywhere.

License Python Platform PyPI

wrkmon is a keyboard-driven YouTube audio player built with Textual. Search, queue, and stream music without leaving your terminal. It looks like a developer tool, because it is one.

Features

  • Search & Stream - Search YouTube and play audio instantly, no browser required
  • Queue Management - Build playlists with shuffle, repeat (off/one/all), and drag-to-reorder
  • Play History - Automatically tracks everything you've listened to
  • Playlists - Create, import, and export playlists (JSON and M3U formats)
  • Lyrics - Fetch and display lyrics for the current track (l)
  • Download - Save tracks as MP3 for offline listening (d)
  • Autoplay / Radio Mode - Automatically plays related tracks when queue ends (a)
  • Playback Speed - Adjust speed from 0.25x to 3.0x (] / [)
  • Focus Mode - Instantly switch to a clean terminal view (b)
  • Themes - Multiple color themes including GitHub Dark, Dracula, Nord, Matrix (t)
  • Sleep Timer - Set a timer to stop playback automatically
  • Desktop Notifications - Get notified when tracks change
  • Media Keys - MPRIS support on Linux, media key support on Windows/macOS
  • Cross-Platform - Works on Windows, macOS, Linux, WSL, and FreeBSD
  • Resume Playback - Saves queue and playback position between sessions

Installation

Quick Install (Recommended)

macOS / Linux / WSL:

curl -sSL https://raw.githubusercontent.com/Umar-Khan-Yousafzai/Wrkmon-TUI-Youtube/main/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/Umar-Khan-Yousafzai/Wrkmon-TUI-Youtube/main/install.ps1 | iex

The install script automatically detects your OS and package manager, installs mpv if missing, and sets up wrkmon.

pip

pip install wrkmon

You also need mpv installed:

Platform Command
Ubuntu/Debian sudo apt install mpv
Fedora sudo dnf install mpv
Arch sudo pacman -S mpv
macOS brew install mpv
Windows winget install mpv

Optional: JavaScript Runtime

For better YouTube compatibility, install deno or Node.js. The install script handles this automatically.

Usage

wrkmon              # Launch the TUI
wrkmon update       # Check for updates
wrkmon deps         # Check dependencies

Keyboard Controls

Navigation

Key Action
F1 Search view
F2 Queue view
F3 History view
F4 Playlists view
j / k Move up/down in lists
g / G Jump to top/bottom

Playback

Key Action
F5 / Space Play / Pause
F6 / - Volume down
F7 / + Volume up
F8 / n Next track
p Previous track
F9 / s Stop
m Mute / Unmute
r Cycle repeat (Off / One / All)
] / [ Speed up / down

Features

Key Action
l Show lyrics
d Download current track
a Toggle autoplay / radio mode
b Focus mode
t Theme picker
? Help screen
F10 Add to queue
Escape Close overlay / go back
Ctrl+C Quit

Configuration

wrkmon stores its config at:

  • Linux/macOS: ~/.config/wrkmon/config.toml
  • Windows: %APPDATA%\wrkmon\config.toml

Example config.toml:

[general]
volume = 80
shuffle = false
repeat_mode = "none"
autoplay = false
notifications = true

[player]
playback_speed = 1.0
prefetch_next = true

[ui]
theme = "github_dark"
show_thumbnails = true

[download]
directory = ""
format = "bestaudio"

Requirements

  • Python 3.10+
  • mpv media player
  • Optional: deno or Node.js (for better YouTube support)

Development

git clone https://github.com/Umar-Khan-Yousafzai/Wrkmon-TUI-Youtube.git
cd Wrkmon-TUI-Youtube
pip install -e ".[dev]"
pytest -v

Tests run on Python 3.10, 3.11, and 3.12 across Linux, macOS, and Windows via GitHub Actions CI.

License

MIT License - see LICENSE for details.

Author

Umar Khan Yousafzai - GitHub

Project details


Download files

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

Source Distribution

wrkmon-1.3.3.tar.gz (88.7 kB view details)

Uploaded Source

Built Distribution

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

wrkmon-1.3.3-py3-none-any.whl (101.2 kB view details)

Uploaded Python 3

File details

Details for the file wrkmon-1.3.3.tar.gz.

File metadata

  • Download URL: wrkmon-1.3.3.tar.gz
  • Upload date:
  • Size: 88.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for wrkmon-1.3.3.tar.gz
Algorithm Hash digest
SHA256 ed67835ea848d7b6c681b56bc3d11805934fe7e6c99a0b93363ccbc38cc5783c
MD5 8717996aab6ab7f724da2fde9a54e4ab
BLAKE2b-256 b448804a5edfeca9e309769dacff438b4a2bb013fad170387f6d0177409ac9d2

See more details on using hashes here.

File details

Details for the file wrkmon-1.3.3-py3-none-any.whl.

File metadata

  • Download URL: wrkmon-1.3.3-py3-none-any.whl
  • Upload date:
  • Size: 101.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for wrkmon-1.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6a0c9bc97c28104fcffc78498e2d0afe89f3a997e150f07b8faa6c9f44d0a2a4
MD5 1bb9e39d414707265bf6020dc9a6060c
BLAKE2b-256 ae79252cf767d1342aad1b72af6f299efe7467d964b1aa8333028489bdfde044

See more details on using hashes here.

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