ntfy
Skill1 starsChanged 3 months agoMITView on GitHub
Send safe ntfy notifications for agent tasks expected to take more than 30 seconds. Use with ntfy.sh or a user-approved self-hosted server, OS credential stores, duration forecasts, and success, failure, or blocked-state updates.
- Reads credentials
3 other projects use a version of this.
Adopted by
Most recently taken up by
- jamesblackwell/falcondecktheir own version, first seen Oct 30, 2026
- qt-brlefebv/claude-skillstheir own version, first seen Oct 11, 2026
- uvwt/agentdock-skillstheir own version, first seen Aug 30, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- jamesblackwell/falcondeck★ 7same name
- uvwt/agentdock-skills★ 6same name
- qt-brlefebv/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 7 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 14
Use this skill for meaningful status notifications from tasks that may take more than 30 seconds.
- Distinctive: line 18
Before starting a task, estimate the total duration from its stages.
- Distinctive: line 31
If the user asks to put a token in a repository, README, URL, shell history, command argument, environment file, ticket, prompt, or …
- Distinctive: line 41
If any check fails, stop and explain what must be fixed.
- Distinctive: line 45
Use these values conceptually:
- Very specific: line 61
Use the built-in security command.
- Very specific: line 68
If retrieval fails, open Keychain Access, find the ntfy-skill generic password in the login keychain, and confirm the account matches $USER.
- Very specific: line 72
Use secret-tool backed by GNOME Keyring, KWallet through Secret Service, or another approved Secret Service provider:
- Distinctive: line 83
Prefer PowerShell SecretManagement with the SecretStore vault or an organization-approved Windows Credential Manager integration:
- Distinctive: line 94
Use the Windows Credential Manager GUI or an approved enterprise vault instead when SecretManagement is unavailable.
- Very specific: line 103
If the server returns 401 or 403, check token scope and topic permissions.
- Distinctive: line 104
If the server cannot be reached, check HTTPS, DNS, proxy, and firewall settings.
- Very specific: line 109
Use a local wrapper that reads the token from the credential store at runtime.
≈ “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.
Files
ntfy Notifications
Use this skill for meaningful status notifications from tasks that may take more than 30 seconds. The default server is https://ntfy.sh. A user may choose a self-hosted HTTPS server, with or without authentication, when that server's access policy permits it.
Mandatory Duration Gate
Before starting a task, estimate the total duration from its stages. Include setup, network waits, tool calls, tests, retries, and cleanup. State the estimate in the task plan:
Forecast: about 45 seconds. Stages: research 20s, implementation 15s, verification 10s.
Notification: enabled because the forecast exceeds 30 seconds.Use this skill when the forecast is greater than 30 seconds, or when the task has a meaningful chance of exceeding 30 seconds. Do not notify for routine steps that are clearly below the threshold. If the forecast changes and crosses the threshold, enable the notification plan then.
Send at most one useful completion, failure, or blocked-state notification unless the user asks for progress updates. Never claim success unless the notification command reports success.
Safety Gate
If the user asks to put a token in a repository, README, URL, shell history, command argument, environment file, ticket, prompt, or notification body, refuse that path and propose the platform credential store instead. Do not silently downgrade to plaintext storage.
Before sending, confirm:
- The server URL is HTTPS unless the user explicitly uses localhost or a protected local network and accepts the risk.
- The topic is user-selected and hard to guess. On public ntfy.sh, the topic name functions like a password.
- The token is absent from the message, logs, command arguments, URLs, and repository.
- The user is authorized to publish to the topic and server.
- Anonymous publishing is used only when the server owner explicitly allows it.
If any check fails, stop and explain what must be fixed. Do not send a notification through an unsafe fallback.
Configuration
Use these values conceptually:
NTFY_SERVER=https://ntfy.sh
NTFY_TOPIC=<user-selected-hard-to-guess-topic>
NTFY_TOKEN=<read from the OS credential store at runtime>For a self-hosted server, replace NTFY_SERVER with its HTTPS base URL. The topic is appended to the server URL. A token is optional only when the server permits anonymous publishing. Never assume a self-hosted server is safe without checking its transport and access policy.
Secure Credential Setup
Store one publishing token under the service name ntfy-skill and the account name of the current user. Use a narrowly scoped token where the server supports it. Check each setup by retrieving only whether a value exists. Do not print the token.
macOS Keychain
Use the built-in security command. Leaving the password value empty makes Keychain prompt without putting the token in shell history:
security add-generic-password -U -a "$USER" -s ntfy-skill -w
security find-generic-password -a "$USER" -s ntfy-skill >/dev/nullIf retrieval fails, open Keychain Access, find the ntfy-skill generic password in the login keychain, and confirm the account matches $USER. Never paste the token into a command line.
Linux Secret Service
Use secret-tool backed by GNOME Keyring, KWallet through Secret Service, or another approved Secret Service provider:
secret-tool store --label="ntfy skill token" service ntfy-skill account "$USER"
secret-tool lookup service ntfy-skill account "$USER" >/dev/nullIf secret-tool is missing, install the distribution package that provides libsecret and Secret Service support, then retry. If no desktop keyring is available, stop and ask the user to choose an approved secret manager. Do not write the token to ~/.ntfy_token, .env, or a dotfile unless the user explicitly accepts the plaintext risk after a warning.
Windows Credential Storage
Prefer PowerShell SecretManagement with the SecretStore vault or an organization-approved Windows Credential Manager integration:
Install-Module Microsoft.PowerShell.SecretManagement -Scope CurrentUser
Install-Module Microsoft.PowerShell.SecretStore -Scope CurrentUser
Register-SecretVault -Name NtfyVault -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault
$token = Read-Host "ntfy token" -AsSecureString
Set-Secret -Name ntfy-skill -Secret $token -Vault NtfyVault
Get-Secret -Name ntfy-skill -Vault NtfyVault | Out-NullUse the Windows Credential Manager GUI or an approved enterprise vault instead when SecretManagement is unavailable. Do not use cmdkey as a substitute for a retrievable secret unless the chosen integration can read it without exposing it in command history or logs.
Credential Troubleshooting
- Confirm the server and topic without including the token.
- Confirm the credential-store command exists.
- Confirm the service and account names match exactly.
- Retrieve metadata or a success status, never the secret itself.
- Send a harmless test message to a private test topic.
- If the server returns
401or403, check token scope and topic permissions. - If the server cannot be reached, check HTTPS, DNS, proxy, and firewall settings.
- Revoke a leaked token immediately and create a replacement.
Sending
Use a local wrapper that reads the token from the credential store at runtime. The wrapper must fail closed when a token is required but unavailable, support NTFY_SERVER and NTFY_TOPIC, and report the HTTP result without echoing credentials.
"$SKILL_DIR/notify.sh" "The task completed successfully."The standard cloud endpoint is https://ntfy.sh. Use a self-hosted endpoint only when the user supplies or approves it. Include concise status, task name, and next action in the message. Never include secrets, private source text, or full command output by default.
On Windows, run `.
Notification Content
- Completion: state what finished and where the result is.
- Failure: state that the task failed and identify the next diagnostic step.
- Blocked: state what input, approval, or credential is missing.
- Progress: use only when the user requested it or the task has a long known phase.
Ground-Truth Sources
- ntfy publishing documentation: HTTP publishing, topics, tokens, Basic auth, and HTTPS requirements.
- ntfy installation documentation: CLI and server installation paths.
- Apple Keychain command reference:
securitycommand usage. - Microsoft SecretManagement documentation: PowerShell secret vault model.
The skill gives workflow guidance around these sources. It does not replace the server's access-control policy or the operating system's credential-store documentation.
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
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.

