Cc-skills server

Start/stop Kokoro TTS HTTP server. TRIGGERS - start tts server, kokoro server, tts http, stop tts server.

install
source · Clone the upstream repo
git clone https://github.com/terrylica/cc-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/terrylica/cc-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/kokoro-tts/skills/server" ~/.claude/skills/terrylica-cc-skills-server && rm -rf "$T"
manifest: plugins/kokoro-tts/skills/server/SKILL.md
safety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
  • makes HTTP requests (curl)
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content

Kokoro TTS Server

Manage the Kokoro TTS HTTP server — an OpenAI-compatible

/v1/audio/speech
endpoint on localhost:8779.

Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.

Server Overview

The server provides:

  • GET /health
    — Health status JSON
  • GET /v1/models
    — List available models
  • POST /v1/audio/speech
    — Synthesize text to audio (WAV, MP3, Opus, PCM)

Quick Start

Start (foreground, for testing)

~/.local/share/kokoro/.venv/bin/python ~/.local/share/kokoro/tts_server.py

Start (launchd, for production)

Per the macOS launchd policy, the launchd plist must launch a compiled Swift binary (not a bash script). Guide the user through:

  1. Compile Swift launcher binary
  2. Create launchd plist at
    ~/Library/LaunchAgents/com.terryli.kokoro-tts-server.plist
  3. Bootstrap:
    launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.terryli.kokoro-tts-server.plist

Stop

launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.terryli.kokoro-tts-server.plist

Verify

curl -s http://127.0.0.1:8779/health | python3 -m json.tool

Expected:

{"status": "ok", "provider": "kokoro-tts-mlx", "model": "mlx-community/Kokoro-82M-bf16", "device": "mlx-metal"}

Environment Variables

VariableDefaultPurpose
KOKORO_SERVER_PORT
8779
Listen port
KOKORO_SERVER_HOST
127.0.0.1
Bind address
KOKORO_DEFAULT_VOICE
af_heart
Default voice
KOKORO_DEFAULT_LANG
en-us
Default language
KOKORO_DEFAULT_SPEED
1.0
Speech speed (0.1–5.0)
KOKORO_PLAY_LOCAL
0
Play via afplay

Troubleshooting

IssueCauseSolution
Port already in useAnother server running
lsof -i :8779
to find, kill it
Model load failsNot installedRun
/kokoro-tts:install
first
Slow first requestWarmup synthesisNormal — first request triggers model load

Post-Execution Reflection

After this skill completes, check before closing:

  1. Did the command succeed? — If not, fix the instruction or error table that caused the failure.
  2. Did parameters or output change? — If the underlying tool's interface drifted, update Usage examples and Parameters table to match.
  3. Was a workaround needed? — If you had to improvise (different flags, extra steps), update this SKILL.md so the next invocation doesn't need the same workaround.

Only update if the issue is real and reproducible — not speculative.