Skip to content

Development

Everything you can add to Spotify in v3 is a module: a theme, an extension, a whole page in the sidebar. One format, one toolchain.

Building modules

  • Building a module takes you from npm create spicetify-module to something running in your client, through a dev loop that pushes changes in about a second.
  • Porting a v2 extension maps the classic IIFE, wrapper UI, listeners, styles and packaging onto the v3 lifecycle.
  • Publishing a module covers submitting it to the store and what CI checks before it merges.
  • The API reference documents the Spicetify global your module talks to.

The rules a module has to follow live in the module standard, next to the code that enforces them.

Debugging the client

  • React DevTools for inspecting the client’s component tree.
  • Spotify CLI flags for the switches Spotify itself understands, including the remote debugging port the dev loop uses.
  • spicetify dev turns on Inspect Element in the client.

Working on Spicetify

  • Compiling builds the CLI from source, which is currently how you run v3.

Coming from v2

Extensions, custom apps and Spicetify Creator are v2 concepts. They still work with v2 and their guides are in the legacy section; in v3 all three are modules. What changes in v3 maps the old model onto the new one, and the extension migration guide walks through a real port.