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 mrzhangguoguo/oh-my-workbuddy --skill configure-notificationsgit clone --depth 1 https://github.com/mrzhangguoguo/oh-my-workbuddyWrote 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/mrzhangguoguo/oh-my-workbuddy/configure-notifications)<a href="https://agentmods.dev/skills/mrzhangguoguo/oh-my-workbuddy/configure-notifications"><img src="https://agentmods.dev/badge/skills/mrzhangguoguo/oh-my-workbuddy/configure-notifications/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/mrzhangguoguo/oh-my-workbuddy/configure-notifications"><img src="https://agentmods.dev/badge/skills/mrzhangguoguo/oh-my-workbuddy/configure-notifications.svg" alt="Reviewed on agentmods" width="80" 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.00028 | $0.01081 |
| Opus 5 | $0.00014 | $0.00541 |
| Sonnet 5 | $0.00006 | $0.00216 |
| Haiku 4.5 | $0.00003 | $0.00108 |
Grade A, and why
configure-notifications scanned grade A 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 12d 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -s -X POST "$WEBHOOK_URL" -H 'Content-Type: application/json' \ How it starts
The opening of the file, as written. The whole thing — 113 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Ported from oh-my-codex
configure-notifications. OMX runtime conventions ($macroinvocation,omxCLI,.omx/state directory) are replaced with WorkBuddy idioms (Skill tool, Agent tool, task list,.workbuddy/memory).
Configure Notifications
Unified entry point for notification setup in WorkBuddy.
- Native platforms (first-class): Discord, Telegram, Slack (via webhooks / bot tokens).
- Generic extensibility:
custom_webhook_command(POST to a URL) andcustom_cli_command(run a local command).
WorkBuddy has no built-in session-end hook system, so this skill writes a config file (
.workbuddy/notifications.jsonat the repo root, or~/.workbuddy/notifications.jsonfor global). You can wire that file into your own external automation, scheduler, or shell wrapper to actually send the notifications. The skill only manages the configuration.
Step 1: Inspect Current State
CONFIG_FILE=".workbuddy/notifications.json"
if [ -f "$CONFIG_FILE" ]; then
cat "$CONFIG_FILE"
else
echo "NO_CONFIG_FILE"
fi
Step 2: Main Menu
Use AskUserQuestion:
Question: "What would you like to configure?"
Options:
- Discord (native) — webhook URL or bot token + channel.
- Telegram (native) — bot token + chat id.
- Slack (native) — incoming webhook URL.
- Generic webhook command —
custom_webhook_command. - Generic CLI command —
custom_cli_command. - Cross-cutting settings — verbosity, idle cooldown, reply listener.
- Disable all notifications — set
notifications.enabled = false.
Step 3: Configure Native Platforms (Discord / Telegram / Slack)
Collect and validate platform-specific values, then write them under native keys:
- Discord webhook:
notifications.discord - Telegram:
notifications.telegram - Slack:
notifications.slack
Example config shape:
{
"notifications": {
"enabled": true,
"verbosity": "session",
"idleCooldownSeconds": 60,
"discord": { "enabled": true, "webhookUrl": "https://discord.com/api/webhooks/..." },
"telegram": { "enabled": false, "botToken": "", "chatId": "" },
"slack": { "enabled": false, "webhookUrl": "" },
"custom_webhook_command": { "enabled": false, "url": "", "method": "POST", "events": ["session-end"] },
"custom_cli_command": { "enabled": false, "command": "", "events": ["session-end"] }
}
}
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.
- 12d ago First seen · 113 lines · 28 tokens per session scan A 95f7fd707b03
configure-notifications is a skill published in the GitHub repository mrzhangguoguo/oh-my-workbuddy (2 stars, last pushed 2mo ago), licensed MIT. It adds 28 tokens to every session and 1,081 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
obsidian-bases
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.
stay-within-limits
Use when long-running or parallel agent work must respect 5-hour and weekly usage limits by checking usage between waves, pausing near the cap, and resuming only when the window is clear.
crisis-holding
Draft crisis holding statements, journalist Q&A posture, and what-not-to-say guidance from confirmed incident facts, with a hard legal-counsel gate. Builds each statement through proven crisis-comms frameworks (holding-statement anatomy, SCCT, CAP order, the legitimate non-answer, bridge/flag/block).
find-journalists
Build, refine, dedupe, and enrich small fit-checked journalist lists for newsjack campaigns. Uses the newsjack CLI (preferred) or the medialyst MCP for news search and journalist enrichment, and falls back to a best-effort local mode with no verified contacts; the agent owns how returned data is organized.
agent-estate
Perpetual autonomous work loop for Claude Code — no end condition, no memory regression, no context overfill. Maintains a persistent ledger across all sessions.
story-origin-check
Recover the first public timestamp and canonical major coverage for a newsjacking signal, then decide whether newer coverage is the same story, a different story, or a materially new development.