bark-notify-setup

bark-notify-setup is a skill for Claude Code from RUIIIOVO/claude-code-bark-notify. It costs 58 tokens per session (1,549 once invoked), scanned B, original, MIT.

A setup skill that configures Bark completion notifications for Claude Code on macOS, Linux, or Windows. Bark is an iPhone app that receives push notifications through a personal URL.

In plain words
What is it for?
Detect the operating system, check the Bark push URL and encryption choice, create the sender script, and merge notifications for completed, failed, ended, or other Claude Code events.
Why use it?
It removes the manual work of creating the local notification script and adding the required Claude Code hooks to the settings file.

Skill for Claude Code

Written for Claude Code: argument-hint in frontmatter. Also seen: reads .claude/ paths; mentions Claude Code.

Part of the bark-notify plugin — 4 skills shipped together

Good fit Detect the operating system, check the Bark push URL and encryption choice, create the sender script, and merge notifications for completed, failed, ended, or other Claude Code events.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/ruiiiovo/claude-code-bark-notify/bark-notify-setup
Install

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.

Any agent
npx skills add RUIIIOVO/claude-code-bark-notify --skill bark-notify-setup
Clone the repo
git clone --depth 1 https://github.com/RUIIIOVO/claude-code-bark-notify

Made for: Claude Code.

Or install bark-notify, the plugin that ships this one along with the rest of its 4 skills.

Wrote 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.

agentmods badge for bark-notify-setup

README.md
[![agentmods](https://agentmods.dev/badge/skills/ruiiiovo/claude-code-bark-notify/bark-notify-setup.svg)](https://agentmods.dev/skills/ruiiiovo/claude-code-bark-notify/bark-notify-setup)
Your own site
<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>
Per session 58 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,549 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 8d ago against content hash ebe8551e5f96, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

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
skills/bark-notify-setup/SKILL.md · 90 lines

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.json for Stop, StopFailure, SessionEnd, and Notification that all run that script asynchronously

Required behavior

  1. 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:OS is Windows_NT or the path looks like C:\... or D:\..., treat as Windows.
    • Otherwise treat as macOS/Linux.
    • Read ../bark-notify/references/config-patterns.md to get the platform-specific hook command and script template.
  2. 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.
  3. Inspect current Claude config before writing.

    • Read ~/.claude/settings.json if it exists.
    • Never overwrite unrelated settings.
    • Merge in the Stop, StopFailure, SessionEnd, and Notification hooks safely.
  4. 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, and cwd from stdin JSON using python3 -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:USERPROFILE in 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 Write tool to create claude-stop-bark.ps1. The Write tool 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 produces Unexpected token parse errors at hook execution time. You MUST write the file via PowerShell with an explicit UTF-8-with-BOM encoder:
      $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)
      
      Use a single-quoted here-string (@'...'@) so PowerShell does not interpolate $variables inside 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 chmod on Windows — PS1 files do not need executable bits.

Read the full file on GitHub · 90 lines

Changes

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.

  1. 8d ago First seen · 90 lines · 58 tokens per session scan B ebe8551e5f96

Subscribe to this mod's changes

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.

Related

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.

FlorianBruniaux/claude-code-plugins · 31 tokens

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.

FlorianBruniaux/claude-code-plugins · 53 tokens

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.

FlorianBruniaux/claude-code-plugins · 60 tokens

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.

FlorianBruniaux/claude-code-plugins · 37 tokens

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"…

Open330/context-compress · 284 tokens

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…

Open330/context-compress · 70 tokens