CLAUDE.md gains a Packaging section for the four Taskfile facts the recipes just needed — wails3 on PATH by bare name, no -ldflags on `wails3 build`, bin/ not build/bin/, and bundling as its own step — plus how build/'s platform metadata generates from build/config.yml and what that refresh overwrites. Its lifecycle, bindings, harness, events and CI sections were still describing v2. The events one matters most: the rule to emit through events.Emit survives, but its justification is now the weaker one, and saying so is the point of the migration. v2's runtime.EventsEmit log.Fatalf'd on any context not carrying the runtime; v3's emit takes no context at all, so what is left to pin is that one emit path is what lets emitStatus drop an unchanged payload for every caller at once. README told a contributor to `go install wails/v2/cmd/wails` and apt-get libgtk-3-dev/libwebkit2gtk-4.1-dev; the CLI is vendored and the stack is GTK4 + WebKitGTK 6.0. Two comments claiming Xvfb and one claiming frontend/wailsjs go with them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UDCbcCZQepnpSQYJ6SxxZm
111 lines
4.2 KiB
Markdown
111 lines
4.2 KiB
Markdown
# 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](https://git.ljones.me/yonlu/yellowjacket/releases).
|
|
|
|
| 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](#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](https://go.dev/) and a
|
|
[Lit](https://lit.dev/)/TypeScript frontend, bridged by the
|
|
[Wails](https://wails.io/) 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:
|
|
|
|
```bash
|
|
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**
|
|
|
|
```bash
|
|
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
|
|
[`docs/dev/overview.md`](./docs/dev/overview.md) and [`CLAUDE.md`](./CLAUDE.md).
|