austinried eef94eff63 ci: move to actions/checkout v7 and actions/cache v6, pin ubuntu-26.04
The v4 pair targets Node 20, which GitHub now forces onto Node 24 (Node 20 is
deprecated). The Forgejo runner is v13, which runs Node 24, so both copies move
together. Pin the GitHub runner to ubuntu-26.04: ubuntu-latest migrates to it
over Oct 19 - Nov 19, 2026, and Nix supplies the toolchain either way.
2026-10-05 13:50:54 +00:00
2026-10-04 00:30:08 +00:00
2026-10-04 00:30:05 +00:00
2021-08-23 14:48:24 +09:00
2022-06-20 19:01:25 +09:00

subtracks logo subtracks

f-droid github downloads Translation status license

subtracks is an open source Android client for Subsonic-compatible servers (Navidrome, gonic, LMS, Nextcloud Music and more). It is written natively in Kotlin and Jetpack Compose and gives you clean, convenient access to your music in the style of a modern media player.

Screenshots

home now playing albums album artist

Download

Features

  • Home screen to browse your library over many categories, genres, and more
  • Album and artist artwork, shown full-resolution in the detail and now playing views
  • Downloads with album, artist and playlist bulk downloads, download quality and a metered-connection toggle
  • Search across albums, artists, playlists and songs, with per-list sort and filter controls
  • Gapless playback, an editable queue you can reorder and jump through, and loop and shuffle modes
  • Up next queue to add items into the currently playing queue without rewriting it
  • Multiple server support with quick switching
  • Stream quality (bitrate and format) settings for Wi-Fi and mobile and automatic switching
  • Scrobbling and starred items, cached while offline and sent back to the server when online
  • Media notification and headset/Bluetooth controls
  • Adaptive theming from the current song's artwork

The full library is mirrored at sync, so browsing, searching, sorting and filtering all work without waiting on the server. Only media and artwork are fetched on demand, and not even that when they're already downloaded.

Building

The project's entire toolchain is provided by a Nix flake. The default devshell provides JDK, Gradle and the Android SDK, so there is nothing to install by hand.

Therefore, to get started, you'll need to install Nix. I prefer Lix.

nix develop
gradle :app:assembleDebug

Test, lint and screenshot commands, plus the integration harness, are documented in AGENTS.md. The architecture is described in docs/architecture.md.

Translations

Want to see subtracks in your language? Visit the project on Weblate to help!

Translation status

AI usage disclosure

This project contains code and documentation generated by LLM, which is created via human prompting, iteration and review.

License

subtracks is free software, licensed under the GNU General Public License v3.0. It has no ads and no telemetry, and uses only free/libre dependencies.

S
Description
A music streaming app for Subsonic-compatible servers
Readme GPL-3.0
58 MiB
Languages
Kotlin 99.1%
Nushell 0.7%
Nix 0.1%