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

speak

Skill1 starsChanged 58 days agoMITView on GitHub

Give the agent a voice using a local neural text-to-speech engine. Audio playback takes real-world seconds. Never run speech synchronously or wait for playback to complete before continuing your work. Always fire speech as a background process (WaitMsBeforeAsync: 500 or background shell job) so you can proceed to your next tool call immediately. Keep messages short (1 to 2 sentences). Avoid reading raw code blocks, file diffs, or terminal stack traces out loud. Summarize the intent in plain language. Before…

  • Sends data out

17 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 6 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 16 edited versions we read keep these.

  • 6

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Always fire speech as a background process (WaitMsBeforeAsync: 500 or background shell job) so you can proceed to your next tool call …

    line 12
  2. Distinctive:

    Milestones: When finishing a major step during a long task.

    line 17
  3. Distinctive:

    Keep messages short (1 to 2 sentences).

    line 22
  4. Distinctive:

    Before speaking, check for configuration in this order:

    line 26
  5. Very specific:

    If the active configuration has frequency: silent or disables notifications for the current task category, skip speaking and proceed …

    line 32
  6. Distinctive:

    Run the platform driver script in the background to handle auto-starting, volume soft-clipping, and multi-agent heartbeat locking …

    line 36
  7. Distinctive:

    If the TTS server is unreachable (connection refused) or an audio device is unavailable, the driver fails silently with exit code 0.

    line 66

“Common” is measured: kept by at least 6 in 10 of the 16 edited versions of this file we could read. “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

Give the agent a voice using a local neural text-to-speech engine.

Core Rule: Never Block on Audio

Audio playback takes real-world seconds. Never run speech synchronously or wait for playback to complete before continuing your work.

Always fire speech as a background process (WaitMsBeforeAsync: 500 or background shell job) so you can proceed to your next tool call immediately.

When to Speak

  • Task start: One sentence confirming what you are starting.
  • Milestones: When finishing a major step during a long task.
  • Completion: Clear summary of what was accomplished and verified.
  • Errors: Immediate audible notification if a build, test, or process fails.
  • Key findings: Verbal summary when research or diagnosis yields a crucial discovery.

Keep messages short (1 to 2 sentences). Avoid reading raw code blocks, file diffs, or terminal stack traces out loud. Summarize the intent in plain language.

Reading Configuration

Before speaking, check for configuration in this order:

  1. ./.speak.md (repo-local configuration)
  2. ~/.config/speak/config.md (user-global configuration)
  3. Hardcoded default fallback: Pocket-TTS at http://localhost:8000/tts, voice eponine, tone conversational.

If the active configuration has frequency: silent or disables notifications for the current task category, skip speaking and proceed silently.

How to Call the Active Engine

Run the platform driver script in the background to handle auto-starting, volume soft-clipping, and multi-agent heartbeat locking automatically:

1. Windows (PowerShell)

powershell -ExecutionPolicy Bypass -File "scripts/speak.ps1" -Text "Task completed successfully."

2. macOS / Linux (Bash)

bash scripts/speak.sh "Task completed successfully."

3. Direct HTTP Fallback (When scripts are not in workspace)

# Pocket-TTS (localhost:8000)
curl -s -X POST "http://localhost:8000/tts" -d "text=Task completed successfully." -d "voice_url=eponine" -o /tmp/tts.wav && (afplay /tmp/tts.wav || aplay /tmp/tts.wav || ffplay -nodisp -autoexit /tmp/tts.wav) >/dev/null 2>&1 &

# Kokoro-FastAPI (localhost:8880)
curl -s -X POST "http://localhost:8880/v1/audio/speech" -H "Content-Type: application/json" -d '{"model":"kokoro","input":"Task completed successfully.","voice":"af_heart"}' -o /tmp/tts.mp3 && (afplay /tmp/tts.mp3 || mpg123 /tmp/tts.mp3 || ffplay -nodisp -autoexit /tmp/tts.mp3) >/dev/null 2>&1 &

Concurrency Lock

In multi-agent swarms, multiple agents can finish tasks simultaneously. The driver scripts automatically manage a heartbeat lock (speak.lock) with active lease renewal and stale steal protection to prevent overlapping speech.

Graceful Degradation

If the TTS server is unreachable (connection refused) or an audio device is unavailable, the driver fails silently with exit code 0. Never allow audio generation errors to break your primary engineering objective.

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.