Agent skill

Say

by cloudposse in cloudposse/atmos

Give an audible nudge via the macOS say command when a task finishes and needs review, or is blocked and needs human input.

Apache-2.0Auto-check passedDevOps & Cloud

Install Say

skills CLI
$ npx skills add cloudposse/atmos --skill say -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install cloudposse/atmos say --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/say .claude/skills/say && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
say
GitHub stars
1.4k
Token cost
~722 tokens
SKILL.md length
348 words
Files
1
Skills in repo
70
Repo updated
First seen
Licence
Apache-2.0

At a glance

Give an audible nudge via the macOS say command when a task finishes and needs review, or is blocked and needs human input.

  • Works in 2 steps: A task or cycle finished in a way that… → Execution is blocked and needs human…
  • DevOps & Cloud work in your project
  • SKILL.md covers When to use it, Phrasing rule, Invocation and Related
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Say is an agent skill from cloudposse/atmos. Give an audible nudge via the macOS say command when a task finishes and needs review, or is blocked and needs human input. A standing general preference — invoke any time work reaches a stopping point a human should know about, not just from PR-maintenance flows.

Its SKILL.md is about 720 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud. It works with macOS. The repository describes itself as: Atmos is the open-source runtime for infrastructure — it builds, authenticates, and ships Terraform, OpenTofu, Packer, Ansible, Kubernetes, Helm, and containers the same way on… The licence is Apache-2.0.

When your agent uses it

  • DevOps & Cloud work in your project

Example prompts

  • “/say”

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. A task or cycle finished in a way that needs human review (e.g. a fix was applied but the
  2. Execution is blocked and needs human input to proceed (e.g. a merge conflict, an ambiguous

What it can do on your machine

Read from SKILL.md and the folder at commit fbae93f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Say loads about 722 tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 348 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~68
When it runs · the whole SKILL.md, loaded when a task matches
~722

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from cloudposse/atmos at commit fbae93f, republished under its Apache-2.0 licence (© cloudposse). 348 words, ~722 tokens.

Download SKILL.mdSave it as .claude/skills/say/SKILL.md (or your agent's skills folder).
name
say
description
Give an audible nudge via the macOS `say` command when a task finishes and needs review, or is blocked and needs human input. A standing general preference — invoke any time work reaches a stopping point a human should know about, not just from PR-maintenance flows.
metadata.copyright
Copyright Cloud Posse, LLC 2026
metadata.version
1.0.0

Audible Task Notifications

A written summary is easy to miss when it lands in a background session hours after the user stopped watching. This skill gives that moment an audible signal too.

When to use it

Two triggers, general-purpose — not tied to any one feature:

  1. A task or cycle finished in a way that needs human review (e.g. a fix was applied but the result deserves a second look).
  2. Execution is blocked and needs human input to proceed (e.g. a merge conflict, an ambiguous finding, a failure the caller correctly declined to touch).

Any skill or agent reaching one of these states should invoke this — it is not specific to fix-all or any other single caller.

Phrasing rule

Keep it under ~15 words. Be specific, not a summary dump — include identifying context (a PR number, branch, or file) so the listener knows what without reading anything.

  • Good: "PR 2718 has a merge conflict, needs your attention."
  • Bad: a multi-sentence recap of the whole cycle.

Invocation

say is macOS-only. Wrap it defensively so a caller on another platform (or a machine without say) never fails because of this notification. Build the message in a shell variable first, then pass it via quoted expansion — never substitute untrusted text (a PR title, branch name, file path) directly into the command source, since a stray " could terminate the quote and inject additional shell content:

bash
message="PR ${pr_number} needs your attention."
command -v say >/dev/null 2>&1 && say "$message" || true

No DATA-vs-instructions treatment is needed here: say only produces local audio output, no state mutation, so it's exempt from the untrusted-content framing applied to things like CodeRabbit comment bodies elsewhere in this repo's automation.

Requires .claude/settings.json → "Bash(say:*)" in allow — this skill owns that dependency; callers don't need their own entry for it.

  • fix-all skill — example caller, invokes this on every human-attention exit path in its check/fix cycle (scheduled hourly by pr-maintenance-loop, or run directly for a one-shot).
  • test-coverage skill — example caller, invokes this when a test-fix attempt caps out still red or a coverage gap is genuinely untestable.
  • lint skill — example caller, invokes this when a finding needs a broader refactor than patch scope allows.

© cloudposse, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/say of cloudposse/atmos.

Open the folder on GitHubat commit fbae93f

Compare with similar skills

Say next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Say compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Say this skillcloudposse/atmos1.4k—~722Automated safety check: PassApache-2.0
Openclaw Live Updateropenclaw/openclaw392k—~3.7kAutomated safety check: PassMIT
Reproduce macOS Python FlavorsNuitka/Nuitka15k—~1.7kAutomated safety check: PassAGPL-3.0
macOS Telemetryrobinebers/openusage4.3k—~934Automated safety check: PassMIT
GitHub Actionstddworks/ClaudeBar1.5k—~1.1kAutomated safety check: PassApache-2.0
.NET Crash Dump Collectiondotnet/skills5.6k2 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • Openclaw Live Updater

    openclaw/openclaw

    Maintain the canonical live OpenClaw main checkout, macOS LaunchAgent-managed Gateway, local macOS app, exact-head main CI, and recurring full release validation.

    392k GitHub stars~3.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Reproduce macOS Nuitka issues across Python distributions and GitHub Actions Python packaging.

    15k GitHub stars~1.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • macOS Telemetry

    robinebers/openusage

    Add and verify lightweight macOS runtime telemetry. An agent skill from robinebers/openusage.

    4.3k GitHub stars~934 tokensUpdated 2 days ago
    DevOps & CloudAuto-check passed
  • GitHub Actions

    tddworks/ClaudeBar

    Manage ClaudeBar's GitHub Actions CI/CD pipelines: build, test, and release workflows.

    1.5k GitHub stars~1.1k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Official

    Configures automatic crash dumps or captures dumps from running processes for modern .NET apps on Linux, macOS and Windows, including Docker and Kubernetes.

    5.6k GitHub starsUsed in 2 repos~1.1k tokens
    DevOps & CloudAuto-check passed
  • Codex Autoskin

    Finderchangchang/codex-autoskin

    Apply, launch, verify, theme-switch, repair, update, or restore a full decorative skin for the Windows or macOS Codex desktop app.

    120 GitHub stars~2.1k tokensUpdated 2 mo ago
    DevOps & CloudAuto-check passed

More from cloudposse/atmos

All 70 skills in this repo
  • Fix Log

    cloudposse/atmos

    A skill your agent uses when implementing, finishing, documenting, or reviewing a fix, repair, remediation, bug fix, debug-and-fix task, workflow fix, infrastructure fix, or any change that should…

    1.4k GitHub stars~685 tokensUpdated today
    Auto-check passed
  • Atmos Lint

    cloudposse/atmos

    Atmos Terraform linting with TFLint: standalone atmos terraform lint, component-aware config discovery and toolchain versions, TFLint rule configuration, and lifecycle hooks/CI findings.

    1.4k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Changelog

    cloudposse/atmos

    Blog post authoring for Atmos: MDX template, frontmatter, website/blog/tags.yml and authors.yml rules, problem-first framing, backtick-opening ban, optional cast embeds, and no-Go-internals leakage.

    1.4k GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Editions

    cloudposse/atmos

    Decide whether a PR's new or changed default needs edition-journal handling (pkg/edition, docs/prd/editions.md), and do the mechanical work if so: journal entries, the four-layer default check…

    1.4k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Atmos Migration

    cloudposse/atmos

    Migrate to Atmos from native Terraform, Terraform Workspaces, Terramate, Terragrunt, Make, Just, or Task; migrate tool versions from mise or Aqua CLI; migrate AWS/GCP/Azure CLI configs, Leapp…

    1.4k GitHub stars~5.1k tokensUpdated today
    Auto-check: warnings
  • PR Maintenance Loop

    cloudposse/atmos

    Start an hourly background loop that keeps the current branch's PR rebased, its addressed CodeRabbit threads resolved, its CI checks passing, its lint clean, its tests passing with adequate patch…

    1.4k GitHub stars~1.4k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Say

What does Say do?

Give an audible nudge via the macOS say command when a task finishes and needs review, or is blocked and needs human input. Say is an agent skill from cloudposse/atmos. Give an audible nudge via the macOS say command when a task finishes and needs review, or is blocked and needs human input.

When should I use Say?

Say fits situations like: devOps & Cloud work in your project.

How do I install Say in Claude Code?

Run `npx skills add cloudposse/atmos --skill say -a claude-code`. Or copy the skill folder (.claude/skills/say in cloudposse/atmos) into .claude/skills/say in your project. Claude Code loads it when a task matches its description.

How do I install Say in Codex?

Run `npx skills add cloudposse/atmos --skill say -a codex`. Or copy the skill folder (.claude/skills/say in cloudposse/atmos) into .agents/skills/say in your project. Codex loads it when a task matches its description.

Can I use Say in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cloudposse/atmos --skill say -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/say, .gemini/skills/say, .github/skills/say and .opencode/skills/say in your project.

What does Say need to run?

SKILL.md names no scripts, command-line tools or credentials: Say is instructions for the agent only.

Does Say access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Say safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Say use?

Say is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Say use?

About 722 tokens (SKILL.md is roughly 2.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Say?

Skills that share tags, products or a category with Say: Openclaw Live Updater (openclaw/openclaw, 392k stars), Reproduce macOS Python Flavors (Nuitka/Nuitka, 15k stars), macOS Telemetry (robinebers/openusage, 4.3k stars) and GitHub Actions (tddworks/ClaudeBar, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Say?

cloudposse (a GitHub organization) maintains it in cloudposse/atmos, which has 1,398 GitHub stars. The repository holds 70 skills in this directory. The repository was last updated on October 9, 2026.

Source: cloudposse/atmos on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.