Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add RUIIIOVO/claude-code-bark-notify --skill bark-notify-setupgit clone --depth 1 https://github.com/RUIIIOVO/claude-code-bark-notifyWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ruiiiovo/claude-code-bark-notify/bark-notify-setup)<a href="https://agentmods.dev/skills/ruiiiovo/claude-code-bark-notify/bark-notify-setup"><img src="https://agentmods.dev/badge/skills/ruiiiovo/claude-code-bark-notify/bark-notify-setup.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00058 | $0.01549 |
| Opus 5 | $0.00029 | $0.00775 |
| Sonnet 5 | $0.00012 | $0.00310 |
| Haiku 4.5 | $0.00006 | $0.00155 |
Grade B, and why
bark-notify-setup scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
description: Set up Bark completion notifications for Claude Code on macOS or Windows by safely writing the local Bark sender script and merging hooks into ~/.claude/settings.json. Use when the user explicitly asks to co How it starts
The opening of the file, as written. The whole thing — 90 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Bark Notify Setup
Configure the current Claude Code environment (macOS, Linux, or Windows) to send a Bark notification when Claude finishes a turn.
Goals
After setup, the local machine should contain:
- macOS/Linux:
~/.claude/claude-stop-bark.sh - Windows:
%USERPROFILE%\.claude\claude-stop-bark.ps1 - hooks in
~/.claude/settings.jsonforStop,StopFailure,SessionEnd, andNotificationthat all run that script asynchronously
Required behavior
-
Detect the current OS first.
- Run
uname -s 2>/dev/null(bash) or check if the working directory path starts with a drive letter. - If
$env:OSisWindows_NTor the path looks likeC:\...orD:\..., treat as Windows. - Otherwise treat as macOS/Linux.
- Read
../bark-notify/references/config-patterns.mdto get the platform-specific hook command and script template.
- Run
-
Confirm Bark prerequisites.
- Read
../bark-notify/references/bark-prereqs.md. - Make sure the user has a Bark push URL.
- Ask whether they want plain mode or encrypted mode.
- If encrypted mode, require a 16-character key and remind them to match Bark app settings on iPhone.
- Read
-
Inspect current Claude config before writing.
- Read
~/.claude/settings.jsonif it exists. - Never overwrite unrelated settings.
- Merge in the
Stop,StopFailure,SessionEnd, andNotificationhooks safely.
- Read
-
Write the sender script using the platform template from
../bark-notify/references/config-patterns.md.macOS / Linux
- Write
~/.claude/claude-stop-bark.sh. - Parse
hook_event_name,reason, andcwdfrom stdin JSON usingpython3 -c "..."(do NOT use a python heredoc — it collides with the piped stdin payload). Do NOT read$HOOK_EVENT— Claude Code does not set that env var. - Hook command in settings.json:
/bin/bash ~/.claude/claude-stop-bark.sh
Windows
- Resolve the absolute home path first (run
$env:USERPROFILEin PowerShell) and embed it as a literal path. - Use the PowerShell plain/encrypted template exactly as shown in
config-patterns.md. - 🛑 DO NOT use the
Writetool to createclaude-stop-bark.ps1. TheWritetool writes UTF-8 without BOM. Windows PowerShell 5.1 then decodes the file using the system ANSI code page (GBK on Chinese Windows), which mangles the Chinese characters in string literals (已完成etc.) and producesUnexpected tokenparse errors at hook execution time. You MUST write the file via PowerShell with an explicit UTF-8-with-BOM encoder:
Use a single-quoted here-string ($content = @' <PASTE THE FULL .PS1 SCRIPT HERE> '@ $utf8Bom = New-Object System.Text.UTF8Encoding($true) [System.IO.File]::WriteAllText("$env:USERPROFILE\.claude\claude-stop-bark.ps1", $content, $utf8Bom)@'...'@) so PowerShell does not interpolate$variablesinside the script body. The closing'@must be at column 0. - After writing, verify the BOM is present (first 3 bytes =
EF BB BF). If missing, abort and re-write — the hook will silently fail at runtime otherwise. - Hook command in settings.json:
powershell.exe -ExecutionPolicy Bypass -NoProfile -NonInteractive -File "C:\Users\<username>\.claude\claude-stop-bark.ps1"— use the resolved absolute path, not%USERPROFILE%. - Do NOT run
chmodon Windows — PS1 files do not need executable bits.
- Write
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 90 lines · 58 tokens per session scan B ebe8551e5f96
bark-notify-setup is a skill published in the GitHub repository RUIIIOVO/claude-code-bark-notify (5 stars, last pushed 4mo ago), licensed MIT. It adds 58 tokens to every session and 1,549 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
session-save
Save the current session state (decisions, modified files, current status, and next steps) to a handoff file for later resume.
handoff-create
Generate a structured handoff document from the current session. Captures scope, relevant files with line numbers, key discoveries, work completed, current status, next steps, and code snippets. Use before ending a session or handing work to another agent.
handoff-update
Update an existing handoff document with current session progress. Applies section-specific merge rules: append-only for Work Done (never deletes history), replace for Status and Next Steps, merge for Files and Discoveries. Falls back to creating a new handoff if no source file is found.
ccboard
Launch and navigate the ccboard TUI/Web dashboard for Claude Code. Use when monitoring token usage, tracking costs, browsing sessions, or checking MCP server status across projects.
context-compress
Use context-compress tools (execute, executefile) instead of Bash/cat when processing large outputs. Trigger phrases: "analyze logs", "summarize output", "process data", "parse JSON", "filter results", "extract errors", "check build output", "analyze dependencies", "process API response", "large file analysis"…
context-compress-audit
Audit a repository, plugin setup, or agent session for raw Bash, Read, WebFetch, and MCP outputs that should be routed through context-compress instead. Use when asked to find context waste, raw tool output waste, missing plugin routing, or places where large command/file/web output still enters the agent context…