Skip to content
Back to skills

Say

ASecurity

Speak a short sentence out loud using the macOS `say` command. Use when the user runs /say, or asks to "say it out loud", "speak", or "tell me out loud". Also used by the notify skill to deliver audible updates. One plain English sentence at most -- never paragraphs, links, code, long numbers, or technical data.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
code-qualitygobashgit

Security analysis

A100/100

Scanned November 11, 2026

npx -y skills add nvie/skills --skill say --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Say?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Say
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nvie-say/badge)](https://www.skillsdirectory.com/skills/nvie-say)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: say
description: >
  Speak a short sentence out loud using the macOS `say` command. Use when the
  user runs /say, or asks to "say it out loud", "speak", or "tell me out
  loud". Also used by the notify skill to deliver audible updates. One plain
  English sentence at most -- never paragraphs, links, code, long numbers, or
  technical data.
---

# Say

Turn whatever the user asks for into one short sentence and speak it.

## The one hard rule

**One spoken sentence, the way a person would say it out loud.**

If it can't be said in one breath, it's too long. Pick the single thing that
matters and drop the rest.

## What a sentence may contain

Only plain English words a human would speak to a colleague.

| Don't speak                                  | Speak instead                       |
| -------------------------------------------- | ----------------------------------- |
| `https://github.com/nvie/skills/pull/42`     | "Your pull request is up."          |
| "Tests: 412 passed, 3 failed in 38.2s"       | "Three tests failed."               |
| "`TypeError: cannot read 'id' of undefined`" | "The build broke on a type error."  |
| "Deployed v2.14.3-rc.1 to fly-ams-prod-2"    | "The deploy to production is done." |
| "Commit 9ed04ac pushed to origin/main"       | "Your commit is pushed."            |

- No links, file paths, code, commands, hashes, version strings, or IDs.
- No long numbers. Small counts are fine ("three tests failed"); round or
  drop anything else ("about two minutes", not "127 seconds").
- No symbols or markdown that a speech engine would read literally or
  mangle. Write "and", not "&". Abbreviations people say out loud ("CI",
  "PR") are fine.
- No preamble ("Here's an update:"). Just the sentence.

## How to speak it

Run it with Bash, text in single quotes:

```sh
pkill -f '^say -r '; while pgrep -qf '^say --rate='; do sleep 1; done; say -r 190 'The deploy to production is done.'
```

For a notification from the notify skill, end with this instead:

```sh
say --rate=190 'The deploy to production is done.'
```

The two spellings of the rate are what tell the speech apart, so two voices
never overlap and notifications are never lost:

- The `pkill` stops ordinary speech (`-r`), so a new sentence or notification
  cuts it off.
- The `while` waits for a notification (`--rate=`) to finish, so nothing cuts
  one off.

Avoid apostrophes in the sentence ("it is", not "it's") so the single quotes
stay intact. 190 is a bit above the usual 175 words per minute. Don't pass a
voice; the user's system default applies.

When the user ran `/say` directly, don't print anything after speaking
besides the sentence itself. When another skill (like notify) speaks through
this one, that skill decides what goes in the transcript.

## Examples

**User:** "/say the tests finished"
→ speaks "The tests are done."

**User:** "/say summarize the PR review results" (review found two blocking
issues in the auth middleware and five nits)
→ speaks "The review found two blocking issues, both in the auth code."

## Checklist

- [ ] Exactly one sentence
- [ ] Sounds natural spoken aloud
- [ ] No links, paths, code, IDs, versions, or long numbers
- [ ] No apostrophes inside the single quotes
- [ ] On a direct `/say`, nothing printed except the sentence

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in code-quality →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.