openai-tts

$npx mdskill add sonichi/sutando/openai-tts

Synthesizes text to speech using OpenAI's tts-1-hd model

  • Converts written text into natural-sounding audio for narration or voiceovers
  • Leverages OpenAI's tts-1-hd API and requires an OPENAI_API_KEY
  • Uses user-provided text and optional voice selection to generate audio
  • Saves output as an MP3 file to a specified or default location

SKILL.md

.github/skills/openai-ttsView on GitHub ↗
---
name: openai-tts
description: "Render text to mp3 via OpenAI's tts-1-hd. Use for video narration, demo voiceovers, audio notes."
user-invocable: true
---

# OpenAI TTS

Synthesize speech via OpenAI `tts-1-hd`. Reads `OPENAI_API_KEY` from `.env`.

This is offline synthesis — distinct from voice-agent's bidirectional Gemini Live audio.

**Usage**: `/openai-tts [text]`

ARGUMENTS: $ARGUMENTS

## Voices

`alloy`, `ash`, `coral` (default), `echo`, `fable`, `nova`, `onyx`, `sage`, `shimmer`.

## Examples

```bash
bash "$SKILL_DIR/scripts/synthesize.sh" -- "Hello, this is Sutando."
bash "$SKILL_DIR/scripts/synthesize.sh" --voice ash --out /tmp/intro.mp3 -- "Hi."
```

Default output path: `results/openai-tts-{epoch}.mp3`. Cost: ~$0.02 per 60s of narration.

## If Invoked As A Slash Command

If ARGUMENTS is empty, ask the user for the text. Otherwise:

```bash
bash "$SKILL_DIR/scripts/synthesize.sh" -- "$ARGUMENTS"
```

More from sonichi/sutando

SkillDescription
agent-registryLocal Agent Registry — a standalone, dependency-free service that tracks running Claude Code (and other) agent instances. Agents self-register on startup and heartbeat while alive; the Electron overlay and Sutando dashboard read the live list. Use when you need to know which coding agents are running, where, and since when.
bot2bot-postPost a coordination message from this bot to the shared bot2bot channel, @-mentioning the other Sutando node.
claude-codexBash wrapper around the local Codex CLI for non-interactive runs from inside Sutando (bridges, cron, scripts). For interactive code review or task hand-off from this Claude Code session, prefer the official `/codex:*` plugin commands; this skill is the file-bridge-compatible path that `discord-bridge.py` invokes for team-tier sandboxed delegation.
claude-geminiUse the local Gemini CLI from Claude Code with the user's existing Gemini authentication or API configuration. Use for large-context repo scans, multimodal analysis, second-opinion planning, or structured Gemini runs in the current workspace.
claude-routerChoose between the local Codex CLI and Gemini CLI from Claude Code. Use for automatic model selection when the user wants the best local delegate for code review, repo-wide analysis, planning, or implementation.
cross-node-syncRsync-over-ssh sync between Sutando nodes (Mac Studio and MacBook) for shared memory + notes. Optional — core runs fine without it; enables automatic cross-bot learning and note propagation by running from the proactive-loop cron on each pass.
deal-finderScan configured sources (Craigslist now; eBay + Facebook Marketplace planned) for used-item listings matching the owner's criteria. Currently configured for a Mac mini search (M2+, 16GB+, 512GB+, ≤$500, near 94566). Notify owner via SMS + Telegram on a match.
electron-overlay-dimmingReusable pattern for focus-based auto-dimming of Electron overlay windows — when the app loses focus, all overlay windows fade to a low opacity; when an overlay regains focus, they return to their configured opacity. Use when building always-on-top Electron overlays that should recede while the user works in other apps.
gemini-ttsRender text to mp3 via Google Gemini Flash TTS. Free-tier eligible (1500 req/day). Use for video narration, demo voiceovers, audio notes. Parallels openai-tts; default for make-viral-video.
macos-toolsmacOS native integrations: screen capture, calendar, reminders, contacts, email (Mail.app), Spotlight search. Use when the user asks about their screen, schedule, to-do list, contacts, or wants to send email on macOS.