Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add perniemann/pnCore --skill pn-ttsgit clone --depth 1 https://github.com/perniemann/pnCoreWrote 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/perniemann/pncore/pn-tts)<a href="https://agentmods.dev/skills/perniemann/pncore/pn-tts"><img src="https://agentmods.dev/badge/skills/perniemann/pncore/pn-tts/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/perniemann/pncore/pn-tts"><img src="https://agentmods.dev/badge/skills/perniemann/pncore/pn-tts.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.00073 | $0.01698 |
| Opus 5 | $0.00036 | $0.00849 |
| Sonnet 5 | $0.00015 | $0.00340 |
| Haiku 4.5 | $0.00007 | $0.00170 |
Grade A, and why
pn-tts 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 6d 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 — 120 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Text-to-speech (TTS)
When to use
- A video composition (
pn-html-to-videoorpn-generative-video-pipelines) requires narration audio before render. - A marketing cut, demo video, or social reel needs voiceover without a recording studio.
- Captions or subtitle tracks must be derived from narration timing (feed output into
pn-transcribe). - Localized variants need the same script in multiple languages or voice styles.
Tool selection
| Tool | Model / tier | Best fit | Notes |
|---|---|---|---|
| ElevenLabs | Multilingual v3, Flash v2.5 | Highest prosody quality, voice cloning, streaming | Paid; Flash tier cheaper for batch; supports SSML subset |
| OpenAI TTS | tts-1, tts-1-hd |
Fast, API-simple, good for short clips | No SSML; tts-1-hd for delivery masters; 6 built-in voices |
| Kokoro / TTS-1 local | Kokoro-82M or similar ONNX | Air-gapped, no cost per character, repeatable | Requires local model; quality below ElevenLabs on nuanced prosody |
| Azure / Google Cloud TTS | Neural2, Azure Neural | Enterprise compliance, 100+ languages, WaveNet | SSML full support; cost at scale |
Default recommendation: ElevenLabs (quality-first) or OpenAI TTS-1-hd (API-simple). Use local only when the content is sensitive or offline is required.
Voice specification
Declare before generating:
- Voice ID or name — lock it; do not let the API pick a random default.
- Language and locale —
en-USvsen-GBvsde-DE; accent matters for credibility. - Speaking rate —
0.9–1.1for narration;0.85for slower explanatory content. - Stability / similarity / expressiveness (ElevenLabs) — stability 0.5–0.65 for engaging narration; similarity 0.75–0.85; expressiveness 0.5–0.7.
Script preparation
- One sentence per line in the input text. This makes timestamp alignment easier and limits runaway prosody errors.
- Punctuation drives prosody. Em dashes (
—) create pause-like pauses; ellipsis (...) elongates final syllable; question marks raise inflection. Use deliberately. - Numbers and abbreviations: Spell out what the model may mispronounce (
$1,200→ "twelve hundred dollars";API→ "A-P-I" or "ay-pee-eye" depending on brand). - Maximum chunk length: Many APIs cap at 5 000 characters. Split at natural paragraph breaks; plan overlapping 0.5s fade edges when concatenating.
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.
- 6d ago First seen · 120 lines · 73 tokens per session scan A 470703bbaf4e
pn-tts is a skill published in the GitHub repository perniemann/pnCore (0 stars, last pushed 3d ago), licensed MIT. It adds 73 tokens to every session and 1,698 once invoked, about $0.0004 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-09-03.
Other skills, from other repositories
typescript
TypeScript coding conventions, best practices, and patterns for writing clean, maintainable code.
generate-images-with-firebase-ai
Use when generating or editing images from Flutter/Dart with Firebase AI Logic and a Gemini image model (Nano Banana), making the first call work, choosing Gemini Developer API vs Vertex AI, hitting quota, billing or App Check failures, getting empty or image-only responses, sending a user photo as input, controlling…
slides
Create and edit presentation decks as single self-contained HTML files with a live, editable preview and print-to-PDF export. Use when the user wants slides, a deck, or a presentation.
video-translate
Translate and dub existing videos into multiple languages using HeyGen. Use when: (1) Translating a video into another language, (2) Dubbing video content with lip-sync, (3) Creating multi-language versions of existing videos, (4) Audio-only translation without lip-sync, (5) Working with HeyGen's /v2/videotranslate…
inclusive-design
Use when working on inclusion, i18n/localization, global name/address forms, low-end devices, slow/metered networks, affordability, or first-time/low-confidence users; not WCAG/screen readers (see accessibility).
invokeai-image-gen
Generate images using InvokeAI's local API. Use when asked to generate, create, or make images with InvokeAI, FLUX.2 Klein, Z-Image Turbo, FLUX, or SDXL models. Supports text-to-image generation, automatic model detection, image download, and parameter selection based on model architecture.