Now Playing
A Liquid Glass player
A docked mini-player expands into a full-screen Now Playing view with live track metadata.
🎉 Labor Day weekend: no sale, because it's always free — always has been. Grab the source →
Open source · iOS 26 · SwiftUI
Internet radio for iPhone, iPad, Watch, Apple TV and CarPlay. Thousands of live stations, a Liquid Glass player, Siri to start it — no ads, no accounts, no tracking, no API keys. Free and open source, forever.
No ads No accounts No analytics No paywalls MIT + GPL-3.0
What it does
Pure SwiftUI and Swift 6 — not a web view in a jacket.
Now Playing
A docked mini-player expands into a full-screen Now Playing view with live track metadata.
Artwork
Looks up artwork for the track on air and links straight to it in Apple Music.
Sound
Preset EQ curves, and a sleep timer that pauses instead of stopping.
Discovery
Real stations via the Radio-Browser community directory — no API key required.
Offline
Cached on device, so stations appear instantly — even when the network drops.
Library
Backed by SwiftData, stored locally. Reorder favorites; recents remember where you left off.
Siri · Shortcuts · Spotlight
App Intents start playback in the background; favorites are indexed in Spotlight.
Lock Screen
Full controls on the Lock Screen, Control Center, and a Dynamic Island Live Activity.
CarPlay
Favorites and recents on the car's screen, in sync with the same playback engine.
Apple Watch
Native now-playing on the wrist, with a one-tap “Play Last” complication.
Apple TV
Station shelves for the Siri Remote, with the current track's title and artist.
iPad
An adaptive sidebar and multi-column grids for full screen, Split View and Stage Manager.
Home Screen
A widget plays a favorite in one tap; shoutkit://station?… opens any station.
Privacy
Not a compromise between free and funded — there is no business model here to feed.
The App Store privacy manifest declares nothing collected, nothing tracked.
Favorites and recents live in local SwiftData. No server, no sync service.
Just directory queries, the streams you play, and anonymous popularity pings.
No CDN fonts, no analytics, no cookies — one HTML file, nothing else.
Free software
Copyleft keeps the app free; permissive packages are yours to lift into any project.
Reusable packages take no app-specific or heavyweight dependencies, so dropping one into your project won't drag ShoutKit along with it.
No keys, no secrets, no sign-up. Just Xcode 27 and a Mac.
git clone https://github.com/cascadiacollections/shoutkit.git
cd shoutkit
open ShoutKit.xcworkspace # then ⌘R
Prefer the terminal? swift test --disable-xctest runs it without a simulator.
Issues, docs, translations, station fixes — all welcome, no CLA to sign.
Station data comes from Radio-Browser, a free community directory with no key required. ShoutKit reports plays back so its popularity ranking keeps working.
Under the hood
Questions
No. No paywalls, subscriptions or in-app purchases — every feature is free.
Neither. Discovery needs no key, and favorites and recents stay on your device.
None — just directory queries, your streams, and anonymous popularity pings.
iPhone, iPad, Apple Watch and Apple TV, plus CarPlay and a Home Screen widget.
Anything added to the Radio-Browser community directory shows up in ShoutKit — it's editable by anyone.
Yes — clone it, open ShoutKit.xcworkspace in Xcode 27, and run it. No secrets needed.
Clone it, build it, break it, send a patch. It's yours as much as anyone's.