{"slug": "show-hn-a-private-radio-station-for-issue-updates-across-your-org", "title": "Show HN: A private radio station for issue updates across your org", "summary": "State Media FM, a free open-source (Apache-2.0) app, turns team activity from GitHub, GitLab, and Hacker News into a private radio station with generative music and spoken bulletins, run locally via a single command. The app, requiring Python 3.12+ and git, uses an LLM (via Claude CLI or an LLM gateway) to write news updates and supports optional Spotify integration for music, with all data stored locally and no data sent off-machine.", "body_md": "**Why.** Your team throws off a constant stream of activity — issues, merge\nrequests, deploys, chatter — and keeping an eye on it means living in dashboards.\nState Media FM turns that activity into a low-key **internal radio station**: calm\nfocus music with the occasional spoken news bulletin, so you stay aware without\nstaring at a screen.\n\n**What.** It's a small app you run on your own machine. It reads your team's tools\n(GitHub / GitLab, Hacker News, and more), writes short news updates, reads them\naloud, and plays them over generative background music in a **browser tab**. It's\nfree and open-source (Apache-2.0), works offline, and phones nothing home.\n\n**How.** You run **one command**; it starts a local web server and opens a browser\ntab. You point it at your sources — and, optionally, an AI gateway for richer news\nwriting — right in the **Settings** tab. No config files to edit, and everything you\nset is remembered next time.\n\nYou need **Python 3.12+** and **git**. Copy-paste:\n\n```\ngit clone https://github.com/statemediafm/statemediafmradio.git\ncd statemediafmradio\npython3 -m venv .venv && source .venv/bin/activate\npip install -e \".[all]\"\nstatemediafm\n```\n\nThat's it — your browser opens to ** http://127.0.0.1:8150**. (If it doesn't open on\nits own, just visit that address.)\n\n- Click\n**▶ 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\n**Settings** tab:-\n**Auth**— paste your GitLab (or GitHub) address and a** read-only**access token. Optionally add an** AI gateway**URL + key for smarter news writing. -\n**News Update Sources**— add your project's URL. -\n**News writer**— bulletins are written by an LLM, so you need** one**of:- the\n**Claude CLI**— run it on a machine withinstalled and signed in, and it writes the news using that login (no API key); or`claude`\n\n- an\n**LLM gateway**— have its base** URL + API key**ready to paste.\n\nChoose which under\n\n**Settings › Auth › News writer**. - the\n\n-\n- Everything you change is\n**saved automatically**. Next time, just run`statemediafm`\n\nagain and it all comes back.\n\nTo stop it, press **Ctrl-C** in the terminal.\n\nYou can use your own **Spotify** account as the music mix, so bulletins play over\nyour playlists instead of the generative bed (in-tab playback needs Spotify\n**Premium**). This takes a one-time setup: create a Spotify app to get a **Client\nID** and **Client Secret**, with its redirect **endpoint set to 127.0.0.1** (the\nsame address the app runs on).\n\n- At\n[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`\n\n. - In\n**Settings › Mix › Spotify**, paste the Client ID and Secret (stored locally, never sent anywhere but your own machine). - In the\n**Player** tab, switch to**Playlist** mode,**Connect** Spotify, pick a playlist, and press**▶**.\n\nWant the details — other install options, the command-line tools, how the music and\nnews are generated, the local API, and the architecture? See\n** TECHNICAL.md**. For the trust model (what it protects, what stays\non your machine, how tokens are stored), see\n\n**.**", "url": "https://wpnews.pro/news/show-hn-a-private-radio-station-for-issue-updates-across-your-org", "canonical_source": "https://github.com/statemediafm/statemediafmradio", "published_at": "2026-08-27 17:35:52+00:00", "updated_at": "2026-08-27 17:48:39.376696+00:00", "lang": "en", "topics": ["ai-products", "ai-tools", "generative-ai", "large-language-models"], "entities": ["State Media FM", "GitHub", "GitLab", "Hacker News", "Claude CLI", "Spotify", "Apache-2.0"], "alternates": {"html": "https://wpnews.pro/news/show-hn-a-private-radio-station-for-issue-updates-across-your-org", "markdown": "https://wpnews.pro/news/show-hn-a-private-radio-station-for-issue-updates-across-your-org.md", "text": "https://wpnews.pro/news/show-hn-a-private-radio-station-for-issue-updates-across-your-org.txt", "jsonld": "https://wpnews.pro/news/show-hn-a-private-radio-station-for-issue-updates-across-your-org.jsonld"}}