opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

kew: a terminal music player with gapless playback and auto-generated playlists
GitHub RepoImpressions3

Project Description

View on GitHub

Kew: A Terminal Music Player That Actually Respects Your Flow

If you spend most of your day in the terminal, switching to a GUI music player feels like breaking your flow. But most terminal players either lack gapless playback (that awkward silence between songs? Yeah, it's avoidable) or force you to manually curate every playlist. That's where kew steps in.

Built with performance in mind, kew is a lightweight music player that runs entirely in your terminal. It handles gapless playback natively, and its standout trick is auto-generating playlists based on your listening patterns. Whether you're deep in a coding session or just need background tunes, kew aims to be the player that stays out of your way.

What It Does

Kew is a terminal-based music player written in C++. It supports common audio formats (MP3, FLAC, OGG, WAV, and more) and indexes your local music library. From the command line, you can:

  • Play, pause, skip, and manage tracks
  • Search your library by artist, album, or genre
  • Generate playlists automatically using track metadata or listening history
  • Control volume and seek within tracks

The interface is minimal but functional a simple ncurses-driven UI with a playlist view, track info, and playback controls. No bloat, no fluff.

Why It's Cool

Gapless playback done right. This is a big one. If you listen to concept albums, live recordings, or classical music, silence between tracks is jarring. Kew handles gapless playback without any extra configuration, and it doesn't rely on file format hacks. It just works.

Auto-generated playlists are surprisingly smart. Instead of forcing you to build playlists from scratch, kew can analyze your library and create lists based on things like tempo, genre, or even "songs you haven't played in a while." It's not AI overkill, it's just using simple heuristics that actually feel useful.

Terminal native. No X11 dependencies, no Wayland quirks, no Electron runtime. You can run it over SSH, in a tmux pane, or on a headless server with just a terminal. For devs who live in the shell, this is a huge win.

Lightweight and fast. The C++ codebase is lean. Memory usage is minimal, and playback starts almost instantly, even with large libraries.

How to Try It

Kew is available on GitHub under the MIT license. Installation is straightforward:

# Clone the repo
git clone https://github.com/ravachol/kew.git
cd kew

# Build (requires CMake and a C++17 compiler)
mkdir build && cd build
cmake ..
make

# Run
./kew

You'll need a supported audio backend (ALSA, PulseAudio, or PipeWire) and a media library to scan. The README includes details on configuration and keybindings. If you're on Arch, there's also an AUR package: kew-git.

Final Thoughts

Kew isn't trying to reinvent the wheel. It's a focused tool that solves a specific problem: keeping your music flowing without breaking your terminal workflow. The gapless playback alone is worth a look if you've ever been annoyed by the silence between tracks in other CLI players. The auto-generated playlists are a nice bonus, especially for people with large libraries who just want something to play without thinking.

Is it as polished as spotify-tui or cmus? Not yet, but it's actively maintained and the core features work solidly. If you're a terminal junkie who values gapless playback and hates manual playlist management, give kew a spin. It might just stick.


Found this project on @githubprojects

Back to Projects
Project ID: dc97cbc5-06d0-45ef-9c13-2f54fe274f6bLast updated: July 18, 2026 at 02:44 AM