TerminalDrome

Getting Started with TerminalDrome: A First-Time Users Guide

TerminalDrome 0.8.5 and later

TerminalDrome is a terminal-based music client for Navidrome (and other Subsonic-compatible servers) with optional Bandcamp support. It runs entirely in your terminal, plays audio through mpv, and shows album covers as ASCII art — no browser, no Electron, no fuss.

This guide walks you through everything from installing the prerequisites to playing your first album, in about ten minutes.

TerminalDrome 0.8.5 with great Features

Hej guy, TerminalDrome Version 0.8.5 ist out for downloading via github or to install via crates.io and rust, cargo install terminaldrome. I am happy to share this moment with you guys.

Best new thing: after Installation via cargo or compilation and start via

terminaldrome

it will do an initial setup and will ask for your server and credentials, create and salt it with md5 and will nevermore store your credentials in plaintext on your computer.

TerminalDrome on Github

Hey guys, this is just a short post about my TerminalDrome project wich aims to play your navidrome files in a 80x25 Terminal on Linux, MacOS and everything with python and mpv. My initial goal as I started was to have a player in terminal on my old but still sexy Powermac G5 with Arch based PPC64 Linux. There were a few around but none compiled so I started to build my own one.

TerminalDrome 0.7.3 released

We released TerminalDrome 0.7.X with new features. Likes and Audiovisuals.

What’s new in 0.7.3

  • ❤️ Like songs — press Shift+L while a song is playing to mark it as a favorite in Navidrome.
  • The current song gets a permanent heart (❤️) next to its title in the song list.
  • Visual feedback in the status bar confirms when a song is liked.
  • The heart stays visible when switching views or restarting the app.
  • Keyboard shortcut: Shift+L (L for Like) – easy to remember, doesn’t conflict with Shift+H for help.
  • With Shift+E you can start the audiovisual mode (like cava) and with ESC you can close while song is playing.

Version 0.6.0 of TerminalDrome released

A terminal-based music client for Navidrome (and other Subsonic-compatible servers), written in Rust.

Features

What’s new in 0.6.0

  • 🔀 Shuffle Mode — press Shift+S while in any song list (album, playlist, or Jukebox queue) to instantly shuffle and restart playback. The currently playing song panel and progress bar turn magenta so you always know shuffle is active.

What was new in 0.5.x

  • 🎉 Party / Jukebox Mode (Shift+J) — streams your entire library in random order. Songs are fetched from the server in batches in the background, so even a library with tens of thousands of tracks works without loading everything into memory at once.

The new Jukebox Mode plays my entire library

TerminalDrome Features

I’m happy to announce that TerminalDrome has been officially added to the crates.io repository. This means you can now install and use TerminalDrome on your system with a simple

cargo install terminaldrome

command. I’ve also added the ability to use playlists in TerminalDrome, which wasn’t available before. You can use the TAB key to switch the left pane to the playlists. In the middle, you’ll see information about the playlist, and on the right, the songs it contains. Otherwise, there were many bug fixes: one was a buffer overflow at the end of a song, which caused the runtime to be recalculated and resulted in a crash. Another was a large number of warnings, which I’ve resolved.

New Version of TerminalDrome

After nine long months of laziness and overindulgence, I finally sat down again to work on my beautiful terminal client for Navidrome, TerminalDrome, and implemented a few bug fixes. I also made sure it continues to run everywhere and improved the code quality a bit.

I am proud to announce TerminalDrome 0.2.3 for your pleasure.


What has changed in Version 0.2.3?

0.2.3 – Stability & Cross-Architecture Improvements, not visibile.

Fixed

  • Fixed duplicate selection decrement in navigation logic (on_up)
  • Fixed potential division-by-zero in progress bar calculation
  • Hardened time position handling against invalid/NaN values
  • Improved atomic memory ordering for weak memory architectures (ARM, PPC64)
  • Prevented uncontrolled async task spawning during album rendering
  • Improved mpv IPC reconnect handling
  • Improved temporary directory handling for macOS and Linux

Improved

  • Switched to single-thread Tokio runtime for better determinism
  • Reduced async task churn in render path
  • Improved cross-platform stability (Linux PPC64, Linux x86_64, macOS Intel, macOS ARM)
  • Better behavior on weak memory-order CPUs
  • Reduced CPU load during cover rendering

Platform Stability

Tested on:

New Release of TerminalDrome on Github

Since I recently discovered how relaxing programming can be, I’ve been tinkering with my Navidrome-compatible terminal client called TerminalDrome almost every day.

I’ve now integrated a new feature, which I’ve moved to Main:

A simple search function:

  • Press slash / and the search will open.
  • Enter the search term, press Enter, and you’ll see the search results in the right panel.
  • It’s neither alphabetically sorted nor otherwise organized.
  • Additionally, there’s a feature in the leftmost panel where you can jump directly to the beginning of the respective artist by pressing a letter of your choice. So if I press D, I’ll land on D.A.F., or Q on Queens Of The Stone Age—you get it?

My TerminalDrome CLient in Search Mode

TerminalDrome 0.2.0 is available

I am proud to announce the release of TerminalDrome 0.2.0 as a feature-rich stable version to the public. It is still alpha but it works on a daily basis here on my Powermac G5 or the Mac Mini M4.

TerminalDrome Splash Screen

There are compiled binaries available for arm64, ppc64 and armhf. But TerminalDrome will build on every Linux with Rust and Cargo.

TerminalDrome is evolving

My little Terminal Navidrome Project TerminalDrome is evolving and works a little bit better from day to day. So, what is working?

  • safes the state of the panes to come back later
  • in pane 4 it shows the elapsed time and a small bar is going to 100%
  • it plays the songs of an album from 1 to last

What does not work:

  • it won’t changes the now playing bar when a new song is playing

This is a screenshot of my real Powermac G5 running TerminalDrome in the wild.