Skip to content

About

Native macOS client for Spotify and Apple Music, built with SwiftUI: ⌘K command palette, a real 10-band equalizer and synced lyrics.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

Spotiglass logo

Spotiglass

Native macOS client for Spotify and Apple Music in a glass-style SwiftUI shell: Spotify through its Web API and Web Playback SDK, Apple Music through MusicKit.

Get started · Build and test · Release artifact · Documentation

Spotiglass home: playlists, recently played albums and top tracks, with Midnight City by M83 playing

What you get

  • Spotify and Apple Music side by side. Switch with the service at the top left of the sidebar (⌃1 Apple Music, ⌃2 Spotify); each keeps its own sign-in, pins and place.
  • Playlist and track browsing with sidebar pins, queue, artist pages, and command palette search.
  • In-app playback: Spotify through the Web Playback SDK in a hidden WKWebView, Apple Music through MusicKit's player.
  • Appearance controls for System, Light, or Dark, plus command palette backdrop blur.
  • Keychain-backed refresh tokens, local playlist cache, and keyboard shortcuts you can remap in Settings.

Screenshots

Command palette (⌘K) Playlist
Command palette searching for night The Night Drive playlist with Midnight City playing

Settings, Equalizer: output device, Electronic preset, preamp and ten bands

All screenshots are the real app, captured in screenshot mode with a sample library (no Spotify account involved).

Requirements

  • macOS 26 or newer.
  • Apple Music: an Apple Music subscription for playback. Nothing to set up.
  • Spotify: a Spotify Developer app client ID (PKCE public client; no client secret) and Spotify Premium for Web Playback SDK streaming.
  • To build from source: Xcode that matches the project deployment target.

See Limitations for signed releases versus preview builds, Gatekeeper, and operational constraints.

Quick start

  1. Download the signed .dmg from the latest release, or open Spotiglass.xcodeproj and run the Spotiglass scheme.
  2. On the welcome screen, pick the service you listen on.
    • Apple Music: allow access when macOS asks.
    • Spotify: create a Spotify app in the Spotify Developer Dashboard, enable Web Playback SDK, set the redirect URI to http://127.0.0.1:43824/callback, then paste the client ID and connect.
  3. Add the other service any time with Add a service… at the top left of the sidebar.

Setup details, OAuth scopes, and manual playback checks: Getting started and Apple Music.

Build, test, and run

From the repository root:

make build
make test
make run

Unsigned Release bundle (same layout as CI):

make release

Output: build/DerivedData/Build/Products/Release/Spotiglass.app.

For raw xcodebuild commands, test-host Keychain behavior, and icon pipeline notes, see Building and testing.

Release artifact

The GitHub Actions workflow Release artifact runs unit tests, builds an unsigned Release Spotiglass.app, and uploads it for 14 days. It is a preview for testing a branch, not a release: CI and releases.

Documentation

Guide Description
Getting started Spotify dashboard setup, OAuth scopes, first run
Apple Music Adding Apple Music, switching services, what maps where, known gaps
Building and testing make, xcodebuild, local Release bundle
CI and releases Workflow dispatch artifact, Gatekeeper
Data storage Keychain, cache paths, settings.json
Pinning Sidebar pins and drag targets
Screenshots Screenshot mode: capture the real UI with sample data
Limitations Premium, signing, API limits

Regenerate README logo

The README logo is exported from the app icon pipeline:

scripts/generate_readme_logo.sh

Use scripts/generate_readme_logo.sh --rebuild to force a fresh unsigned Release build first.

Support

If Spotiglass has been useful and you want to support ongoing development:

Contributing

Open an issue describing the change you want to make before opening a pull request so scope and direction stay aligned.

License

See LICENSE. Personal, non-commercial use is permitted under the repository license; commercial or organizational use requires a separate written license from the copyright holder.

About

Native macOS client for Spotify and Apple Music, built with SwiftUI: ⌘K command palette, a real 10-band equalizer and synced lyrics.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages