A1 · Side A · Listening
needle
Play it. Read it. Judge it.
A desktop app for reviewing new music. It plays the queues haystack fills, shows how each track reads against your taste, and hands your verdict back to haystack.
What it does
needle plays three queues. Discoveries holds the tracks haystack picked for you this week. Rate your likes holds the songs you have liked on Spotify but not yet judged. The third is any playlists you choose from your Spotify library.
Each track comes with seven Readings, from tempo to loudness, each set on a scale against your Baseline: where the music you like usually sits.
Then you judge it with one key: one to five stars, Pass or Dislike. haystack makes the Spotify writes that follow, such as the heart and the To Rip playlist.
How it works
Two programs in one package. The app is C++ and Qt Quick. needle-engine is Rust and plays the music itself through librespot, so it needs Spotify Premium. They talk over a Unix socket, and nothing on the desktop needs Python.
It knows haystack only through haystack's HTTP API. When haystack can't be reached it tries the next server, and meanwhile keeps the last snapshot, the next covers and an outbox of verdicts until one answers.
Every colour is a token from your Omarchy theme, followed live. The glow behind the cover is the cover's own pixels, blurred. Media keys and the Omarchy bar work through MPRIS.
Keys
- 1–5
- Rate
- Shift 1–5
- Rate and play the next
- P
- Pass
- X
- Dislike
- Space
- Play or pause
- ← →
- Back or ahead 10 s
- J
- Jump ahead 30 s
- Tab
- Next queue
- L
- Choose playlists to review
- ?
- All the shortcuts
Credits
- Runs on
- Linux on Wayland, made for Omarchy and Arch Linux. Needs Spotify Premium and a haystack server.
- Install
- From needle's signed pacman repository, so it updates with the rest of your system. Each release also has a .deb (Debian 13 or later, Ubuntu 25.04 or later) and an .rpm (Fedora), as is and unsupported.
- Built with
- C++, Qt Quick, Rust and librespot
- Latest
- 0.7.0, 23 October 2026
- Licence
- MIT
- Font
- Archivo, by the Archivo Project Authors, under the SIL Open Font Licence 1.1. It ships with the app.
- Crates
- librespot, under MIT. Most of the other Rust crates are under MIT, Apache-2.0 or either, a few under BSD, Zlib, Unicode-3.0 or Unlicense. mpris-server, symphonia and priority-queue are under MPL-2.0 and used unmodified.
- Libraries
- Qt 6 (LGPL-3.0), PulseAudio (LGPL-2.1-or-later) and OpenSSL (Apache-2.0), from your system at run time, not bundled.
- Spotify
- needle is not affiliated with, or endorsed by, Spotify. It plays through librespot, an open-source client that is not Spotify's own. Spotify's terms may not allow unofficial clients, so decide for yourself before you use it.
- Source
- kurtlieber/needle on GitHub. Its NOTICE lists every crate and licence.