logan 8a757c9bb4
CI / check (push) Skipped
CI / e2e (push) Skipped
CI / check (pull_request) Successful in 2m34s
CI / e2e (pull_request) Successful in 8m9s
docs(android): record the lifecycle model and the device check
The lifecycle answer is load-bearing, so CLAUDE.md states it: an
activity is a view onto the process, and main() runs once per process.
The "restore the session or cold-start" question the issue asks for a
decision on is settled by playback rather than by preference -- the
audio lives in the Go process, so a cold start on every recreation
stops the music mid-song, which is the thing the foreground service
exists to prevent.

android-tier.md's build table said "arm64, real device -- unverified,
still" for five phases. It is verified now, on a Light Phone III
(Android 14, arm64-v8a, WebView Chrome 113 at 424x439), and what the
run found is a lifecycle section: how to force an activity recreation
on demand, the three-line logcat signature, why `has died: fg TOP` is
not a memory kill, and the second assertion that surviving does not
imply working.

It also carries the correction that "Don't keep activities" -- the
report's own suggested lever -- does not work on this device at all,
so nobody spends an afternoon on it. A configuration change the
manifest does not declare does, in one line.

And it stops recommending `wails3 task android:run:device`, which
uninstalls the released app and the user's library to install a build
with a different id (#159), in favour of the manual sequence.

NOTES.md carries the measurements, dated: 8 of 8 recreations fatal
before, 5 of 5 survived after, and the note that runs where no
recreation happened are inconclusive rather than passes -- a harness
that does not check for the second bridge init reports those as green
and reads as flakiness.

Refs #52, #159, #160
2026-08-20 13:04:18 -04:00
2026-08-14 14:01:02 -04:00

YellowJacket

Music how it was meant to bee.

YellowJacket is a fast, cross-platform desktop music player for your local collection. It plays your files, keeps your library tidy, and helps you discover and organize your music — all in a clean, responsive interface. No accounts, no streaming, no telemetry: just your music on your machine.

Runs on Linux, macOS, and Windows.

Features

Play your music

  • Plays MP3, FLAC, OGG Vorbis, and WAV
  • Play, pause, seek, and volume control with a mute toggle
  • Gapless, glitch-free seeking backed by a read-ahead buffer
  • A queue you can add to, reorder, and shuffle, with play-next support
  • Shuffle and repeat (off / all / one)
  • Picks up right where you left off — remembers your track, position, and volume between sessions
  • Media-key and MPRIS support on Linux, so your desktop's playback controls just work

Keep your library organized

  • Point it at your music folders and it scans them automatically
  • Reads tags and embedded cover art, and de-duplicates artwork so it isn't stored twice
  • Incremental sync — only new or changed files get reprocessed, and deleted files are cleaned up
  • Browse by album, artist, or genre, or search across everything
  • Mark favorites and see what you've been listening to with play history
  • Edit track tags directly when something's off

Playlists

  • Create playlists, drag tracks in, and reorder them
  • Smart playlists that build themselves from rules (by genre, rating, play count, and more)
  • Pin a default playlist and spot duplicate tracks at a glance

Discover and clean up (powered by MusicBrainz)

  • Explore — browse artists, releases, and genres from the MusicBrainz catalog, not just what's already in your library
  • Auto-tag — match your files against MusicBrainz to fill in correct artist, album, and track metadata, with a review step before anything is written
  • Lyrics search — find a track by a line you remember

Install

Download the latest build for your platform from the releases page.

Platform Download
Linux yellowjacket-linux-amd64
macOS yellowjacket-darwin-universal.app.zip (Apple Silicon + Intel)
Windows yellowjacket-windows-amd64.exe

Prefer to build it yourself? See Building from source.

Getting started

  1. Launch YellowJacket.
  2. Open Settings and add the folder(s) where your music lives.
  3. Let the initial scan finish — you'll see progress as it works.
  4. Browse by album, artist, or genre, queue something up, and press play.

Your library and settings are stored locally:

Linux / macOS Windows
Config ~/.config/yellowjacket/ %LOCALAPPDATA%\yellowjacket\config
Library data ~/.local/share/yellowjacket/ %LOCALAPPDATA%\yellowjacket\data

Building from source

YellowJacket is built with Go and a Lit/TypeScript frontend, bridged by the Wails framework.

Prerequisites

Tool Version
Go 1.25+
Node.js 22+
pnpm 10+
Wails CLI v3 — vendored, no install needed (go tool wails3)

The Wails v3 CLI resolves from the tool block in go.mod, so there is nothing to install globally; make setup fetches it with the rest of the tooling.

On Linux, install the system libraries Wails needs. v3 builds against GTK4 + WebKitGTK 6.0 by default:

sudo apt-get install libasound2-dev libgtk-4-dev libwebkitgtk-6.0-dev   # Debian/Ubuntu
sudo pacman -S alsa-lib gtk4 webkitgtk-6.0                              # Arch

A machine without webkitgtk-6.0 can still build with -tags gtk3 against the older WebKit2GTK 4.1 stack, but that is an escape hatch, not what CI or a release builds.

macOS and Windows need no extra system packages. Run go tool wails3 doctor to check your environment.

Build

make setup        # install tooling and git hooks
make dev          # run with hot-reload
make build-prod   # produce a release binary

More detail for contributors lives in CLAUDE.md — the architecture, the conventions and the reasons behind them. What is being worked on is the issue tracker; #73 is the roadmap.

S
Description
No description provided
Readme
15 MiB
v0.7.0
Latest
2026-08-26 16:03:22 +00:00
Languages
TypeScript 50.6%
Go 43.6%
Java 1.8%
JavaScript 1.5%
Shell 1.4%
Other 0.9%