sase-listen
Turn Markdown into chaptered, loudness-normalized MP3 audio editions — narrated by Gemini TTS, built for listening to SASE research on a commute or walk.
uv tool install sase-listen
sase-listen doctor
sase-listen render report_narration.md -o episode.mp3
Each episode is a mono 24 kHz, 64 kb/s MP3 at −16 LUFS with one ID3 chapter
per ## heading, an embedded cover, and a spoken AI-disclosure intro. Episodes
reach your phone through Telegram's music player or a private podcast feed for
AntennaPod. Full docs: https://sase-org.github.io/sase-listen/.
How it works
- Write a narration script — by hand for research reports
(
sase-listen guideprints the authoring rules, brief by default,sase-listen lintchecks them), deterministically from any Markdown (sase-listen script), or from an article or PDF URL or local PDF file (sase-listen script https://example.com/article,sase-listen render paper.pdf -e full). - Render it —
sase-listen rendersynthesizes each chapter, gates quality chunk by chunk, masters to a loudness-normalized MP3, and commits the episode to a local library with a manifest. - Listen — publish to your private feed (
sase-listen publish) or get the MP3 delivered over Telegram.
See Getting started and How it works.
Status notes
These commands are not implemented yet and exit 1 with a stub message:
sase-listen audition,sase-listen ls,sase-listen cachesase-listen doctor --online(offline checks work; the one-word live synth check is still a stub)
Everything else in sase-listen --help works. The
CLI reference marks each stub.
Contributing
See CONTRIBUTING.md. Bug reports and PRs welcome; keep Conventional Commit titles so release-please can cut releases.
Background
sase-listen implements the
commute-audio research
via epic sase-1e3. Details and provenance links:
Background.
Metadata
Release files for sase-listen 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sase_listen-0.1.1.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sase_listen-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.7 MB
Release files / sase_listen-0.1.1.tar.gz
| Download URL | sase_listen-0.1.1.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9f27efb861b1390dc052b74355cc95f9f2c2387860a835a652135ac8a1bfe2ff
|
|
BLAKE2b-256 checksum How to use checksums |
8c3ea580c8616e44b0c5f6276ccab49c3f9b23851bc0eed7368a2f9f2ddd0ec1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency logRelease files / sase_listen-0.1.1-py3-none-any.whl
| Download URL | sase_listen-0.1.1-py3-none-any.whl |
|---|---|
| Size | 624.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd1828ecc187444136e79e41f9adc63c42869a9d123593a54dc6556fcae449d0
|
|
BLAKE2b-256 checksum How to use checksums |
ea8acaa307a2b14e0cd25bc9919370601b2f8be1da74c71dc65625540c68eea8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency log