voice-wake-say
SafeApple Apps & Services
Speak responses aloud on macOS via the say command.
SKILL.md
# Voice Wake Say
## Overview
Use macOS `say` to read the assistant's response out loud whenever the conversation came from Voice Wake/voice recognition. Do **not** use the `tts` tool (it calls cloud providers).
## When to Use `say` (CHECK EVERY MESSAGE INDIVIDUALLY)
**IF** the user message STARTS WITH: `User talked via voice recognition`
- **Step 1:** Acknowledge with `say` first (so the user knows you heard them)
- **Step 2:** Then perform the task
- **Step 3:** Optionally speak again when done if it makes sense
**IF** the user message does NOT start with that exact phrase
- THEN: Do NOT use `say`. Text-only response only.
**Critical:**
- Check EACH message individually — context does NOT carry over
- The trigger phrase must be at the VERY START of the message
- For tasks that take time, acknowledge FIRST so the user knows you're working
## Workflow
1) Detect Voice Wake context
- Trigger ONLY when the latest user/system message STARTS WITH `User talked via voice recognition`
- If the message instructs "repeat prompt first", keep that behavior in the response.
2) Prepare spoken text
- Use the final response text as the basis.
- Strip markdown/code blocks; if the response is long or code-heavy, speak a short summary and mention that details are on screen.
3) Speak with `say` (local macOS TTS)
```bash
printf '%s' "$SPOKEN_TEXT" | say
```
Optional controls (use only if set):
```bash
printf '%s' "$SPOKEN_TEXT" | say -v "$SAY_VOICE"
printf '%s' "$SPOKEN_TEXT" | say -r "$SAY_RATE"
```
## Failure handling
- If `say` is unavailable or errors, still send the text response and note that TTS failed.
More in Apple Apps & Services
apple-contacts
SafeLook up contacts from macOS Contacts.app.
apple-music
SafeSearch Apple Music, add songs to library, manage playlists, control playback and AirPlay.
apple-photos
CautionApple Photos.app integration for macOS. List albums, browse photos, search by date/person/content.
get-focus-mode
SafeGet the current macOS Focus mode.