github-actions[bot] b12d70866e chore(release): 1.0.2 [skip ci]
## [1.0.2](https://github.com/onion-4-dinner/yellowjacket/compare/v1.0.1...v1.0.2) (2026-02-14)

### ⚠ BREAKING CHANGES

* **deps:** update actions/setup-node action to v6 (#48)
* **deps:** update dependency stylelint-config-standard to v40 (#52)
* **deps:** update dependency node to v24 (#51)
* **deps:** update dependency vite-plugin-static-copy to v3 (#54)
* **deps:** update golangci/golangci-lint-action action to v9 (#55)
* **deps:** update amannn/action-semantic-pull-request action to v6 (#50)
* **deps:** update actions/upload-artifact action to v6 (#49)
* **deps:** update actions/setup-go action to v6 (#47)
* **deps:** update actions/download-artifact action to v7 (#46)

### Bug Fixes

* **ci:** use allowedPostUpgradeCommands for Renovate post-upgrade tasks ([#60](https://github.com/onion-4-dinner/yellowjacket/issues/60)) ([0aef483](https://github.com/onion-4-dinner/yellowjacket/commit/0aef483b3cccd0616fd5be2d06d0856b46851d09))

### Miscellaneous

* **deps:** update actions/download-artifact action to v7 ([#46](https://github.com/onion-4-dinner/yellowjacket/issues/46)) ([1910f99](https://github.com/onion-4-dinner/yellowjacket/commit/1910f99cf64e9bdc5ce91e89cab254ecca15d030))
* **deps:** update actions/setup-go action to v6 ([#47](https://github.com/onion-4-dinner/yellowjacket/issues/47)) ([8911fb2](https://github.com/onion-4-dinner/yellowjacket/commit/8911fb2400047cf2f3dfa719edc1d1bf474cdaa5))
* **deps:** update actions/setup-node action to v6 ([#48](https://github.com/onion-4-dinner/yellowjacket/issues/48)) ([d7382fd](https://github.com/onion-4-dinner/yellowjacket/commit/d7382fd8444b6618dbfe991f5f97231528a07f13))
* **deps:** update actions/upload-artifact action to v6 ([#49](https://github.com/onion-4-dinner/yellowjacket/issues/49)) ([a2c644b](https://github.com/onion-4-dinner/yellowjacket/commit/a2c644b00eed83acc0ed38a2eb8c73868b7b79af))
* **deps:** update amannn/action-semantic-pull-request action to v6 ([#50](https://github.com/onion-4-dinner/yellowjacket/issues/50)) ([643ba27](https://github.com/onion-4-dinner/yellowjacket/commit/643ba27f066164aeb47e8d9aaf20fe98b9b69d30))
* **deps:** update dependency node to v24 ([#51](https://github.com/onion-4-dinner/yellowjacket/issues/51)) ([e7d3971](https://github.com/onion-4-dinner/yellowjacket/commit/e7d39711078ce86b0c029f0d03ff81162c5dc28a))
* **deps:** update dependency stylelint-config-standard to v40 ([#52](https://github.com/onion-4-dinner/yellowjacket/issues/52)) ([422aabc](https://github.com/onion-4-dinner/yellowjacket/commit/422aabcc07e9700ff189302b363e13d87c69163a))
* **deps:** update dependency vite-plugin-static-copy to v3 ([#54](https://github.com/onion-4-dinner/yellowjacket/issues/54)) ([77fa643](https://github.com/onion-4-dinner/yellowjacket/commit/77fa6435a5298f58ef83607d99c59b876132c66c))
* **deps:** update golangci/golangci-lint-action action to v9 ([#55](https://github.com/onion-4-dinner/yellowjacket/issues/55)) ([aedb7d1](https://github.com/onion-4-dinner/yellowjacket/commit/aedb7d1e6d204c56c468dd26b340752fd6bfeaeb))
2026-02-14 07:36:46 +00:00
2026-02-14 07:36:46 +00:00
2026-02-14 00:32:00 -06:00

YellowJacket

CI Release

Music how it was meant to bee.

YellowJacket is a cross-platform desktop music player built with Go and web technologies. It focuses on local music library management with a clean, responsive interface.

Install

Grab the latest release for your platform:

Download Latest Release

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

Features

Playback

  • Play, pause, seek, and volume control with mute toggle
  • Support for MP3, FLAC, OGG Vorbis, and WAV
  • Queue management with add, remove, reorder, and play-next
  • Shuffle mode (Fisher-Yates) and repeat modes (off, all, one)
  • Session persistence -- resumes volume, track, and seek position on restart

Library

  • Concurrent library scanning with automatic metadata extraction
  • ID3v2, Vorbis Comments, and other tag format support
  • Embedded cover art extraction with content-hash deduplication
  • Incremental sync -- only processes new or changed files
  • Orphan cleanup for deleted files

Interface

  • Album cover grid view and track list view
  • Now playing display with cover art
  • Resizable sidebar navigation
  • Slide-out queue panel
  • Context menus for tracks and albums (play, add to queue, play next)
  • Settings page for library directory configuration

Architecture

YellowJacket uses the Wails v2 framework to bridge a Go backend with a TypeScript/Lit frontend running in a native webview.

  • Go backend -- audio decoding and playback (beep), library scanning, SQLite database, cover art serving, TOML configuration
  • TypeScript frontend -- Lit web components, singleton stores with reactive controllers, Web Awesome UI components
  • Communication -- bidirectional event system via Wails runtime; backend is the source of truth
  • Database -- SQLite (pure-Go driver) with type-safe queries generated by sqlc; MusicBrainz-style data model (artists, artist credits, recordings, release groups)
  • Config page -- HTMX-based, loads HTML fragments rendered by Go templ templates

Development

Prerequisites

Tool Version
Go 1.25+
Node.js 22+
pnpm 10+
Wails CLI v2 (go install github.com/wailsapp/wails/v2/cmd/wails@latest)

Linux system dependencies:

sudo apt-get install libasound2-dev libgtk-3-dev libwebkit2gtk-4.1-dev

On macOS and Windows, no additional system dependencies are needed. Run wails doctor to verify your environment.

Build & Run

make setup        # Install git hooks (lefthook)
make dev          # Development with hot-reload
make build-dev    # Debug build
make build-prod   # Production build (obfuscated + UPX compressed)
make generate     # Run code generators (sqlc, templ)

Testing

make test         # All tests (race detector, no cache, 2min timeout)

# Run tests manually (build tag required):
go test -tags webkit2_41 ./backend/player/                           # Single package
go test -tags webkit2_41 -run TestFunctionName ./backend/player/     # Single test
go test -tags webkit2_41 -v -run TestFunctionName ./backend/player/  # Verbose

Linting

make lint         # golangci-lint (v2 config, strict rules)

Data Locations

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

Project Structure

backend/           Go backend
  player/          Audio playback (beep)
  queue/           Queue management, shuffle, repeat
  library/         Library scanning, metadata extraction, cover art
  metadata/        Audio decoding and tag extraction
  database/        SQLite connection, sqlc-generated queries
  config/          TOML config, HTTP handler for settings page
  events/          Event name constants (mirrored in frontend)
  models/          Shared data types (Album, Track, Artist)
  system/          OS-specific paths
frontend/src/      TypeScript/Lit frontend
  components/      UI components (player, sidebar, track list, cover grid, queue)
  store/           Singleton stores and reactive controllers
  pages/           Config page (HTMX entry point)
internal/dev/      Build-tag dev/prod detection
test_data/         Audio test fixtures

Further development documentation is available in docs/dev/.

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%