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.1.tar.gz (88.0 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.1-py3-none-any.whl (100.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: wrkmon-1.3.1.tar.gz
  • Upload date:
  • Size: 88.0 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.1.tar.gz
Algorithm Hash digest
SHA256 995e3facde2202751a1bc82d68a587d029d92ba852d3c8ddf777419b1de7842c
MD5 b96bd92e0561469a71567635294e3581
BLAKE2b-256 9138eb3597cffcdb40d860e2a53230b4a0e01c54ab3a9fcf03b36edbbe7ad1ff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: wrkmon-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 100.5 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e7b6b03f7bcf32a87f095f68eba8f8e881a43e04fb616bfd8ccf386a5f60dfa5
MD5 95f20133a85e17e576a40f31af8c944c
BLAKE2b-256 5433e5b631d7233c4e5d52257c01665b08e5a2ebb86196e3ec799d079ff71034

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