Skip to content

isaaclins/spotiglass

Repository files navigation

Spotiglass logo

Spotiglass

Native macOS Spotify client with OAuth PKCE, the Spotify Web API, and Web Playback SDK playback in a glass-style SwiftUI shell.

Get started · Build and test · Release artifact · Documentation

What you get

  • Signed-in playlist and track browsing with sidebar pins, queue, artist pages, and command palette search.
  • In-app playback through the Spotify Web Playback SDK in a hidden WKWebView.
  • 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.

Requirements

  • macOS 26 or newer with Xcode that matches the project deployment target.
  • A Spotify Developer app client ID (PKCE public client; no client secret).
  • Spotify Premium for Web Playback SDK streaming.

See Limitations for unsigned local builds, Gatekeeper, and operational constraints.

Quick start

  1. Create a Spotify app in the Spotify Developer Dashboard.
  2. Enable Web Playback SDK and set redirect URI to http://127.0.0.1:43824/callback.
  3. Open Spotiglass.xcodeproj and run the Spotiglass scheme.
  4. Paste the client ID, connect Spotify, then browse playlists and play tracks.

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

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. Download and first-launch steps: CI and releases.

Documentation

Guide Description
Getting started Spotify dashboard setup, OAuth scopes, first run
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
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 Spotify client built with SwiftUI, OAuth PKCE, Spotify Web API, and Web Playback SDK.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors

Languages