# Navidrome v0.60.0 - Product: Navidrome (https://whatsnew.fyi/product/navidrome) - Vendor: Navidrome - Date: 2026-02-03 - Version: v0.60.0 - Original notes: https://github.com/navidrome/navidrome/releases/tag/v0.60.0 - Permalink: https://whatsnew.fyi/product/navidrome/releases/v0.60.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Add WebAssembly-based plugin system with multi-language PDK support for Go, Rust, Python, and JavaScript - **added** — Add JSONForms-based plugin configuration UI - **added** — Add similar songs retrieval functions to plugins API - **added** — Add pure-Go metadata extractor built on go-taglib library - **added** — Add Instant Mix feature to generate playlists of similar songs based on selected track - **added** — Add Plugins.Enabled, Plugins.Folder, Plugins.CacheSize, Plugins.AutoReload, and Plugins.LogLevel configuration options - **added** — Add Subsonic.MinimalClients configuration option for reduced API responses to resource-constrained devices - **added** — Add Subsonic.EnableAverageRating configuration option to control average rating in API responses - **added** — Add SimilarSongsMatchThreshold configuration option to set minimum similarity score for external source matching - **changed** — Change LastFM.Language and Deezer.Language to support comma-separated list of languages for metadata fallback - **changed** — Change metadata extractor to pure-Go implementation by default, with option to revert to legacy-taglib - **changed** — Rename HTTPSecurityHeaders.CustomFrameOptionsValue to HTTPHeaders.FrameOptions - **security** — Fix potential XSS vulnerability by sanitizing user-supplied data before rendering - **security** — Fix potential DoS vulnerability in cover art upscaling by clamping requested square size to original dimensions ##### Plugins This release introduces a major rewrite of the experimental **Plugin System**, now with multi-language PDK support, enabling developers to extend Navidrome's functionality using WebAssembly-based plugins written in Go, Rust, Python or JavaScript. Plugins run in a secure sandbox and can provide additional metadata sources, custom integrations, and server-side enhancements. Users can now easily configure plugins directly from the UI through a new JSONForms-based configuration interface. A couple of working plugins are already available: - [AudioMuse-AI integration](https://github.com/NeptuneHub/AudioMuse-AI-NV-plugin) - [ListenBrainz Daily Playlist Importer](https://github.com/kgarner7/navidrome-listenbrainz-daily-playlist) - [Discord Rich Presence](https://github.com/navidrome/discord-rich-presence-plugin) For more plugins, keep an eye on the tag [navidrome-plugins](https://github.com/topics/navidrome-plugin) in GitHub. More details and instructions on how to use and manage plugins can be found in our [documentation](https://www.navidrome.org/docs/usage/features/plugins/). New documentation will soon be added with details on how to create new plugins. ##### Metadata Extraction Additionally, this version includes a **pure-Go metadata extractor** built on top of the new `go-taglib` library. This is a significant step toward removing the C++ TagLib dependency, which will simplify cross-platform builds and packaging in future releases. The new extractor is activated by default, but in case of any issues you can revert to the previous implementation by setting `Scanner.Extractor="legacy-taglib"` configuration option. ##### Instant Mix The Instant Mix feature generates a playlist of similar songs based on a selected track. By default, it retrieves similar songs from Last.fm (if configured with an API key) or falls back to Deezer. It can also be configured to use external plugins, like [AudioMuse-AI](https://github.com/NeptuneHub/AudioMuse-AI-NV-plugin) for sonic analysis-based similarity recommendations. ##### New and Changed Configuration Options ###### Plugin System Options | Option | Default | Description | |----------------------|-----------|---------------------------------------------------------------| | `Plugins.Enabled` | `true` | Enable/disable the plugin system | | `Plugins.Folder` | `""` | Path to the plugins directory. Default: `$DataFolder/Plugins` | | `Plugins.CacheSize` | `"200MB"` | Maximum cache size for storing compiled plugin WASM modules | | `Plugins.AutoReload` | `false` | Automatically detect new/changed/removed plugins | | `Plugins.LogLevel` | `""` | Override log level for plugin-related messages | ###### Subsonic API Options | Option | Default | Description | |--------------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------| | `Subsonic.MinimalClients` | `""` | Comma-separated list of clients that receive reduced API responses (useful for resource-constrained devices like smartwatches) | | `Subsonic.EnableAverageRating` | `true` | Include average rating in API responses | ###### Metadata & Matching Options | Option | Default | Description | |------------------------------|---------|----------------------------------------------------------------------------------------------------| | `SimilarSongsMatchThreshold` | `85` | Minimum similarity sc _[Truncated at 4000 characters — full notes: https://github.com/navidrome/navidrome/releases/tag/v0.60.0]_