ting / ๅฌ
An agent-first multi-source media engine with a terminal face. Search a source, play it through mpv detached from your terminal, and keep controlling it โ from a TUI if you are a human, from a single-line JSON contract if you are a program.
โญโโโฎ โฑโโโฎ โฐโโโฏ โฏ โ
โโโโ โโโโ โโโโ โ โ
Two 100% First-Class Faces
No MCP wrapper needed: machine programs and humans interact on equal terms.
Designed from day zero for AI agents, shell scripts, and headless automation. Zero modal prompts, deterministic behavior.
- Single-line JSON envelope output (
-j) on every verb - Strict 4-tier exit code taxonomy (
0ok /1usage /2+tool fail /4no-op) - Detached background playback daemon lifecycle (
-d,--status,--stop) - Lock-free append-only listening history and durable playlist stores
$ ting-play --search -j -n 2 -- "lofi hip hop"
{"event":"search","engine":"yt","query":"lofi hip hop","count":2,"results":[{"id":"jfKfPfyJRdk","title":"lofi hip hop radio","duration":"live"}]}
A high-craft Go terminal UI with responsive dual-column workspaces, synchronized lyrics, Kitty cover art, and 13 curated themes.
- Five top-level workspaces (Search, Feeds, Queue, Playlists, History) with non-destructive state retention
- Dual-style minimalist pixel wordmarks: calligraphic Monoline (zh) and brutalist Heavy Block (en)
- Responsive dual-column layout: Stage list paired with an Inspector for synchronized lyrics stream
- Full-screen Theater stage mode (
F) with centered lyrics and ambient typography - Sub-cell progress bar, incremental filter (
/), row jump (Nj), and 3-secondzundo - In-terminal album cover art over Kitty graphics protocol with clean fallback
- 13 built-in truecolor/ANSI themes (Catppuccin, Tokyo Night, Nord, Rose Pine, Everforest...)
Three Shipped Source Engines
Site-specific knowledge is isolated in engines; the player and TUI never change to admit new sources.
Direct streams via yt-dlp, quality tier mapping (low / mid / high), start offset normalization, and timestamp extraction.
High-speed curl HTTP metadata extraction paired with yt-dlp stream negotiation and multi-part container (--items) traversal.
Encrypted browser weapi protocol via openssl, real access licensing tiers (full / preview / paywalled), and synced lyrics.
Architecture & Hard Invariants
Seven standalone executables, bash 3.2 baseline, strictly locked to 5 external dependencies.
The suite refuses abstraction sprawl: mpv, yt-dlp, nc -U, curl, and jq are the only external dependencies. No C libraries, no daemon managers, no bloated MCP servers.
Keyboard Navigation
Optimized for terminal ergonomics. Single-stroke actions with instant z undo.