Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add shreyas-s-rao/claude-code-narrator/plugin install narratorWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/shreyas-s-rao/claude-code-narrator/speak)<a href="https://agentmods.dev/commands/shreyas-s-rao/claude-code-narrator/speak"><img src="https://agentmods.dev/badge/commands/shreyas-s-rao/claude-code-narrator/speak/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/shreyas-s-rao/claude-code-narrator/speak"><img src="https://agentmods.dev/badge/commands/shreyas-s-rao/claude-code-narrator/speak.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00005 | $0.00205 |
| Opus 5 | $0.00003 | $0.00102 |
| Sonnet 5 | $0.00001 | $0.00041 |
| Haiku 4.5 | $0.00001 | $0.00020 |
Grade A, and why
speak scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
On-Demand Speech
Speak text aloud on demand, regardless of whether narrator is currently enabled.
Usage
If the user provides specific text to speak, pipe it directly:
echo "TEXT_TO_SPEAK" | bash "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/speak.sh" --force
If the user does not provide specific text, summarize the last action or response and speak that summary:
echo "SUMMARY_TEXT" | bash "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/speak.sh" --force
The --force flag bypasses the enabled check, allowing speech even when narrator is turned off.
Important
- Always use
--forcefor on-demand speak requests - Keep spoken text concise -- summarize if the text is very long
- Ensure Kokoro is installed before attempting to speak (check with
python3 -c "import kokoro")
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 31 lines · 5 tokens per session scan A 88d63fe08f79
speak is a command published in the GitHub repository shreyas-s-rao/claude-code-narrator (26 stars, last pushed 3mo ago), licensed MIT. It adds 5 tokens to every session and 205 once invoked, about $0.0000 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
wp-cinematic-scene
Author, replace, or regenerate a single cinematic scene. Updates the matching cinematicscenes repeater row (eyebrow, headline, body, CTA, videos, poster) and — if the scene needs a non-default layout — emits a per-scene template fragment override at template-parts/cinematic/scene- .php. Cinematic equivalent of…
wp-cinematic-seed
Seed (or re-seed) all cinematic scenes from a manifest. Idempotent — skips scenes whose sceneid already has content unless --force. Sideloads sample videos from the kit if no Media Library attachments are pinned.
discover
Interview the user to capture their vision and write a Suhail-format plan that the rest of the pipeline can execute via /su:go.
init
Scan the current project and cache stack, layout, conventions, and module intel under .suhail/intel/. Required precursor for /su:go and /su:discover.
wp-cinematic-encode
Encode source videos for cinematic scroll-scrub (all-keyframe MP4) and mobile autoplay-loop (9:16 portrait crop). Thin wrapper over the kit's scripts/encode-keyframe.sh and scripts/encode-mobile-portrait.sh. Drops encoded files into /assets/videos/ and updates the matching ACF row if --scene=N is provided.
tts:voices
Show the deterministic project → voice map (which repo sounds like which voice), current repo highlighted.