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/skills/shreyas-s-rao/claude-code-narrator/cast)<a href="https://agentmods.dev/skills/shreyas-s-rao/claude-code-narrator/cast"><img src="https://agentmods.dev/badge/skills/shreyas-s-rao/claude-code-narrator/cast/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/skills/shreyas-s-rao/claude-code-narrator/cast"><img src="https://agentmods.dev/badge/skills/shreyas-s-rao/claude-code-narrator/cast.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.00053 | $0.00623 |
| Opus 5 | $0.00026 | $0.00311 |
| Sonnet 5 | $0.00011 | $0.00125 |
| Haiku 4.5 | $0.00005 | $0.00062 |
Grade A, and why
cast 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 10d 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.
How it starts
The opening of the file, as written. The whole thing — 62 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Change Narrator Voice
Available Voices
Kokoro provides these voices:
Female voices:
af_heart(default) - warm, expressiveaf_bella- clear, professionalaf_nicole- soft, gentleaf_sarah- bright, energeticaf_sky- calm, composed
Male voices:
am_adam- deep, authoritativeam_michael- warm, friendlyam_fenrir- bold, commanding
Determine Scope
Check if the user said "locally", "for this directory", "for this project", or similar. If so, changes apply to the local config file in the current working directory.
- Global (default):
~/.claude-code-narrator/config - Local:
<cwd>/.claude-code-narrator/config
Changing the Voice
If the user specifies a voice name, read the appropriate state file and use the Edit tool to change or add the voice= line to the requested voice.
Global mode (default):
Read ~/.claude-code-narrator/config and use the Edit tool to change the voice= line.
Local mode:
Read <cwd>/.claude-code-narrator/config. If the file exists, use the Edit tool to change or add the voice= line. If the file does not exist, create the <cwd>/.claude-code-narrator/ directory if needed, then create the config file with the Write tool containing just voice=<requested_voice>.
IMPORTANT: Do NOT use sed to edit state files — use the Read and Edit tools instead.
If the user does not specify a voice, present the list above and ask which voice they would like to use.
After changing the voice, speak a test sentence to confirm:
echo "This is how I sound with the new voice." | bash "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/speak.sh" --force
Changing Speed
If the user asks to change speed, read the appropriate state file and use the Edit tool to change or add the speed= line to the new value.
For local mode, if the file does not exist, create the <cwd>/.claude-code-narrator/ directory if needed, then create the config file with the Write tool containing just speed=<value>.
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.
- 10d ago First seen · 62 lines · 53 tokens per session scan A 7ebffb889115
cast is a skill published in the GitHub repository shreyas-s-rao/claude-code-narrator (26 stars, last pushed 3mo ago), licensed MIT. It adds 53 tokens to every session and 623 once invoked, about $0.0003 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 skills, from other repositories
sitrep-panel
Keep a live local HTML report updated as you work on a task — a status board, a running "what's happening now" narrative, screenshots, and a newest-first log — served on localhost so the user can watch progress in a browser tab instead of reading the transcript. Use when the user invokes /sitrep-panel, asks for a…
a11y-audit
Dedicated WCAG 2.2 AA/AAA accessibility audit across 10 dimensions (A1-A10) covering semantic HTML, keyboard navigation, ARIA patterns, color contrast, forms, images/media, responsive/zoom, motion/animation, reading/content, and legal compliance. Goes far beyond surface-level design-review checks with deep…
web-design-guidelines
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", or "vs best practices".
whisperx-transcribe
Transcribes local audio/video files (meetings, interviews, podcasts, lectures, recorded calls) into a clean, speaker-labeled Markdown transcript using WhisperX, so an LLM can read and reason about a long recording without processing raw audio itself. Use this whenever the user gives you a video/audio file path (mp4…
gemini-audio-tts-music
Generate music (Lyria 3) or synthesize speech (Gemini TTS, single or multi-speaker). Use for soundtracks, voiceovers, demo narration, notification sounds, or audio branding.
gemini-image-gen
Generate images using Gemini's native image generation (Nano Banana) or Imagen 4. Use for UI mockups, hero images, product shots, infographic frames, or any visual content creation task.