Agent skill

Configure Notifications

by yangyuan-zhen in yangyuan-zhen/PolyWeather

[OMX] Configure OMX notifications - unified entry point for all platforms

AGPL-3.0Auto-check passedBackend & APIs

Install Configure Notifications

skills CLI
$ npx skills add yangyuan-zhen/PolyWeather --skill configure-notifications -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install yangyuan-zhen/PolyWeather configure-notifications --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/yangyuan-zhen/PolyWeather.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/configure-notifications .claude/skills/configure-notifications && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
configure-notifications
GitHub stars
316
Token cost
~2.7k tokens
SKILL.md length
536 words
Files
1
Skills in repo
26
Repo updated
First seen
Licence
AGPL-3.0

At a glance

[OMX] Configure OMX notifications - unified entry point for all platforms

  • Works in 7 steps: Inspect Current State → Main Menu → Configure Native Platforms (Discord /… → …
  • Tasks that involve Webhooks
  • SKILL.md covers Step 1: Inspect Current State, Step 2: Main Menu, Step 3: Configure Native… and Step 4: Configure Generic…, plus 4 more sections
  • Calls jq, rg and npm

What it does

Configure Notifications is an agent skill from yangyuan-zhen/PolyWeather. [OMX] Configure OMX notifications - unified entry point for all platforms

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Webhooks. It works with Discord, Slack and Telegram. The repository describes itself as: polymarket Intelligent Weather Quant Analysis Bot. The licence is AGPL-3.0.

When your agent uses it

  • Tasks that involve Webhooks

Example prompts

  • “/configure-notifications”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Inspect Current State
  2. Main Menu
  3. Configure Native Platforms (Discord / Telegram / Slack)
  4. Configure Generic Extensibility
  5. Cross-Cutting Settings
  6. Disable All Notifications
  7. Verification Guidance

What it can do on your machine

Read from SKILL.md and the folder at commit 43e658b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq
    • rg
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Configure Notifications loads about 2.7k tokens when it runs. Until then it costs about 24 tokens; SKILL.md has 536 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~24
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from yangyuan-zhen/PolyWeather at commit 43e658b, republished under its AGPL-3.0 licence (© yangyuan-zhen). 536 words, ~2,738 tokens.

Download SKILL.mdSave it as .claude/skills/configure-notifications/SKILL.md (or your agent's skills folder).
name
configure-notifications
description
[OMX] Configure OMX notifications - unified entry point for all platforms
triggers
configure notifications, setup notifications, notification settings, configure discord, configure telegram, configure slack, configure openclaw, setup…

Configure OMX Notifications

Unified and only entry point for notification setup.

  • Native integrations (first-class): Discord, Telegram, Slack
  • Generic extensibility integrations: custom_webhook_command, custom_cli_command

Standalone configure skills (configure-discord, configure-telegram, configure-slack, configure-openclaw) are removed.

Step 1: Inspect Current State

bash
CONFIG_FILE="$HOME/.codex/.omx-config.json"

if [ -f "$CONFIG_FILE" ]; then
  jq -r '
    {
      notifications_enabled: (.notifications.enabled // false),
      discord: (.notifications.discord.enabled // false),
      discord_bot: (.notifications["discord-bot"].enabled // false),
      telegram: (.notifications.telegram.enabled // false),
      slack: (.notifications.slack.enabled // false),
      openclaw: (.notifications.openclaw.enabled // false),
      custom_webhook_command: (.notifications.custom_webhook_command.enabled // false),
      custom_cli_command: (.notifications.custom_cli_command.enabled // false),
      verbosity: (.notifications.verbosity // "session"),
      idleCooldownSeconds: (.notifications.idleCooldownSeconds // 60),
      reply_enabled: (.notifications.reply.enabled // false)
    }
  ' "$CONFIG_FILE"
else
  echo "NO_CONFIG_FILE"
fi

Step 2: Main Menu

Use AskUserQuestion:

Question: "What would you like to configure?"

Options:

  1. Discord (native) - webhook or bot
  2. Telegram (native) - bot token + chat id
  3. Slack (native) - incoming webhook
  4. Generic webhook command - custom_webhook_command
  5. Generic CLI command - custom_cli_command
  6. Cross-cutting settings - verbosity, idle cooldown, profiles, reply listener
  7. Disable all notifications - set notifications.enabled = false

Step 3: Configure Native Platforms (Discord / Telegram / Slack)

Collect and validate platform-specific values, then write directly under native keys:

  • Discord webhook: notifications.discord
  • Discord bot: notifications["discord-bot"]
  • Telegram: notifications.telegram
  • Slack: notifications.slack

Do not write these as generic command/webhook aliases.

Step 4: Configure Generic Extensibility

4a) custom_webhook_command

Use AskUserQuestion to collect:

  • URL
  • Optional headers
  • Optional method (POST default, or PUT)
  • Optional event list (session-end, ask-user-question, session-start, session-idle, stop)
  • Optional instruction template

Write:

bash
jq \
  --arg url "$URL" \
  --arg method "${METHOD:-POST}" \
  --arg instruction "${INSTRUCTION:-OMX event {{event}} for {{projectPath}}}" \
  '.notifications = (.notifications // {enabled: true}) |
   .notifications.enabled = true |
   .notifications.custom_webhook_command = {
     enabled: true,
     url: $url,
     method: $method,
     instruction: $instruction,
     events: ["session-end", "ask-user-question"]
   }' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
4b) custom_cli_command

Use AskUserQuestion to collect:

  • Command template (supports {{event}}, {{instruction}}, {{sessionId}}, {{projectPath}})
  • Optional event list
  • Optional instruction template

Write:

bash
jq \
  --arg command "$COMMAND_TEMPLATE" \
  --arg instruction "${INSTRUCTION:-OMX event {{event}} for {{projectPath}}}" \
  '.notifications = (.notifications // {enabled: true}) |
   .notifications.enabled = true |
   .notifications.custom_cli_command = {
     enabled: true,
     command: $command,
     instruction: $instruction,
     events: ["session-end", "ask-user-question"]
   }' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"

Activation gate: OpenClaw-backed dispatch is active only when OMX_OPENCLAW=1. For command gateways, also require OMX_OPENCLAW_COMMAND=1. Optional timeout env override: OMX_OPENCLAW_COMMAND_TIMEOUT_MS (ms).

If the user explicitly asks to route hook notifications through clawdbot agent turns (not direct message/webhook forwarding), use a command gateway that invokes clawdbot agent and delivers back to Discord.

Notes:

  • Hook name mapping is intentional: notifications session-stop -> OpenClaw hook stop.
  • OMX shell-escapes template substitutions for command gateways (including {{instruction}}).
  • Keep instruction templates concise and avoid untrusted shell metacharacters.
  • During troubleshooting, avoid swallowing command output; route it to a log file.
  • Timeout precedence: gateways.<name>.timeout > OMX_OPENCLAW_COMMAND_TIMEOUT_MS > 5000.
  • For clawdbot agent workflows, set gateways.<name>.timeout to 120000 (recommended).
  • For dev operations, enforce Korean output in all hook instructions.
  • Include both session={{sessionId}} and tmux={{tmuxSession}} in hook text for traceability.
  • If follow-up is needed, explicitly instruct clawdbot to consult SOUL.md and continue in #omc-dev.
  • Error handling: Append || true to prevent OMX hook failures from blocking the session.
  • JSONL logging: Use .jsonl extension and append (>>) for structured log aggregation.
  • Reply target format: Use --reply-to 'channel:CHANNEL_ID' for reliability (preferred over channel aliases).

Example (targeting #omc-dev with production-tested settings):

bash
jq \
  --arg command "(clawdbot agent --session-id omx-hooks --message {{instruction}} --thinking minimal --deliver --reply-channel discord --reply-to 'channel:1468539002985644084' --timeout 120 --json >>/tmp/omx-openclaw-agent.jsonl 2>&1 || true)" \
  '.notifications = (.notifications // {enabled: true}) |
   .notifications.enabled = true |
   .notifications.verbosity = "verbose" |
   .notifications.events = (.notifications.events // {}) |
   .notifications.events["session-start"] = {enabled: true} |
   .notifications.events["session-idle"] = {enabled: true} |
   .notifications.events["ask-user-question"] = {enabled: true} |
   .notifications.events["session-stop"] = {enabled: true} |
   .notifications.events["session-end"] = {enabled: true} |
   .notifications.openclaw = (.notifications.openclaw // {}) |
   .notifications.openclaw.enabled = true |
   .notifications.openclaw.gateways = (.notifications.openclaw.gateways // {}) |
   .notifications.openclaw.gateways["local"] = {
     type: "command",
     command: $command,
     timeout: 120000
   } |
   .notifications.openclaw.hooks = (.notifications.openclaw.hooks // {}) |
   .notifications.openclaw.hooks["session-start"] = {
     enabled: true,
     gateway: "local",
     instruction: "OMX hook=session-start project={{projectName}} session={{sessionId}} tmux={{tmuxSession}}. 한국어로 상태를 공유하고 SOUL.md를 참고해 필요한 후속 조치를 #omc-dev에 안내하세요."
   } |
   .notifications.openclaw.hooks["session-idle"] = {
     enabled: true,
     gateway: "local",
     instruction: "OMX hook=session-idle project={{projectName}} session={{sessionId}} tmux={{tmuxSession}}. 한국어로 idle 상황을 간단히 공유하고 진행중인 작업 팔로업을 안내하세요."
   } |
   .notifications.openclaw.hooks["ask-user-question"] = {
     enabled: true,
     gateway: "local",
     instruction: "OMX hook=ask-user-question session={{sessionId}} tmux={{tmuxSession}} question={{question}}. 한국어로 사용자 응답 필요를 #omc-dev에 알리고 즉시 액션 아이템을 제시하세요."
   } |
   .notifications.openclaw.hooks["stop"] = {
     enabled: true,
     gateway: "local",
     instruction: "OMX hook=session-stop project={{projectName}} session={{sessionId}} tmux={{tmuxSession}}. 한국어로 중단 상태와 정리 액션을 SOUL.md 기준으로 전달하세요."
   } |
   .notifications.openclaw.hooks["session-end"] = {
     enabled: true,
     gateway: "local",
     instruction: "OMX hook=session-end project={{projectName}} session={{sessionId}} tmux={{tmuxSession}} reason={{reason}}. 한국어로 완료 요약을 1줄로 남기고 필요한 후속 조치를 안내하세요."
   }' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"

Verification for this mode:

bash
clawdbot agent --session-id omx-hooks --message "OMX hook test via clawdbot agent path" \
  --thinking minimal --deliver --reply-channel discord --reply-to 'channel:1468539002985644084' --timeout 120 --json

Dev runbook (Korean + tmux follow-up):

bash
# 1) identify active OMX tmux sessions
tmux list-sessions -F '#{session_name}' | rg '^omx-' || true

# 2) confirm hook templates include session/tmux context
jq '.notifications.openclaw.hooks' "$CONFIG_FILE"

# 3) inspect agent JSONL logs when delivery looks broken
tail -n 120 /tmp/omx-openclaw-agent.jsonl | jq -s '.[] | {timestamp: (.timestamp // .time), status: (.status // .error // "ok")}'

# 4) check for recent errors in logs
rg '"error"|"failed"|"timeout"' /tmp/omx-openclaw-agent.jsonl | tail -20
Show full SKILL.md (154 more words)Show less
4c) Compatibility + precedence contract

OMX accepts both:

  • explicit notifications.openclaw schema (legacy/runtime shape)
  • generic aliases (custom_webhook_command, custom_cli_command)

Deterministic precedence:

  1. notifications.openclaw wins when present and valid.
  2. Generic aliases are ignored in that case (with warning).

Step 5: Cross-Cutting Settings

Verbosity
  • minimal / session (recommended) / agent / verbose
Idle cooldown
  • notifications.idleCooldownSeconds
Profiles
  • notifications.profiles
  • notifications.defaultProfile
Reply listener
  • notifications.reply.enabled
  • env gates: OMX_REPLY_ENABLED=true, and for Discord OMX_REPLY_DISCORD_USER_IDS=...
  • For Discord bot replies, an authorized operator can reply with exact-match status to a tracked OMX notification to receive a bounded read-only session summary. This is a reply-thread-scoped status probe, not a general remote control surface.

Step 6: Disable All Notifications

bash
jq '.notifications.enabled = false' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"

Step 7: Verification Guidance

After writing config, run a smoke check:

bash
npm run build

For OpenClaw-like HTTP integrations, verify both:

  • /hooks/wake smoke test
  • /hooks/agent delivery verification

Final Summary Template

Show:

  • Native platforms enabled
  • Generic aliases enabled (custom_webhook_command, custom_cli_command)
  • Whether explicit notifications.openclaw exists (and therefore overrides aliases)
  • Verbosity + idle cooldown + reply listener state
  • Config path (~/.codex/.omx-config.json)

© yangyuan-zhen, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .codex/skills/configure-notifications of yangyuan-zhen/PolyWeather.

Open the folder on GitHubat commit 43e658b

Compare with similar skills

Configure Notifications next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Configure Notifications compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Configure Notifications this skillyangyuan-zhen/PolyWeather316—~2.7kAutomated safety check: PassAGPL-3.0
Channel Debug Corevercel-labs/vercel-openclaw-archived117—~2kAutomated safety check: NotesMIT
Frontmcp Channelsagentfront/frontmcp146—~3.7kAutomated safety check: PassApache-2.0
Chat SDKdatabuddy-analytics/Databuddy1.2k—~2.6kAutomated safety check: PassAGPL-3.0
Hitl ProtocolLeoYeAI/openclaw-master-skills2.2k—~5.3kAutomated safety check: PassApache-2.0
Add Channel Connect Buttonnovuhq/novu40k—~1.6kAutomated safety check: PassCustom licence

Similar skills

  • Channel Debug Core

    vercel-labs/vercel-openclaw-archived

    Official

    Channel webhook triage for vercel-openclaw Slack/Telegram/Discord/WhatsApp issues: prove deployment state, collect admin readiness endpoints, build evidence-first handoff before fixes.

    117 GitHub stars~2k tokensUpdated 4 mo ago
    Backend & APIsAuto-check: notes
  • Frontmcp Channels

    agentfront/frontmcp

    A skill your agent uses when pushing real-time notifications or events into Claude Code (or another MCP client) sessions, or building two-way chat bridges.

    146 GitHub stars~3.7k tokensUpdated today
    Backend & APIsAuto-check passed
  • Chat SDK

    databuddy-analytics/Databuddy

    Build multi-platform chat bots with Chat SDK (chat npm package).

    1.2k GitHub stars~2.6k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Hitl Protocol

    LeoYeAI/openclaw-master-skills

    HITL Protocol — the open standard for human decisions in autonomous agent workflows.

    2.2k GitHub stars~5.3k tokensUpdated 2 mo ago
    Agent WorkflowsAuto-check passed
  • Build a new channel Connect button (e.g. An agent skill from novuhq/novu.

    40k GitHub stars~1.6k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Chat SDK Bots

    lobehub/lobehub

    Builds chat bots once for Slack, Teams, Google Chat, Discord, GitHub and Linear with the Chat SDK, covering event handlers, cards, modals, streaming and state adapters.

    83k GitHub stars~1.5k tokensUpdated today
    Backend & APIsAuto-check passed

More from yangyuan-zhen/PolyWeather

All 26 skills in this repo
  • AI Slop Cleaner

    yangyuan-zhen/PolyWeather

    [OMX] Run an anti-slop cleanup/refactor/deslop workflow. An agent skill from yangyuan-zhen/PolyWeather.

    316 GitHub stars~2.2k tokensUpdated 20 days ago
    Auto-check passed
  • Analyze

    yangyuan-zhen/PolyWeather

    [OMX] Run read-only deep repository analysis and return a ranked synthesis with explicit confidence, concrete file references, and clear evidence-vs-inference boundaries.

    316 GitHub stars~1.6k tokensUpdated 20 days ago
    Auto-check passed
  • Autoresearch

    yangyuan-zhen/PolyWeather

    [OMX] Stateful validator-gated research loop with native-hook persistence

    316 GitHub stars~786 tokensUpdated 20 days ago
    Auto-check passed
  • Best Practice Research

    yangyuan-zhen/PolyWeather

    [OMX] Bounded best-practice research wrapper using official/upstream evidence first

    316 GitHub stars~1.4k tokensUpdated 20 days ago
    Auto-check passed
  • Cancel

    yangyuan-zhen/PolyWeather

    [OMX] Cancel any active OMX mode (autopilot, ralph, ultrawork, ecomode, ultraqa, swarm, ultrapilot, pipeline, team)

    316 GitHub stars~3.7k tokensUpdated 20 days ago
    Auto-check passed
  • Design

    yangyuan-zhen/PolyWeather

    [OMX] Canonical repo-local DESIGN.md workflow for product, UI/UX, and frontend decision source of truth

    316 GitHub stars~1.8k tokensUpdated 20 days ago
    Auto-check passed

Categories

Questions about Configure Notifications

What does Configure Notifications do?

[OMX] Configure OMX notifications - unified entry point for all platforms. Configure Notifications is an agent skill from yangyuan-zhen/PolyWeather.

When should I use Configure Notifications?

Configure Notifications fits situations like: tasks that involve Webhooks.

How do I install Configure Notifications in Claude Code?

Run `npx skills add yangyuan-zhen/PolyWeather --skill configure-notifications -a claude-code`. Or copy the skill folder (.codex/skills/configure-notifications in yangyuan-zhen/PolyWeather) into .claude/skills/configure-notifications in your project. Claude Code loads it when a task matches its description.

How do I install Configure Notifications in Codex?

Run `npx skills add yangyuan-zhen/PolyWeather --skill configure-notifications -a codex`. Or copy the skill folder (.codex/skills/configure-notifications in yangyuan-zhen/PolyWeather) into .agents/skills/configure-notifications in your project. Codex loads it when a task matches its description.

Can I use Configure Notifications in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yangyuan-zhen/PolyWeather --skill configure-notifications -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/configure-notifications, .gemini/skills/configure-notifications, .github/skills/configure-notifications and .opencode/skills/configure-notifications in your project.

What does Configure Notifications need to run?

Going by SKILL.md and its folder, Configure Notifications needs the command-line tools its instructions call (jq, rg and npm).

Does Configure Notifications access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Configure Notifications safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Configure Notifications use?

Configure Notifications is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Configure Notifications use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Configure Notifications?

Skills that share tags, products or a category with Configure Notifications: Channel Debug Core (vercel-labs/vercel-openclaw-archived, 117 stars), Frontmcp Channels (agentfront/frontmcp, 146 stars), Chat SDK (databuddy-analytics/Databuddy, 1.2k stars) and Hitl Protocol (LeoYeAI/openclaw-master-skills, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Configure Notifications?

yangyuan-zhen (a GitHub user) maintains it in yangyuan-zhen/PolyWeather, which has 316 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on September 20, 2026.

Source: yangyuan-zhen/PolyWeather on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.