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.mdsafety · 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:
— Health status JSONGET /health
— List available modelsGET /v1/models
— Synthesize text to audio (WAV, MP3, Opus, PCM)POST /v1/audio/speech
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:
- Compile Swift launcher binary
- Create launchd plist at
~/Library/LaunchAgents/com.terryli.kokoro-tts-server.plist - 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
| Variable | Default | Purpose |
|---|---|---|
| | Listen port |
| | Bind address |
| | Default voice |
| | Default language |
| | Speech speed (0.1–5.0) |
| | Play via afplay |
Troubleshooting
| Issue | Cause | Solution |
|---|---|---|
| Port already in use | Another server running | to find, kill it |
| Model load fails | Not installed | Run first |
| Slow first request | Warmup synthesis | Normal — first request triggers model load |
Post-Execution Reflection
After this skill completes, check before closing:
- Did the command succeed? — If not, fix the instruction or error table that caused the failure.
- Did parameters or output change? — If the underlying tool's interface drifted, update Usage examples and Parameters table to match.
- 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.