agentleFS
Vachilla64Vachilla64/speak-skill/skills/setup-speak/SKILL.md

setup-speak

Skill1 starsChanged 58 days agoMITView on GitHub

Interactive wizard to install a local TTS engine, audition voices, and configure agent speech preferences.

  • Installs packages
  • In this repository2 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

11 rules. About 0 are common, 4 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Windows: Use uvx for Pocket-TTS, Docker for Kokoro, or ONNX Runtime for Kitten TTS.

    line 13
  2. Very specific:

    macOS (Apple Silicon): Use uvx for Pocket-TTS, mlx-audio for accelerated Kokoro, or ONNX Runtime for Kitten TTS.

    line 14
  3. Very specific:

    macOS (Intel): Use uvx for Pocket-TTS, Docker for Kokoro, or pip for Kitten TTS.

    line 15
  4. Very specific:

    Linux: Use uvx for Pocket-TTS, Docker for Kokoro, or pip for Kitten TTS.

    line 16
  5. Distinctive:

    Ask the user which engine they want to configure.

    line 30
  6. Very specific:

    Verify the server is healthy by querying http://localhost:8000/health.

    line 46
  7. Very specific:

    Verify by querying http://localhost:8880/health.

    line 59
  8. Distinctive:

    Do not make the user guess what a voice sounds like from a list of names.

    line 77
  9. Distinctive:

    Ask the user which voice they prefer.

    line 88
  10. Distinctive:

    Ask the user three concise configuration questions:

    line 92
  11. Very specific:

    Write the resulting preferences to ./.speak.md in the repository root (or ~/.config/speak/config.md if the user requested global …

    line 110

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Guide the user through setting up local text-to-speech for AI agents. Run this once per workstation or repository.

Phase 1: Detect Operating System and Environment

Detect the host operating system before asking any questions:

  • Windows: Use uvx for Pocket-TTS, Docker for Kokoro, or ONNX Runtime for Kitten TTS.
  • macOS (Apple Silicon): Use uvx for Pocket-TTS, mlx-audio for accelerated Kokoro, or ONNX Runtime for Kitten TTS.
  • macOS (Intel): Use uvx for Pocket-TTS, Docker for Kokoro, or pip for Kitten TTS.
  • Linux: Use uvx for Pocket-TTS, Docker for Kokoro, or pip for Kitten TTS.

Confirm the detected platform to the user in one sentence and proceed to engine selection.

Phase 2: Engine Selection

Present the three local neural engines clearly. Highlight their core trade-offs:

EngineSizeRAM FootprintKey Strength
Pocket-TTS (Kyutai Labs)~100M params (150 MB)~300 MiBZero-shot voice cloning from a 5-second audio clip. Conversational cadence. MIT license.
Kokoro-82M (hexgrad)82M params (82 MB)~150 MiB54+ studio voices across 8 languages. High prosodic fidelity. Apache 2.0 license.
Kitten TTS (KittenML)15M to 80M (<25 MB)~30 MiBUltra-lightweight ONNX runtime. Minimal memory footprint. Apache 2.0 license. Note: Set speed to 1.25 for natural cadence.

Ask the user which engine they want to configure.

Phase 3: Engine Installation and Verification

Provide exact, copy-pasteable commands based on the selected engine and detected operating system:

Option A: Pocket-TTS (Recommended for Conversational Identity)

# Permanent local installation with PATH executable (avoids ephemeral redownloads)
uv tool install pocket-tts

# Launch server (or let the speak driver auto-start it in the background)
pocket-tts serve

Verify the server is healthy by querying http://localhost:8000/health.

Option B: Kokoro-82M (hexgrad)

If using Docker (Containerized Server):

# CPU container with persistent model and voice caching volumes
docker run -d --name kokoro-tts -p 8880:8880 \
  -v kokoro-models:/app/api/src/models \
  -v kokoro-voices:/app/api/src/voices \
  --restart unless-stopped \
  ghcr.io/remsky/kokoro-fastapi-cpu:latest

Verify by querying http://localhost:8880/health.

If not using Docker (Pure ONNX Runtime):

# Zero-Docker, Zero-PyTorch ONNX installation
pip install kokoro-onnx soundfile

(Requires espeak-ng: brew install espeak-ng on macOS, sudo apt install espeak-ng on Linux, winget install eSpeak-NG.eSpeak-NG on Windows).

Option C: Kitten TTS (Pure ONNX)

# Zero-Docker, Zero-PyTorch ultra-lightweight installation (<25 MB)
pip install https://github.com/KittenML/KittenTTS/releases/download/0.8.1/kittentts-0.8.1-py3-none-any.whl soundfile onnxruntime

Phase 4: Voice Audition (Demos)

Do not make the user guess what a voice sounds like from a list of names.

Generate a standardized greeting using the selected engine across 3 to 4 prominent candidate voices:

  • Standard test sentence: "Hello, I am your agent. I will keep you updated while you focus on deep work."
  • Pocket-TTS candidates: eponine (expressive female), michael (calm focus male), caro_davy (natural narrator), javert (authoritative male).
  • Kokoro candidates: af_heart (clear American female), am_fenrir (deep American male), bf_emma (British female), bm_george (British male).
  • Kitten TTS candidates: Jasper (speed 1.25), Bruno (speed 1.25), Bella (speed 1.25), Luna (speed 1.25).

Play each candidate sample aloud using the platform audio player ((New-Object Media.SoundPlayer).PlaySync() on Windows, afplay on macOS, aplay on Linux).

Ask the user which voice they prefer.

Phase 5: Speech Preferences and Persona

Ask the user three concise configuration questions:

  1. Tone:
    • conversational (friendly, first-person updates)
    • formal (neutral, concise third-person status reports)
    • minimal (under 5 words, e.g. "Build succeeded.")
  2. Frequency:
    • completions-and-errors (recommended: notify only on completed tasks and failures)
    • all-milestones (notify at start, major steps, and completion)
    • errors-only (speak only when something breaks)
  3. Task categories to vocalize:
    • Long builds and test suites
    • Code reviews
    • Research and diagnostic findings
    • Multi-agent swarm milestones

Phase 6: Save Configuration

Write the resulting preferences to ./.speak.md in the repository root (or ~/.config/speak/config.md if the user requested global configuration):

---
engine: pocket-tts
server_url: http://localhost:8000
voice: eponine
tone: conversational
frequency: completions-and-errors

tasks:
  builds_and_tests: true
  task_completion: true
  errors_and_crashes: true
  research_findings: true
  code_reviews: false

audio:
  volume: 1.5
  mode: safe
---

# Speak Configuration
Created by /setup-speak. Edit values directly or run /edit-speak to modify.

Close the session by confirming that speech is enabled and ready for the next task.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.