60db Agent Skills
Bring 60db’s full voice stack — text-to-speech, speech-to-text, voice cloning, voice management, and the LLM core — directly into your coding agent. Install it once and call it with/60db from Claude Code, OpenAI Codex, OpenCode, or any agent that reads a skills directory.
It’s a single zero-dependency Python CLI (stdlib only, Python 3.8+) — no SDK, no pip install, no version drift.
Claude Code
/60db and /setup-60dbOpenAI Codex
~/.codex/skillsOpenCode & others
Why a Skill, Not Just the SDK
The skill encodes the behavior that’s actually true against the live API, so you never relearn the gotchas. It’s stdlib-only, so it keeps working regardless of SDK or doc drift. The five mistakes it pins for you:REST /tts-synthesize returns NDJSON, not one JSON blob
REST /tts-synthesize returns NDJSON, not one JSON blob
result.audioContent (base64 LINEAR16 PCM). The CLI does this for you.Only 8000 / 16000 / 24000 / 48000 Hz are accepted
Only 8000 / 16000 / 24000 / 48000 Hz are accepted
44100 is rejected with a 400.The output_format flag is ignored
The output_format flag is ignored
Sample rate ≠ fidelity
Sample rate ≠ fidelity
enhance and 60db-quality do not raise the ceiling.The voice id field is voice_id, not id
The voice id field is voice_id, not id
labels — confirmed by live inspection.How It Works
One CLI —skills/60db/scripts/sixtydb.py — fronts every 60db use case against https://api.60db.ai.
init (a hidden prompt) or sets SIXTYDB_API_KEY. In a chat session where a hidden prompt isn’t reachable, the agent scaffolds defaults with init --no-key and hands the key step back to the user.Use Cases
What you can build with/60db without leaving your coding agent:
Narration & voiceovers
.txt file into studio-quality audio for videos, podcasts, or demos — tts script.txt --voice <id> --out vo.wav.Transcription & subtitles
stt rec.mp4 --diarize --timestamps --json.Voice agents & bots
stt (ears) + chat (brain) + tts (mouth) into a conversational loop for support, reception, or IVR-style flows.Custom brand voices
clone --name "Brand VO" --sample a.wav --sample b.wav.Accessibility
Multilingual content
langs / langs --stt for coverage.Who it’s for
Developers building voice features
Developers building voice features
Creators & content teams
Creators & content teams
Support & operations teams
Support & operations teams
stt + chat + tts parts, and transcribe call recordings for QA or summaries.Anyone in a coding agent
Anyone in a coding agent
/60db lets you ship audio without context-switching to a dashboard or another tool.A typical workflow
Set up once
/setup-60db to store your API key and defaults (voice, model, sample rate).Pick a voice
voices to list available voice IDs (add --mine for your cloned voices).Generate or transcribe
tts to make audio or stt to make text — the skill asks for anything it needs.Iterate or chain
--speed / --stability, or chain stt → chat → tts for a full voice-agent turn.The Two Skills
Install
Add the skill
Restart your agent session
Run setup once
/setup-60db, or directly:Run It
Quick Decision Guide
Examples
Gotchas That Bite Everyone
Coverage
How It Helps
Zero setup friction
requests, no version drift. Only python3 3.8+ required.Truth over docs
Voice agents from parts
stt (ears) + chat (brain) + tts (mouth).Secure by design
FAQ
How do I install it the fastest way?
How do I install it the fastest way?
npx skills add 60db-ai/60db.ai-skills, then restart your agent and run /setup-60db.Where does my API key go? Is it safe?
Where does my API key go? Is it safe?
~/.config/60db/config.json (mode 600), or the SIXTYDB_API_KEY env var. It’s never passed on the command line, never printed, and .gitignore keeps it out of git. The agent never types it for you.My voice sounds slightly compressed at 48 kHz. Bug?
My voice sounds slightly compressed at 48 kHz. Bug?
enhance and 60db-quality don’t raise the ceiling.Which sample rates are allowed?
Which sample rates are allowed?
8000, 16000, 24000, 48000 only. 44100 is rejected.Can 60db make or receive phone calls?
Can 60db make or receive phone calls?
stt (ears) + chat (brain, 60db-tiny) + tts (mouth).Does it work outside Claude Code?
Does it work outside Claude Code?
Do I need the SDK or requests?
Do I need the SDK or requests?
python3 3.8+. The single optional dependency is websockets, used solely by the legacy --ws TTS path.