# Show HN: A private radio station for issue updates across your org

> Source: <https://github.com/statemediafm/statemediafmradio>
> Published: 2026-08-27 17:35:52+00:00

**Why.** Your team throws off a constant stream of activity — issues, merge
requests, deploys, chatter — and keeping an eye on it means living in dashboards.
State Media FM turns that activity into a low-key **internal radio station**: calm
focus music with the occasional spoken news bulletin, so you stay aware without
staring at a screen.

**What.** It's a small app you run on your own machine. It reads your team's tools
(GitHub / GitLab, Hacker News, and more), writes short news updates, reads them
aloud, and plays them over generative background music in a **browser tab**. It's
free and open-source (Apache-2.0), works offline, and phones nothing home.

**How.** You run **one command**; it starts a local web server and opens a browser
tab. You point it at your sources — and, optionally, an AI gateway for richer news
writing — right in the **Settings** tab. No config files to edit, and everything you
set is remembered next time.

You need **Python 3.12+** and **git**. Copy-paste:

```
git clone https://github.com/statemediafm/statemediafmradio.git
cd statemediafmradio
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[all]"
statemediafm
```

That's it — your browser opens to ** http://127.0.0.1:8150**. (If it doesn't open on
its own, just visit that address.)

- Click
**▶ Start**— browsers stay silent until you click, so this begins the audio. It's already playing generative music with a Hacker News bulletin on a timer. - To add your own team's activity, open the
**Settings** tab:-
**Auth**— paste your GitLab (or GitHub) address and a** read-only**access token. Optionally add an** AI gateway**URL + key for smarter news writing. -
**News Update Sources**— add your project's URL. -
**News writer**— bulletins are written by an LLM, so you need** one**of:- the
**Claude CLI**— run it on a machine withinstalled and signed in, and it writes the news using that login (no API key); or`claude`

- an
**LLM gateway**— have its base** URL + API key**ready to paste.

Choose which under

**Settings › Auth › News writer**. - the

-
- Everything you change is
**saved automatically**. Next time, just run`statemediafm`

again and it all comes back.

To stop it, press **Ctrl-C** in the terminal.

You can use your own **Spotify** account as the music mix, so bulletins play over
your playlists instead of the generative bed (in-tab playback needs Spotify
**Premium**). This takes a one-time setup: create a Spotify app to get a **Client
ID** and **Client Secret**, with its redirect **endpoint set to 127.0.0.1** (the
same address the app runs on).

- At
[developer.spotify.com](https://developer.spotify.com/dashboard), create an app and copy its**Client ID** and**Client Secret**. Set the redirect URI to`http://127.0.0.1:8150/spotify/callback`

. - In
**Settings › Mix › Spotify**, paste the Client ID and Secret (stored locally, never sent anywhere but your own machine). - In the
**Player** tab, switch to**Playlist** mode,**Connect** Spotify, pick a playlist, and press**▶**.

Want the details — other install options, the command-line tools, how the music and
news are generated, the local API, and the architecture? See
** TECHNICAL.md**. For the trust model (what it protects, what stays
on your machine, how tokens are stored), see

**.**
