Working Notes on Agent Systems/Brad Zhang

@teach_fireworks / X longform

Try this cli radio, you can listen to music, podcasts and news while vibe coding. Why d...

Try this cli radio, you can listen to music, podcasts and news while vibe coding. Why do you want to do this? The reason is very small, just want to make some sound when writing...

May 3, 2026 · 3 min read

Try this cli radio, you can listen to music, podcasts and news while vibe coding. Why d...
Figure 1 / source image

Try this cli radio, you can listen to music, podcasts and news while vibe coding.

Why do you want to do this?

The reason is very small, just want to make some sound when writing code.

I went through several common routes this time: ncm-cli can search for songs, but many songs cannot be played at all; Spotify CLI can use half of OAuth, but in the end it will die on callbacks or Premium; direct installation in one sentence: npx skills add yizhiyanhua-ai/fireworks-radio Project address: What does fireworks-radio do?

fireworks-radio is a terminal radio skill for CLI scenarios.

What can it do now?

1 yt-dlp + mpv plays network resources; 2 uses search terms to temporarily generate a short playlist; 3 supports both stream and cache modes; 4 supports built-in presets, such as pop mixes of three artists, focused ambient, and refreshing coding-pop; 5 not just songs, but also podcasts, interviews, technology sharing, and ambient sounds, so it is your private radio; 6 Remember user preferences and automatically select a preset that is more like what you want to hear next time; How to understand the two modes?

Stream: Directly parses the URL and then streams it.

Suitable for temporary listening, the network is stable, and you want to play immediately.

Cache: Pull the audio to the local cache directory first and then play it.

Suitable for the network is unstable, you want to listen to the same batch of content repeatedly, and you need to transcribe or organize it later.

There is a boundary that must be made clear: stream and cache are working modes, not copyright permissions.

What this project does is automate the playback link and does not grant any copyright or dissemination rights to third-party media content.

Why did I make it more conservative?

If this type of project is directly licensed under a loose license and others use it for commercialization and capture third-party content, and eventually copyright issues arise, the project itself can easily get into trouble.

Therefore, fireworks-radio is not OSI open source in the traditional sense, but more accurately source-available: non-commercial use by default.

No third-party media copyrights are granted.

Users themselves are responsible for crawling, caching, and playing third-party content.

Who is this thing suitable for?

People who need BGM when writing code, but don’t want to search and open various players to select songs; People who have been frustrated by ncm-cli / Spotify CLI; People who not only listen to songs, but also want to listen to podcasts, interviews, and long video audio; People who don’t care about whether the playback link is pure or not, but only care about whether they can make sound stably now;

Figure 2 / source image

Visual summary

Article argument map

Generated from the post's content graph

FORMATTOPICCAPABILITYMARKETcoverscoverscoverscoverscoverssignalssignalssignalsFORMATarticle featureTOPICharness engineeringTOPICai workbenchesTOPICtechnical distributionTOPICretrievalTOPICtoolingCAPABILITYAI-native workbenchCAPABILITYdeveloper toolingMARKETopen-source builders
Mermaid outline
flowchart LR
  format-article["article feature"]
  topic-harness-engineering["harness engineering"]
  topic-ai-workbenches["ai workbenches"]
  topic-technical-distribution["technical distribution"]
  topic-retrieval["retrieval"]
  topic-tooling["tooling"]
  capability-ai-native-workbench["AI-native workbench"]
  capability-developer-tooling["developer tooling"]
  market-open-source-builders["open-source builders"]
  format-article -->|covers| topic-harness-engineering
  format-article -->|covers| topic-ai-workbenches
  format-article -->|covers| topic-technical-distribution
  format-article -->|covers| topic-retrieval
  format-article -->|covers| topic-tooling
  format-article -->|signals| capability-ai-native-workbench
  format-article -->|signals| capability-developer-tooling
  format-article -->|signals| market-open-source-builders

Visual structure

Essay structure map

Built from summary and key paragraph positions

Try this cli radio, you can listen to music, podcasts and news while vibe coding. Why...THESISTry this cli radio,you can listen tomusic, podcasts andnews while vibeSIGNALTry this cli radio,you can listen tomusic, podcasts andnews while vibeOPERATORSuitable for thenetwork is unstable,you want to listen tothe same batch ofIMPLICATIONPeople who need BGMwhen writing code, butdon’t want to searchand open various
Mermaid outline
flowchart LR
  thesis["Try this cli radio, you can listen to music, podcasts and news while vibe coding. Why do you want to do thi..."]
  signal["Try this cli radio, you can listen to music, podcasts and news while vibe coding."]
  operator["Suitable for the network is unstable, you want to listen to the same batch of content repeatedly, and you n..."]
  implication["People who need BGM when writing code, but don’t want to search and open various players to select songs; P..."]
  thesis -->|frames| signal
  signal -->|develops| operator
  operator -->|lands in| implication

Source: View the original post