A minimal, local desktop music player. Point it at a folder of audio files and it plays them. No accounts, no streaming, no clutter.
Built with Wails v2 (Go) and React with TypeScript.
Project home: https://github.com/kiy0w0/shinamahiru
Full documentation lives in docs/README.md.
- Local library scanning (FLAC, MP3, OGG, Opus, WAV, M4A, AAC, WMA)
- Reads tags and embedded cover art, shown right in the library list
- Play, pause, seek and volume control
- Shuffle (no repeats until the queue is exhausted) and repeat modes: off, all, one
- Play queue with a right click "add to queue" action
- Search and download tracks using Tidal, Qobuz or Amazon Music sources
- Custom download folder, configurable from Settings
- Full Indonesian and English interface with a language switcher in Settings
- Remembers your last folder, volume, shuffle, repeat, language and download folder between sessions
- Frameless dark UI with a violet accent theme
- Go 1.26 or newer
- Node 24 or newer and pnpm 11 or newer
- Wails CLI v2, install with
go install github.com/wailsapp/wails/v2/cmd/wails@latest
wails devRuns a Vite dev server with hot reload and live Go bindings.
wails buildProduces a redistributable binary in build/bin.
go test ./backend/
cd frontend
pnpm testThe music download engine (Tidal, Qobuz and Amazon Music providers, ISRC resolution and lyrics fetching) is built on top of the excellent work from SpotiFLAC by spotbye.
Huge thanks to the SpotiFLAC project and everyone who contributed to it.
Repository: https://github.com/spotbye/SpotiFLAC
Shinamahiru is an independent, unofficial project. It is not affiliated with, endorsed by, or sponsored by Spotify, Tidal, Qobuz, Amazon Music, or any other platform referenced in this project. All product names, logos and trademarks belong to their respective owners.
The search and download feature works by resolving metadata through Spotify and fetching the actual audio from public and community APIs belonging to Tidal, Qobuz and Amazon Music. Those APIs are third party services outside this project's control; they can change, rate limit or stop working at any time without notice.
Use at your own risk. This project is provided for personal and educational purposes only, "as is", with no warranty of any kind. Depending on where you live and which service you use, downloading audio this way may conflict with that service's terms of use or with local copyright law. You, the user, are solely responsible for how you use this software and for staying compliant with the laws and terms that apply to you. The author and contributors accept no liability for misuse.
Shinamahiru does not host, store or redistribute any copyrighted audio itself; it only automates a search and download flow against services you choose. If you are a rights holder and have a concern about this project, please open an issue on the repository so it can be reviewed, up to and including removing the affected functionality or the project entirely.
Shinamahiru is released under the MIT License. See the LICENSE file for the full text and for the SpotiFLAC attribution notice.
