Bark Notifications
v1.0.0Send push notifications to iOS devices via Bark app (https://github.com/Finb/Bark). Use when user asks to push a notification to their iPhone, send a Bark no...
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description (Bark push notifications) align with the instructions: the skill reads a Bark key and sends requests to the Bark API. No unrelated credentials, binaries, or installs are requested.
Instruction Scope
Instructions are narrowly scoped to reading/writing ~/.bark/key and calling the Bark API via curl. This is appropriate for the stated purpose, but the skill explicitly instructs the agent to write a plaintext key file in the user's home directory and to execute shell commands (curl), which are privacy/safety-relevant actions the user should consent to.
Install Mechanism
No install spec or external downloads; skill is instruction-only, so nothing is written to disk by an installer. This is the lowest-risk install profile.
Credentials
No environment variables or external credentials are requested. The only secret is the Bark key stored in ~/.bark/key (plain text). Requesting a single service key is proportional, but storing it unencrypted in the home directory is a potential privacy concern.
Persistence & Privilege
always:false and user-invocable:true (normal). The skill writes/reads a file in the user's home (~/.bark/key), giving it persistent local state; it does not modify other skills or system-wide settings. Users should be aware the agent will retain the key on disk unless removed.
Assessment
This skill is coherent with its purpose but performs two sensitive actions: it will execute curl (network access) and write your Bark key in plaintext to ~/.bark/key. Only install/use it if you trust the agent. Suggested precautions: (1) provide a throwaway or limited Bark key if possible, (2) prefer entering the key on demand rather than permanently storing it, (3) if you store the key, set tight permissions (chmod 600 ~/.bark/key) and remove the file when you no longer want the skill to send notifications, (4) verify that the agent has no other unexpected shell/network privileges, and (5) consider using a self-hosted Bark endpoint if you want to avoid the public api.day.app. If you are uncomfortable with the agent writing secrets to disk, send Bark notifications manually via curl instead.Like a lobster shell, security has layers — review code before you run it.
latest
Bark Skill
Send push notifications to iOS devices via the Bark app. The Bark key is stored in ~/.bark/key.
Key Setup
Key file: ~/.bark/key (plain text, just the key string).
If the file doesn't exist or is empty, ask the user for their Bark key and write it to ~/.bark/key.
API Overview
- Base URL:
https://api.day.app/ - Method: GET or POST
- Required: Bark key (from
~/.bark/key), body text - Optional: title, subtitle, URL, icon, sound, group, level, etc.
Quick Send (GET)
Send a simple notification:
GET https://api.day.app/{key}/{body}
Send with title:
GET https://api.day.app/{key}/{title}/{body}
Send with title and subtitle:
GET https://api.day.app/{key}/{title}/{subtitle}/{body}
POST Request (Recommended for multi-line / special chars)
Use POST + --data-urlencode for plain text, newlines, and special characters:
KEY=$(cat ~/.bark/key)
curl -s -X POST "https://api.day.app/$KEY" \
-d "title=Notification Title" \
--data-urlencode "body=First line
Second line
Third line"
Notes:
- Use
-d "title=..."and--data-urlencode "body=..."to separate title and body - Newlines in body are literal line breaks (press Enter, not
\nas a string) --data-urlencodeauto URL-encodes, no manual handling needed for Chinese or special chars- Do not use
-d "body=multiline content"— newlines won't be preserved in form-data
Parameters
| Param | Description |
|---|---|
title | Notification title, slightly larger than body |
subtitle | Subtitle |
body | Notification body, use \n for line breaks |
url | URL to open when notification is tapped |
group | Message group for grouping notifications |
icon | Push icon (iOS 15+) |
sound | Notification sound, e.g. alarm, birdsong |
level | active (default, lights up screen immediately) / timeSensitive (shows during Focus mode) / passive (adds to list without lighting screen) |
criticalAlert | true to play sound even in Do Not Disturb (use with caution) |
How to Use
- Read key from
~/.bark/key - If key file doesn't exist or is empty, ask user for their Bark key and write it to
~/.bark/key - Build the request with the key and user-provided parameters
- Execute via exec/curl
- Confirm notification received
Example
Key stored in ~/.bark/key: yourkey
Title: Meeting Reminder
Body: Team sync at 3pm tomorrow
curl -s -X POST "https://api.day.app/yourkey" \
-d "title=Meeting Reminder" \
--data-urlencode "body=Team sync at 3pm tomorrow"
Notes
- If user doesn't have a Bark key, tell them to install the Bark app and copy the test URL from the app
- Default public server is
api.day.app; Bark also supports self-hosted servers - For critical alerts (
level=critical), the device will play sound even in Do Not Disturb - Sound will loop for 30 seconds if
call=1parameter is used
Comments
Loading comments...
