zonic

Logo
Zonic

A tiny native macOS client for Amazon Music

GitHub Release GitHub Downloads (all assets, all releases) GitHub Repo stars Platform License

[!NOTE] This project was built with Gorkie, and OpenCode, both of which are an AI assistant. The code, the releases and this README were written by AI, with Jacob directing, testing and deciding what ships. Every build is built and published by GitHub Actions from the source in this repo, so you can read exactly what you are running.

[!CAUTION] This is not affiliated with, endorsed by, or supported by Amazon. “Amazon Music” is their trademark, used here only to say what this app plays. It is an unofficial wrapper around the web player you already pay for, and Amazon can change their site at any time and break it.

Zonic playing Amazon Music with the Gruvbox Dark theme

Zonic runs Amazon Music’s own web player inside a native WebKit window, then adds the things a browser tab does not do well: a real app in the dock, working media keys, Control Center, a titlebar worth looking at, themes that reach the page, a lyrics screen, and updates that install themselves. About 1 MB of binary, no Electron, no background daemons, no second browser.

Named the way Slick is named after Slack. Zonic, from Amazon and sonic.

Features

Installation

Zonic is macOS only, on Apple silicon or Intel, macOS 12 or newer. Grab the .dmg from the latest release.

  1. Open the dmg and drag Zonic into Applications.
  2. The build is signed ad-hoc rather than with an Apple Developer certificate, so Gatekeeper will complain the first time. Right click the app, choose Open, then Open again, or run:

    xattr -dr com.apple.quarantine /Applications/Zonic.app
    
  3. Sign in with your Amazon account once. The session is kept in the app’s own cookie and page storage, so you stay signed in across restarts.

Build from source

Needs the Xcode command line tools (xcode-select --install).

git clone https://github.com/SmartSparkCoding/zonic
cd zonic
./scripts/build-app.sh        # build/Zonic.app, then dist/*.dmg and .zip
VERSION=1.0.0 ./scripts/build-app.sh

The workflow in .github/workflows/build.yml compiles the universal binary on a macOS runner and publishes a release on every push to init, with the version taken from the run number.

Updates

Zonic checks the GitHub release feed a few seconds after launch and offers anything newer, and Zonic > Check for Updates… does it on demand. The update downloads the zip, verifies it against the release SHA256SUMS.txt, hands the bundle swap to a short shell script that waits for the app to quit, reopens it, and clears the quarantine flag so you do not get the Gatekeeper dance twice. To do it by hand, quit Zonic, drag the new Zonic.app over the old one, reopen.

Themes

Pick a theme in Zonic > Settings… (cmd comma), from the theme button in the titlebar, or from View > Theme. The palette drives the titlebar, the settings window and the lyrics screen. It can also repaint the Amazon Music page itself, which Amazon’s markup makes best-effort work: Tint recolours text, surfaces, controls and scrollbars, Invert darkens the whole page and tints it, and Off leaves the page alone. There is also a crossfade length for the gap between tracks, since a real overlapping crossfade is impossible inside one DRM-protected player.

Lyrics

Playback > Lyrics, or cmd shift L, or the speech bubble in the titlebar. Synced lines follow the song, the current line takes the accent colour, any line can be clicked to jump there, and Esc closes. Unsynced lyrics are shown as plain text and say so.

Scrobbling

Create an API application at last.fm/api/account/create, paste the key and secret into Settings, then Connect and approve Zonic in the browser. Zonic pings now-playing on every track change and scrobbles at the halfway point. Send Test Scrobble shows Last.fm’s exact answer if something does not appear on your profile. Keys live in the app’s preferences rather than the keychain.

Keyboard shortcuts

Action Shortcut
Play / pause space, or cmd P
Next / previous track cmd right / cmd left
Skip forward / back 10s shift cmd right / shift cmd left
Lyrics shift cmd L
Love on Last.fm cmd L
Reload cmd R
Back / forward cmd [ / cmd ]
Zoom in / out / reset cmd = / cmd - / cmd 0
Settings cmd ,
Full screen ctrl cmd F

How it works

It does not patch Amazon’s bundle: the page is theirs, unmodified, and everything Zonic adds happens around it or through the same media session your browser uses.

Known limitations

Credits

Licensing

MIT. See the LICENSE file. The code is here for free, use it at your own risk.

Privacy

Zonic talks to three places: Amazon Music, GitHub for updates, and Last.fm if you connect it. There is no analytics, no crash reporting and no telemetry of any kind, and nothing is sent to the person who wrote it. Your Amazon cookies and page storage sit in ~/Library/Application Support/Zonic/, readable only by your user. Last.fm keys are stored in the app’s preferences, which are not encrypted, so treat them like any other local credential. Lyrics lookups send the artist, title, album and duration of the track to LRCLIB.

Trademarks

Amazon, Amazon Music and the Amazon Music logo are trademarks of Amazon.com, Inc. or its affiliates. This project is unofficial and unaffiliated. It does not include, host or redistribute any Amazon software or content; it is a browser window pointed at a service you have an account with. If Amazon asks for it to stop, it will.