tts
Generates spoken audio narration using Gemini TTS through Vercel AI Gateway.
Identity proven by GitHub's verified organisation badge (getsentry)
- Agents
- Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
- License
- Apache-2.0 (permissive)
- Pin
- 1745a29pinned Oct 9, 2026
- Context cost
- about 730 tokenswhen the skill loads
- GitHub stars
- 367on getsentry/junior
- Scripts
- 1 script
What it does
“Generates spoken narration with Gemini TTS through Vercel AI Gateway. Use for text-to-speech, audio samples, voiceovers, or speaking as Junior with the reusable Junior voice. Do not use for transcription, voice cloning, music generation, or rendering a video without a narration request.”
Generated summary from the skill's own text
Generates spoken audio narration using Gemini TTS through Vercel AI Gateway. The agent creates WAV files with a preset voice called Junior, suitable for voiceovers, audio samples, and text-to-speech tasks that require synthetic narration.
When to use it
- Creating voiceovers or spoken narration for content
- Generating audio samples with a consistent voice personality
- Adding synthetic speech to workflows without video rendering
- Testing TTS output with the bundled Junior voice preset
When not to
- Transcribing speech or audio to text
- Cloning voices or mimicking specific speakers
- Generating music or non-speech audio
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add getsentry/junior --skill ttsInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install getsentry/junior tts@1745a298365f0f001db0b3eec6de8a8347e0f6d9Installs the commit we checked (1745a29).
Copy by hand
Download the folder at 1745a29 and put it in .claude/skills/tts for Claude Code and in .agents/skills/tts for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Claude Code plugin
/plugin install sentry@claude-plugins-officialThe publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.
Claude Code plugin
/plugin install sentry-cli@claude-plugins-officialThe publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "tts" by Sentry. Source, pinned to commit 1745a298365f0f001db0b3eec6de8a8347e0f6d9: https://github.com/getsentry/junior/tree/1745a298365f0f001db0b3eec6de8a8347e0f6d9/packages/junior-tts/skills/tts 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/tts/ for Claude Code and .agents/skills/tts/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/sentry/tts
SKILL.md at the pin
--- name: tts description: Generates spoken narration with Gemini TTS through Vercel AI Gateway. Use for text-to-speech, audio samples, voiceovers, or speaking as Junior with the reusable Junior voice. Do not use for transcription, voice cloning, music generation, or rendering a video without a narration request. --- # Text to Speech Use the bundled `scripts/speech.mjs` from this directory. Node.js and the installed plugin's host-managed Gateway key are required. Do not install an SDK or ask for secrets in chat. ## Workflow 1. Resolve the requested spoken text. For a sample of Junior's voice, use the bundled sample. Do not send unrelated private context or the full persona to the provider. 2. Use the default `junior-v1` preset: a bright, warm, mischievous adult helper with dry humor. Use `--delivery plain` for serious or sensitive text. Do not present it as an imitation or recording of a real performer. 3. Write narration to a UTF-8 file. Keep each clip at 1–5000 characters. Generation spends Gateway credits. Do not generate extra variants without a request. 4. Generate to a fresh `.wav` path. Inspect an existing file before trying again. Do not automatically retry timeouts or failures: generation may already have spent credits. 5. Use `sendFiles` to deliver the returned path as `audio/wav`. Say it is synthetic narration. For a video, measure the new audio and pass it to the rendering workflow; speech generation alone does not update the video. ## Commands and Assets ```sh # Local, no API call: show the reusable voice preset. node scripts/speech.mjs --profile # Paid: generate the bundled Junior sample. node scripts/speech.mjs --sample --output /tmp/junior-sample.wav # Paid: generate requested narration. node scripts/speech.mjs --text-file /tmp/narration.txt --output /tmp/narration.wav # Paid: use the same voice without snark. node scripts/speech.mjs --text-file /tmp/incident.txt --output /tmp/incident.wav --delivery plain ``` Read `assets/junior-v1.json` when the user asks how the voice is defined. Read `assets/sample.txt` when previewing the sample script. The script sends delivery instructions separately from text. Do not prepend those directions to narration. Results are JSON with path, bytes, MIME type, model, voice, profile, delivery, and synthetic status. Use `--help` for the command surface. No key argument is accepted. ## Failures - Missing host key or HTTP 401/403: ask the operator to check `AI_GATEWAY_API_KEY`, plugin registration, and team speech access, then redeploy. A missing key in the Sandbox is expected. Core's OIDC authentication is not reused by this manifest-only plugin. - HTTP 402: ask the operator to check credits and spending limits. - HTTP 404: report that the requested Gemini model is unavailable for the team. Do not silently choose a different model or provider. - Timeout, provider warning, or bad audio: stop and check Gateway usage before a user-authorized retry. Do not claim that an audio file was created or approved by listening. - Missing script or Node.js: report plugin setup failure. Do not improvise a token-bearing command. - Missing credentials: share the preset and script as a recipe, clearly labeled as not generated audio.
From getsentry/junior at 1745a29, shown as plain text under its license: Apache-2.0 (permissive). The license text is in LICENSE.
View SKILL.md on GitHub at 1745a29Files
- SKILL.md3.2 KB · edfac05763ac
- SOURCES.md2.1 KB · 48b643f7a612
- SPEC.md1.6 KB · 02fa107ed90d
- assets/
- junior-v1.json826 B · 5890394d2699
- sample.txt213 B · e8c80f86f362
- scripts/
- speech.mjs6.0 KB · 90c0bdd7b613
6 files, 14 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at 1745a29More from Sentry
claude-settings-audit
This skill analyzes a repository to detect its tech stack, build tools, and service integrations, then generates recommended Claude Code settings.json…
Claude Code · about 2.9K tokens · pinned 6 days ago
commit
This skill enables the agent to create conventional commit messages following Sentry's style guide.
Claude Code, Codex, Cursor +4 · about 430 tokens · pinned 6 days ago
django-access-review
This skill guides agents through investigating Django and Django REST Framework code for IDOR and access control vulnerabilities.
Claude Code, Codex, Cursor +4 · about 2.5K tokens · pinned 6 days ago
django-perf-review
This skill audits Django codebases for performance problems by validating issues through code tracing before reporting.
Claude Code, Codex, Cursor +4 · about 2.8K tokens · pinned 6 days ago
iterate-pr
This skill automates PR iteration by fetching CI check statuses and review feedback, then fixing actionable failures and high/medium priority comments until…
Contains scripts
Claude Code · about 1.2K tokens · pinned 6 days ago
pr-writer
This skill helps agents write clear, reviewer-focused PR titles and descriptions by inspecting the branch, diff, and existing PR state, then crafting concise…
Claude Code, Codex, Cursor +4 · about 1.3K tokens · pinned 6 days ago
Related in Media and creative
academic-plotting
This skill generates publication-quality figures for ML conference papers through two workflows: AI-powered architecture diagrams via Gemini for system…
by Orchestra-ResearchCommunity
Claude Code, Codex, Cursor +3 · about 5.1K tokens · pinned 6 days ago
ai-image-creator
Generates, edits, or analyzes images using multiple AI models (Gemini, GPT Image, FLUX.2, Seedream, Qwen, and others) routed through Cloudflare AI Gateway or…
by centminmodCommunity
Contains scripts
Claude Code · about 7.9K tokens · pinned 6 days ago
all-images-ai-automation
This skill automates All Images AI operations by discovering and executing tools through Composio's All Images AI toolkit via Rube MCP.
by ComposioOfficial publisher
Agents not labelled yet · about 710 tokens · pinned 6 days ago
remotion-best-practices
This skill routes the agent through Remotion's specialized knowledge bases for video creation, editing, and deployment.
by RemotionOfficial publisher
Contains scripts
Claude Code, Codex, Cursor +3 · about 920 tokens · pinned 6 days ago
remotion-best-practices
This skill routes the agent to specialized Remotion sub-skills based on the user's task, covering video creation, project setup, React markup, maps…
by RemotionOfficial publisher
Claude Code, Codex, Cursor +3 · about 1K tokens · pinned 6 days ago
remotion-captions
This skill enables video caption workflows including transcribing audio to generate captions, displaying captions in videos, and importing captions from SRT…
by RemotionOfficial publisher
Claude Code, Codex, Cursor +3 · about 220 tokens · pinned 6 days ago