narratelisted
Install: claude install-skill ksdisch/claude-config
# narrate — written brief → single-voice MP3 (local Kokoro)
The reusable audio engine behind `/handoff --audio`, `/wrap --audio`, and any
future command that wants a listenable explanation. **Local Kokoro only** (via
the `voicemode` plugin): free, repeatable, no quota, no network. Single voice,
narration — not a NotebookLM two-host podcast. NotebookLM cannot perform a
script verbatim; this can, which is the whole point.
**Engine, not author.** The *caller* decides what to say and hands this skill a
clean spoken script. This skill renders it, saves it, and delivers it. If a
caller hands you a raw artifact instead of a script, condense it first using the
"Writing for the ear" rules below.
---
## Inputs (from the caller)
- **`script`** — the text to speak, already written for the ear (see rules below).
- **`voice`** — Kokoro voice id; default `am_adam`. Other common ids: `af_bella`
(female), `bm_george` (male). Override per call or via `NARRATE_VOICE`.
- **`out`** — desired MP3 path. If the caller doesn't give one, default to
`~/Projects/_audio/<ISO-date>-<slug>.mp3` (create the dir). When narration
accompanies a saved artifact (e.g. a `/wrap` log), prefer saving the MP3
next to it with the same basename so the pair stays together.
- **`deliver`** — whether to `SendUserFile` the result (default yes).
---
## Workflow
### 1. Pre-flight — ensure Kokoro is up
Load the voice tool (deferred): `ToolSearch` →
`select:mcp__plugin_voicemode_voicemode__service`. Then `servic