# spicetify-extensions is a bag of small Spotify tweaks, not a framework

> spicetify-extensions collects standalone Spicetify extensions that add a song stats panel, a Wikipedia page for an artist, a feature based random playlist, a phrase to playlist generator, a colour converter for theme developers and a patch for Spotify's enhance playlist UI. Each one is a self contained script dropped into Spicetify, and the collection carries no shared architecture beyond that.

**rxri/spicetify-extensions** — Collection of custom Spicetify extensions to enhance your Spotify experience

- Repository: https://github.com/rxri/spicetify-extensions
- Stars: 628 · Forks: 30
- Language: JavaScript
- License: MIT
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/rxri-spicetify-extensions

## A collection, with one folder per extension

The repository is not a library and it is not a plugin framework. It is a set of unrelated extensions that happen to be gathered in one place, and the directory listing makes the structure obvious.

The top level holds one directory per extension: adblock, songstats, featureshuffle, formatColors, old-sidebar, phraseToPlaylist and wikify, plus a writeify directory that the README does not describe. There is also a manifest.json, a TODO.md, a biome.json, an .oxfmtrc.json and an .oxlintrc.json, a tsconfig.json, a pnpm-workspace.yaml with a pnpm-lock.yaml, a package.json, a @types directory and a LICENSE.

Each extension has its own README with its own installation and usage notes, and the root README is a table of contents with one entry per extension. The project's primary language is JavaScript, and the topics are javascript, spicetify, spicetify-extensions and typescript, so some extensions are authored in TypeScript and compiled.

The build is one script. package.json declares a build script that runs tsc, with esbuild as the only runtime dependency and TypeScript, oxlint and oxfmt in the dev dependencies. Node 18 or newer is required, and the engines field goes further: npm is set to please-use-pnpm and yarn likewise, with pnpm 10 or newer, and the packageManager field pins pnpm@11.9.0.

So this is a monorepo of small scripts with a shared toolchain, not a product with a release process. There are no GitHub releases, and the last push was on 2026-09-10.

## Every extension is a right click away

The usage pattern across the extensions is consistent, and it is worth noting because it is the only shared design in the collection: each one adds an entry to a Spotify context menu, and the user invokes it by right clicking.

Song-Stats displays the audio features of a song, and you reach it by right clicking any song and clicking View Song Stats in the context menu.

Wikify displays an Artists Wikipedia page, and the entry point is right clicking a playlist and clicking View Wiki. The README phrases it as learning more about them, which is the intent: a shortcut from a playlist to background on the artist rather than a separate browser search.

Feature-Shuffle creates a randomized playlist based on the average audio features of the clicked playlist, again by right clicking a playlist and clicking Create Feature Based Playlist. This one carries a warning that it may take up to ~3 minutes to generate a playlist, which is a useful piece of information: the extension is doing work over the playlist's tracks rather than shuffling locally, so the wait is expected rather than a hang.

Two extensions work from a top bar button instead of a context menu. FormatColors converts the current colors defined in root to color.ini format, made for theme developers, and you click the button on the topbar, then right click the text and click copy. PhraseToPlaylist converts a phrase into a playlist with songs arraged to make that phrase, and you click the button on the topbar, enter the phrase, and click submit.

The right click convention is convenient and it also means the extensions depend on Spotify's context menu implementation, which Spicetify is responsible for patching.

## The adblock extension is explicit about its limits

The adblock entry is the one the README gives the most space to, and it is worth reading carefully because it draws a clear line.

The pitch is to stream Spotify music without interruptions and to block ads instantly, with ease. The note lists what the premium features include: no forced shuffle, no forced repeat, a modifiable queue, no ads between songs and in the UI, and no upsell popups about premium or popup ads.

Then there is the caution, and the list of what the extension will not do. It will not unlock the native lyrics page. It will not let you download songs. It will not allow you to change song quality to Very High. It will not allow you to listen with friends in Jams.

That is an unusual thing to find written down, and it is a useful signal about what this project is and is not. The extension is an ad blocker that also removes the upsell prompts, and it is explicitly not a premium unlock. Nothing here depends on the extension defeating a licensing check.

Whether modifying the client in this way is permitted by Spotify's terms of service is a separate question from what the code does, and it is one you should answer for yourself if you use it. The extension lives in the adblock directory with its own README, and it is the one extension in the collection that is not the work of the main contributor, since the README states that most of the extensions are made by CharlieS1103 except adblockify.

## FixEnhance is a patch, and it needs a config change first

The old-sidebar directory holds the FixEnhance extension, and its README describes a different kind of work from the others. It patches the Spotify enhance playlist feature, with the note that Spotify patched it themselves and that this should fix it for you if you prefer an older version.

The reason this one needs extra steps is that the feature it restores is behind Spicetify's experimental flag. Two requirements are given. First, experimental features must be enabled on Spicetify with the command spicetify config experimental_features 1 followed by spicetify apply. Second, the Enable Enhance Playlist UI and functionality option must be turned on in the experimental features menu.

The reason for the change is not described in the available text, so it is not clear whether Spotify's patch was a bug fix or a deliberate feature change. What is clear is that this extension reverts a piece of the client to a previous behaviour, which makes it the most likely of the collection to stop working when the upstream client changes, since it depends on the shape of code that upstream has already decided to replace.

The directory name, old-sidebar, suggests the feature in question was the sidebar, and the enhancement being restored may be the older sidebar behaviour.

## A colour converter aimed at theme authors

FormatColors is the odd one out in the collection because its audience is not the end user but other Spicetify theme developers.

It converts the current colors defined in root to color.ini format, made for theme developers. The workflow is three steps: click the button on the topbar, right click the text, and click copy.

The reason this exists is that Spicetify themes are described in a CSS-like format with variables defined at the root, while the color.ini file that Spicetify uses to set the application colours expects a flat list of named colour values. A theme author who has written their variables by hand has to translate between the two, and this extension automates that translation for whatever colours are currently active in the running client.

That makes it a small developer tool rather than a user facing feature, and it is the clearest signal in the repository that the collection serves the Spicetify community rather than only end users.

FormatColors sits alongside a .oxfmtrc.json, an .oxlintrc.json and a biome.json in the repository root, so the toolchain is set up with the same formatting and linting discipline for a set of scripts as for an application.

## Where this collection is the wrong answer

Four situations rule it out.

The first is if you have not already decided to use Spicetify at all. Every extension here is a Spicetify extension, which means it depends on Spicetify patching the Spotify desktop client in the first place, and the README spends its space on the extensions rather than on that prerequisite. If you were hoping these would turn the Spotify web player or a mobile client into something better, they will not.

The second is if you want to customise. These are fixed behaviours. FormatColors is the only one with an input at all, and its input is a phrase field. There is no described settings surface, no options file and no documented configuration key for any extension, so if the feature you want is close to one of these but not exactly it, your route is the Spicetify extension API and your own code, not a fork of one of these scripts.

The third is stability over time. The Spicetify extensions are JavaScript that runs inside a patched proprietary client, and the client ships new code regularly. When the internal DOM structure or the API surface changes, an extension that manipulates the context menu or the player stops working, and the fix has to come from whoever maintains the extension. The FixEnhance extension is the clearest case, since it deliberately reverts a piece of upstream behaviour.

The fourth is anything where the boundary matters. If you are looking for something that unlocks premium features, this is not the place, and the adblock README says so itself. If you are uneasy about the legality of modifying a streaming client at all, then the alternative is not another extension, it is the official client.

The alternative worth naming is Spicetify's own extension ecosystem, which includes the base themes and the more general customisation layer. These extensions sit on top of that, and for anything larger than a single right click menu entry, writing an extension against the Spicetify API is the more durable route, because it is the documented interface rather than a patch of the client's internals.

## Conclusion

spicetify-extensions fits a Spotify user who already runs Spicetify and wants one specific addition, such as seeing the audio features of a track or turning a phrase into a playlist, without writing JavaScript against the Spicetify API. It is the wrong choice if you want a customisable Spotify client, since the extensions here are fixed behaviours with no configuration surface described, and the wrong choice if you use a Spotify client other than the desktop app. Before installing any of them, check three things: that the extension you want matches the context menu entry you expect, since each is invoked by right clicking, that the ad blocking extension does not do more than you want, since the documentation states plainly that it will not unlock the native lyrics page, allow downloads, change quality to Very High, or enable listening with friends in Jams, and that you accept that a script rewriting the Spotify client can break when Spotify ships a new release.

## FAQ

### What is spicetify-extensions?

It is a collection of custom Spicetify extensions to enhance the Spotify desktop experience, stored as one directory per extension. The set includes adblockify, Song-Stats, Feature-Shuffle, Wikify, FixEnhance, FormatColors and PhraseToPlaylist, and most of them are the work of CharlieS1103 except adblockify.

### How do I use the Song-Stats extension?

Right click any song and click View Song Stats in the context menu. The extension displays the audio features of that song.

### What does the spicetify-extensions adblock extension actually do?

It blocks ads in the player and removes upsell popups, and the documentation states it will not unlock the native lyrics page, will not let you download songs, will not allow changing song quality to Very High, and will not allow listening with friends in Jams.

### Why does FixEnhance need Spicetify experimental features?

Because the Spotify enhance playlist UI it restores is behind Spicetify's experimental flag. You need to run spicetify config experimental_features 1 and spicetify apply, and then enable the Enable Enhance Playlist UI and functionality option in the experimental features menu.

### How do I build the spicetify-extensions repository?

The package.json build script runs tsc. The project uses pnpm, with pnpm 10 or newer required and pnpm@11.9.0 pinned as the package manager, Node 18 or newer, and esbuild as the only runtime dependency.

## Sources

- [Issues](https://github.com/rxri/spicetify-extensions/issues)
- [License: MIT](https://github.com/rxri/spicetify-extensions/blob/main/LICENSE)
- [README](https://github.com/rxri/spicetify-extensions/blob/main/README.md)
- [rxri/spicetify-extensions on GitHub](https://github.com/rxri/spicetify-extensions)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/rxri-spicetify-extensions
