Skip to content

Compiling

v3 is written in Rust. Most people are better off with a prebuilt release; build from source to work on Spicetify itself, or to run it on a platform with no published build.

Requirements

  • Rust (stable)
  • Node 24 and pnpm, for the browser-side payload

Build

Terminal window
git clone https://github.com/spicetify/cli
cd cli
pnpm install
pnpm build:payload
cargo build --release -p cli -p daemon

The binaries land in rust/target/release/ as spicetify and spicetify-daemon. Put that directory on your PATH.

Working on the daemon

The daemon is its own crate, so cargo build -p cli does not rebuild it, and apply leaves an already-running daemon alone when the version has not changed, which it will not have during local work. After touching the daemon, restart it explicitly:

Terminal window
cargo build --release -p cli -p daemon
spicetify daemon stop && spicetify daemon start

Skipping the restart means testing the previous build.

Building v2

v2 is written in Go and lives on the same repository’s main branch:

Terminal window
git clone https://github.com/spicetify/cli
cd cli
go build -o spicetify