Agent Native

tts

Generates spoken audio narration using Gemini TTS through Vercel AI Gateway.

by SentryOfficial publisherNot reviewed

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.”
The author's description, from SKILL.md

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 tts

Installs 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@1745a298365f0f001db0b3eec6de8a8347e0f6d9

Installs 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.

Skill folder on GitHub at 1745a29

Claude Code plugin

/plugin install sentry@claude-plugins-official

The 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-official

The 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 1745a29

Files

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 1745a29
All 50 skills from Sentry

More 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

  • 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

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use