A quiet place for your music files Open source

Music, kept
quietly minimal.

A lightweight player for your own files library, playlists and synced lyrics inside a native window that gets out of the way once the music starts.

  • Gapless player with queue
  • Synced lyrics
  • Extensible plugins
  • No account, no cloud
Vynl home screen
Fig. 01 — Home Recently played, pinned, up next.
01 — Capabilities

Everything you need, nothing you don’t.

A focused feature set — only the things a music player does well, with no dashboard to configure.

Player

  • Built-in player Play, pause, seek and volume without leaving the window.
  • Queue management Reorder, remove and shuffle the upcoming queue.
  • Fullscreen mode A distraction-free player view for the big screen.
  • Persistent state Now Playing survives restarts, so you pick up where you left off.

Library

  • Incremental scanning Library scans pick up changes without rescanning everything.
  • Playlists Create, rename and delete playlists, then reorder tracks inside them.
  • Cover art Embedded artwork and metadata, with custom playlist covers.

Lyrics

  • Synced lyrics LRC and plain text, fetched from LRCLIB.
  • Embed them Write lyrics straight into the audio file for portable players.
  • In-player overlay Scrollable lyrics that follow along inside the player.

Integrations

  • Discord Rich Presence Show what you are listening to straight in your profile.
  • System tray Quick controls from the tray, with a minimised player.
  • Auto-updater Stay current with in-app update checks.
  • Theming & i18n Accent colors you choose, and a translated interface.
02 — Showcase

Take a look around.

6 screens, one consistent dark interface.

01 / 06 Home Recently played, pinned and your next listens in one place.
03 — Plugins

Pluggable by design.

Vynl ships a real plugin runtime, not an extension bolted on afterwards. Write JavaScript, get a whole new capability.

  • A JavaScript runtime with onLoad / onEnable / onDisable / onUnload hooks
  • Providers for lyrics, artist info and collection resolution
  • Settings sections, Home sections and whole pages contributed by plugins
  • Player observation and playback control, gated behind a permission
  • One-click installs and updates from the built-in plugin store
  • A dev folder for live reload, or sideload any .zip
plugin.js
// listen-along/index.js
export default {
  id: 'listen-along',
  name: 'Listen Along',
  version: '1.0.0',

  permissions: ['player'],

  async onLoad(api) {
    this.api = api
  },

  async onEnable() {
    this.session = await this.api.sessions.create({
      control: ['play', 'pause', 'seek']
    })
  },

  onDisable() {
    this.session?.close()
  }
}
Store plugin

Listen Along

Host a listening session, share a short code, and let friends follow your playback in real time, with synced position, queue and controls. It ships as a plugin, which is the clearest proof that the runtime is genuinely open.

View the source
04 — Download

Get Vynl.