🎉 Labor Day weekend: no sale, because it's always free — always has been. Grab the source →

Open source · iOS 26 · SwiftUI

Every station under the sun.

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

Built the way an Apple app should be.

Pure SwiftUI and Swift 6 — not a web view in a jacket.

The player

Now Playing

A Liquid Glass player

A docked mini-player expands into a full-screen Now Playing view with live track metadata.

Artwork

Album art, resolved live

Looks up artwork for the track on air and links straight to it in Apple Music.

Sound

Equalizer & sleep timer

Preset EQ curves, and a sleep timer that pauses instead of stopping.

The directory

Discovery

Keyless, from first launch

Real stations via the Radio-Browser community directory — no API key required.

Offline

Stations without the wait

Cached on device, so stations appear instantly — even when the network drops.

Library

Favorites & recents

Backed by SwiftData, stored locally. Reorder favorites; recents remember where you left off.

Everywhere you listen

Siri · Shortcuts · Spotlight

“Play KEXP on ShoutKit”

App Intents start playback in the background; favorites are indexed in Spotlight.

Lock Screen

Controls where you expect them

Full controls on the Lock Screen, Control Center, and a Dynamic Island Live Activity.

CarPlay

Favorites on the dashboard

Favorites and recents on the car's screen, in sync with the same playback engine.

Apple Watch

A real watch app

Native now-playing on the wrist, with a one-tap “Play Last” complication.

Apple TV

Radio on the big screen

Station shelves for the Siri Remote, with the current track's title and artist.

iPad

Not a stretched iPhone

An adaptive sidebar and multi-column grids for full screen, Split View and Stage Manager.

Home Screen

Widgets & deep links

A widget plays a favorite in one tap; shoutkit://station?… opens any station.

Privacy

It collects nothing. Really nothing.

Not a compromise between free and funded — there is no business model here to feed.

  • Zero data collection.

    The App Store privacy manifest declares nothing collected, nothing tracked.

  • Nothing leaves the device.

    Favorites and recents live in local SwiftData. No server, no sync service.

  • Minimal network traffic.

    Just directory queries, the streams you play, and anonymous popularity pings.

  • This page, too.

    No CDN fonts, no analytics, no cookies — one HTML file, nothing else.

Free software

Yours to read, build and fork.

Copyleft keeps the app free; permissive packages are yours to lift into any project.

Two licences, on purpose

  • GPL-3.0 The ShoutKit app — improvements stay free.
  • MIT The reusable packages: playback, directory, design system. Adopt them anywhere, including in closed source.

Reusable packages take no app-specific or heavyweight dependencies, so dropping one into your project won't drag ShoutKit along with it.

Read the licence · Third-party notices

Build it in three commands

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.

Come help

Issues, docs, translations, station fixes — all welcome, no CLA to sign.

Standing on free software

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

Modern Apple foundations, no shortcuts.

Deployment target
iOS 26+
Interface
SwiftUI
Concurrency
Swift 6
Storage
SwiftData
Licensing
MIT + GPL

Questions

The things people ask first.

Does ShoutKit cost anything?

No. No paywalls, subscriptions or in-app purchases — every feature is free.

Do I need an API key or an account?

Neither. Discovery needs no key, and favorites and recents stay on your device.

What data does it collect?

None — just directory queries, your streams, and anonymous popularity pings.

Which devices does it run on?

iPhone, iPad, Apple Watch and Apple TV, plus CarPlay and a Home Screen widget.

Can I add a station that isn't listed?

Anything added to the Radio-Browser community directory shows up in ShoutKit — it's editable by anyone.

Can I build it myself?

Yes — clone it, open ShoutKit.xcworkspace in Xcode 27, and run it. No secrets needed.

Find a station you'd never have found.

Clone it, build it, break it, send a patch. It's yours as much as anyone's.