{"id":92,"date":"2025-03-13T07:19:21","date_gmt":"2025-03-13T06:19:21","guid":{"rendered":"https:\/\/linuxundich.de\/en\/?p=92"},"modified":"2026-10-03T23:04:46","modified_gmt":"2026-10-03T21:04:46","slug":"termsonic-a-subsonic-client-for-the-terminal","status":"publish","type":"post","link":"https:\/\/linuxundich.de\/en\/gnu-linux\/termsonic-a-subsonic-client-for-the-terminal\/","title":{"rendered":"Termsonic: A Subsonic Client for the Terminal"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I run my own music streaming server with <a href=\"https:\/\/www.navidrome.org\/\">Navidrome<\/a> and access it from everywhere. On Android, for example, I use <a href=\"https:\/\/symfonium.app\/\">Symfonium<\/a>, and it works wonderfully on Android Auto, too. On Linux, though, things don&#8217;t look so rosy right now. Good clients for Subsonic servers have become rare: development of <a href=\"https:\/\/sublimemusic.app\/\">Sublime Music<\/a> and <a href=\"https:\/\/github.com\/jeffvli\/sonixd\">Sonixd<\/a> has been discontinued, and other alternatives are often outdated or half-baked. That leaves pretty much only Navidrome&#8217;s web frontend, but somehow I like having a &#8220;real&#8221; client. So why not move straight to the terminal? This is where Termsonic comes in.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"was-ist-termsonic\">What is Termsonic?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/git.sixfoisneuf.fr\/termsonic\/about\/\">Termsonic<\/a> is a Subsonic client for the terminal with a rather nice and easy-to-use terminal user interface (TUI). It runs on Linux, Windows and macOS and works with most Subsonic-compatible servers. Among others, it has been successfully tested with Navidrome.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac1921bdcb58&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac1921bdcb58\" class=\"wp-block-image wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/linuxundich.de\/wp-content\/uploads\/2025\/03\/termsonic-player.webp\" alt=\"Termsonic is a simple but quite practical Subsonic client for the terminal. The app is available cross-platform for Linux, macOS and Windows.\" style=\"width:100%\"\/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Termsonic is a simple but quite practical Subsonic client for the terminal. The app is available cross-platform for Linux, macOS and Windows.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The app plays FLAC, OGG and MP3 files. One big advantage: these formats are decoded natively in Go, so there are hardly any external dependencies. You don&#8217;t need to install ffmpeg or LAME.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Besides plain playback, Termsonic lets you browse your music library by artists, albums and playlists. A simple queue management lets you play your songs in a sensible order.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"installation-unter-arch-linux\">Installation on Arch Linux<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On Arch Linux, you can conveniently install Termsonic from the Arch User Repository (AUR). If you use the AUR helper <code>yay<\/code>, the following command is all you need. After the installation, you can start the player with <code>termsonic<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>### Arch Linux, Manjaro und Co.\n$ &lt;strong&gt;yay -S termsonic-git&lt;\/strong&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On other distributions such as Ubuntu or Debian, Termsonic is rarely found in the repositories. Thanks to the few dependencies, though, it is very easy to build the program from source yourself.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;strong&gt;$ git clone https:\/\/git.sixfoisneuf.fr\/termsonic&lt;\/strong&gt;\n$ &lt;strong&gt;cd termsonic&lt;\/strong&gt;\n$ &lt;strong&gt;go build .\/cmd\/termsonic\/&lt;\/strong&gt;\n$ &lt;strong&gt;sudo cp termsonic \/usr\/local\/bin&lt;\/strong&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"konfiguration-von-navidrome\">Configuring Navidrome<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On the first start, you enter the URL and the credentials for your Subsonic server (Navidrome in my case). Right after that, you see your music collection. With [F1] you get a tree view of the collection. [F2] shows the current queue. [F3] shows the playlists created on the server. Under [F4] you can change the settings again.<\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background wp-block-paragraph\"><strong>Tip:<\/strong> If you use a &#8220;proper&#8221; terminal app such as the one from the GNOME desktop environment or, as here, Tilix, you can also operate Termsonic with the mouse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With [L] you jump to the next song. [P] pauses or resumes playback. With [\/] you open a search field that filters the list of artists. At the top right, Termsonic shows the song that is currently playing plus the matching artist. Frills like the album cover are not something Termsonic offers, though.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac1921bdd2f2&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac1921bdd2f2\" class=\"wp-block-image wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/linuxundich.de\/wp-content\/uploads\/2025\/03\/termsonic-filter.webp\" alt=\"Type a forward slash in the artist overview to activate a filter that searches your music collection for artists.\" style=\"width:100%\"\/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Type a forward slash in the artist overview to activate a filter that searches your music collection for artists.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Termsonic is an interesting alternative for everyone who wants to manage and play their music right in the terminal. The minimalist approach with few dependencies makes for a lean, resource-friendly app, perfect for lightweight systems or underpowered laptops.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Termsonic is a lean Subsonic client for the terminal. It lets you play and manage your music straight from the command line, which makes it a good fit for minimalists and Linux users who prefer lightweight solutions.<\/p>\n","protected":false},"author":2,"featured_media":91,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"lui_source_id":42478,"lui_source_hash":"85b01f52f8e49df8a1b3d8083cd04ada18ba8b5e1ca3ea0449b1e3d8cecc4a92","lui_source_translated":"2026-10-03","lui_source_reviewed":true,"lui_via_url":"","lui_via_label":"","lui_source_url":"","lui_source_label":"","footnotes":""},"categories":[2],"tags":[],"class_list":["post-92","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gnu-linux"],"_links":{"self":[{"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/posts\/92","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/comments?post=92"}],"version-history":[{"count":1,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/posts\/92\/revisions"}],"predecessor-version":[{"id":111,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/posts\/92\/revisions\/111"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/media\/91"}],"wp:attachment":[{"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/media?parent=92"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/categories?post=92"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/tags?post=92"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}