Background
Where sase-listen comes from
sase-listen implements the commute-audio research: the user commutes and walks very often and wanted full-length (about 16-minute) narrated editions of SASE research reports for the road — one CLI command or Telegram message in, chaptered MP3 out, phone delivery through Telegram's music player and a private podcast feed.
- Originating research:
research:202610/commute_audio_from_markdown, which consolidates five researcher reports (strongest renderer engineering from__cdx, measurements and pipeline from__cld) and builds on the earlierresearch:202606/sase_audio_generation_consolidated.md. - Epic plan:
plan:202610/sase_listen.md(epic beadsase-1e3, bead page), which fixed the design decisions this repo implements: the narration script as the renderer contract, one narrator per episode, Gemini 3.8 Flash TTS by default, MP3 mono 24 kHz 64 kb/s at −16 LUFS, and delivery via TelegramsendAudioplus a Tailscale-Funnel-served private feed. (Its "standalone tool, not a sase plugin" decision is superseded: sase-listen now also ships as thesase listencommand plugin.)
Key decisions inherited from the plan
- Two installs, one codebase.
uv tool install sase-listenputs the standalone CLI onPATH;sase plugin install listenmountssase listenin the sase CLI. SASE integration lives insase-research-artifacts(#research/audio, swarm stage) andsase-telegram(sendAudio). See SASE integration. - The narration script is the contract, and the CLI owns it.
guideandlintship in this package so the rules never drift from the renderer. - One narrator per episode — a failure never falls back silently to another narrator. See Narrators & voices.
- Beautiful is a requirement: spoken AI-disclosure intro/outro, measured pauses, consistent loudness, generated cover art, rich terminal output, and this styled docs site.