Built with NSH

A native Spotify

Spotish is an unofficial, native desktop client that works with your Spotify account, free or Premium. Spotify's own web player plays out of sight in your installed browser, behind an interface drawn natively by NSH instead of a full web app.

Spotish keeps Spotify's ads. To remove them, play any track on demand and support artists, get Premium. Get Spotify Premium ↗

Spotish's home screen: a native sidebar, cards, and a player bar.

Install

curl -fsSL https://huacnlee.github.io/spotish/install.sh | bash

The installer picks your platform and checks the release's checksum. No sudo required.

Read the installer ↗

Apple silicon on macOS 14 or later, x86_64 Linux with GTK 4.14 or later, or x86_64 Windows; plus Chrome, Chromium, Edge or Brave, and a Spotify account. macOS builds are not notarized, so the first launch may need approval in Privacy & Security.

An artist: their top tracks, the one playing marked.
An artist: their top tracks, the one playing marked.
Liked Songs, with the album column in a wide window.
Liked Songs, with the album column in a wide window.
Now Playing: the cover large, the music's light rising behind the controls.
Now Playing: the cover large, the music's light rising behind the controls.
A narrow window: the sidebar folded away, your picture and menu in the corner.
A narrow window: the sidebar folded away, your picture and menu in the corner.
Now Playing in a narrow window.
Now Playing in a narrow window.

How it works

Spotish drives Spotify's own web player and shows its own native interface for it.

  1. Native shell

    The whole interface — sidebar, lists, the player bar and Now Playing — is drawn natively by NSH, not in a web page.

  2. Your account plays

    Your installed Chrome, Chromium, Edge or Brave runs Spotify's web player out of sight; your account does the playing, so the catalogue, your library and the ads all work as Spotify intends.

  3. One sign-in

    Sign in once (or reuse a browser you're already signed in to); Spotish remembers it and takes over playback.

What you get

A real client, built to prove NSH for cross-platform apps.

Native, not a second browser

The UI is native views on a Rust engine — no Electron, no embedded web app rendering the whole screen.

Adaptive layout

A desktop workspace that collapses to an icon rail and becomes a phone layout with a bottom tab bar as the window narrows.

A focused Now Playing

A full-screen view built around the album art, with the track's own colors and motion that stays out of the way.

Ads kept, Premium nudged

Spotish never blocks or skips Spotify's ads. Premium is how you remove them.

Reuse your login

Point it at a browser profile you're already signed in to for zero sign-in.

Follows your theme

Light and dark follow the system.

About this project

Spotish is an unofficial, personal experiment, not affiliated with, endorsed by, or sponsored by Spotify. It plays through Spotify's own web player, so a Spotify account is required and Spotify's terms apply. Spotish never blocks or skips Spotify's ads — Spotify Premium is how you remove them, and how you support the artists you listen to. All music and artwork belong to their rights holders.

Built with NSH

NSH (Native Shell) is a Rust UI framework that renders one app through each platform's own native views — on macOS, Windows, Linux, iOS, Android, the web and even the terminal. Spotish exists to prove it out on a real, non-trivial app: one Rust engine, one TSX UI, native everywhere.

nsh.dev ↗