Channel Debug Core
vercel-labs/vercel-openclaw-archived
Channel webhook triage for vercel-openclaw Slack/Telegram/Discord/WhatsApp issues: prove deployment state, collect admin readiness endpoints, build evidence-first handoff before fixes.
[OMX] Configure OMX notifications - unified entry point for all platforms
$ npx skills add yangyuan-zhen/PolyWeather --skill configure-notifications -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yangyuan-zhen/PolyWeather configure-notifications --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "configure-notifications" agent skill from https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/configure-notifications into .claude/skills/configure-notifications/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configure-notifications", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/configure-notificationsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add yangyuan-zhen/PolyWeather --skill configure-notifications -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yangyuan-zhen/PolyWeather configure-notifications --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yangyuan-zhen/PolyWeather.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.codex/skills/configure-notifications .agents/skills/configure-notifications && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "configure-notifications" agent skill from https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/configure-notifications into .agents/skills/configure-notifications/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configure-notifications", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yangyuan-zhen/PolyWeather --skill configure-notifications -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yangyuan-zhen/PolyWeather configure-notifications --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yangyuan-zhen/PolyWeather.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.codex/skills/configure-notifications .cursor/skills/configure-notifications && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "configure-notifications" agent skill from https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/configure-notifications into .cursor/skills/configure-notifications/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configure-notifications", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/yangyuan-zhen/PolyWeather.git --path .codex/skills/configure-notifications--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add yangyuan-zhen/PolyWeather --skill configure-notifications -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yangyuan-zhen/PolyWeather configure-notifications --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yangyuan-zhen/PolyWeather.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.codex/skills/configure-notifications .gemini/skills/configure-notifications && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "configure-notifications" agent skill from https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/configure-notifications into .gemini/skills/configure-notifications/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configure-notifications", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install yangyuan-zhen/PolyWeather configure-notificationsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add yangyuan-zhen/PolyWeather --skill configure-notifications -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/yangyuan-zhen/PolyWeather.git skills-src && mkdir -p .github/skills && cp -r skills-src/.codex/skills/configure-notifications .github/skills/configure-notifications && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "configure-notifications" agent skill from https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/configure-notifications into .github/skills/configure-notifications/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configure-notifications", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yangyuan-zhen/PolyWeather --skill configure-notifications -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yangyuan-zhen/PolyWeather configure-notifications --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yangyuan-zhen/PolyWeather.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.codex/skills/configure-notifications .opencode/skills/configure-notifications && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "configure-notifications" agent skill from https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/configure-notifications into .opencode/skills/configure-notifications/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configure-notifications", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
configure-notifications[OMX] Configure OMX notifications - unified entry point for all platforms
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.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 43e658b. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
jqrgnpmFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from yangyuan-zhen/PolyWeather at commit 43e658b, republished under its AGPL-3.0 licence (© yangyuan-zhen). 536 words, ~2,738 tokens.
.claude/skills/configure-notifications/SKILL.md (or your agent's skills folder).Unified and only entry point for notification setup.
custom_webhook_command, custom_cli_commandStandalone configure skills (
configure-discord,configure-telegram,configure-slack,configure-openclaw) are removed.
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"
fiUse AskUserQuestion:
Question: "What would you like to configure?"
Options:
custom_webhook_commandcustom_cli_commandnotifications.enabled = falseCollect and validate platform-specific values, then write directly under native keys:
notifications.discordnotifications["discord-bot"]notifications.telegramnotifications.slackDo not write these as generic command/webhook aliases.
custom_webhook_commandUse AskUserQuestion to collect:
POST default, or PUT)session-end, ask-user-question, session-start, session-idle, stop)Write:
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"custom_cli_commandUse AskUserQuestion to collect:
{{event}}, {{instruction}}, {{sessionId}}, {{projectPath}})Write:
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 requireOMX_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:
session-stop -> OpenClaw hook stop.{{instruction}}).instruction templates concise and avoid untrusted shell metacharacters.gateways.<name>.timeout > OMX_OPENCLAW_COMMAND_TIMEOUT_MS > 5000.gateways.<name>.timeout to 120000 (recommended).session={{sessionId}} and tmux={{tmuxSession}} in hook text for traceability.SOUL.md and continue in #omc-dev.|| true to prevent OMX hook failures from blocking the session..jsonl extension and append (>>) for structured log aggregation.--reply-to 'channel:CHANNEL_ID' for reliability (preferred over channel aliases).Example (targeting #omc-dev with production-tested settings):
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:
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 --jsonDev runbook (Korean + tmux follow-up):
# 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 -20OMX accepts both:
notifications.openclaw schema (legacy/runtime shape)custom_webhook_command, custom_cli_command)Deterministic precedence:
notifications.openclaw wins when present and valid.notifications.idleCooldownSecondsnotifications.profilesnotifications.defaultProfilenotifications.reply.enabledOMX_REPLY_ENABLED=true, and for Discord OMX_REPLY_DISCORD_USER_IDS=...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.jq '.notifications.enabled = false' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"After writing config, run a smoke check:
npm run buildFor OpenClaw-like HTTP integrations, verify both:
/hooks/wake smoke test/hooks/agent delivery verificationShow:
custom_webhook_command, custom_cli_command)notifications.openclaw exists (and therefore overrides aliases)~/.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
Just SKILL.md in .codex/skills/configure-notifications of yangyuan-zhen/PolyWeather.
Open the folder on GitHubat commit 43e658b
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Configure Notifications this skillyangyuan-zhen/PolyWeather | 316 | — | ~2.7k | Automated safety check: Pass | AGPL-3.0 | |
| Channel Debug Corevercel-labs/vercel-openclaw-archived | 117 | — | ~2k | Automated safety check: Notes | MIT | |
| Frontmcp Channelsagentfront/frontmcp | 146 | — | ~3.7k | Automated safety check: Pass | Apache-2.0 | |
| Chat SDKdatabuddy-analytics/Databuddy | 1.2k | — | ~2.6k | Automated safety check: Pass | AGPL-3.0 | |
| Hitl ProtocolLeoYeAI/openclaw-master-skills | 2.2k | — | ~5.3k | Automated safety check: Pass | Apache-2.0 | |
| Add Channel Connect Buttonnovuhq/novu | 40k | — | ~1.6k | Automated safety check: Pass | Custom licence |
vercel-labs/vercel-openclaw-archived
Channel webhook triage for vercel-openclaw Slack/Telegram/Discord/WhatsApp issues: prove deployment state, collect admin readiness endpoints, build evidence-first handoff before fixes.
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.
databuddy-analytics/Databuddy
Build multi-platform chat bots with Chat SDK (chat npm package).
LeoYeAI/openclaw-master-skills
HITL Protocol — the open standard for human decisions in autonomous agent workflows.
novuhq/novu
Build a new channel Connect button (e.g. An agent skill from novuhq/novu.
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.
yangyuan-zhen/PolyWeather
[OMX] Run an anti-slop cleanup/refactor/deslop workflow. An agent skill from yangyuan-zhen/PolyWeather.
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.
yangyuan-zhen/PolyWeather
[OMX] Stateful validator-gated research loop with native-hook persistence
yangyuan-zhen/PolyWeather
[OMX] Bounded best-practice research wrapper using official/upstream evidence first
yangyuan-zhen/PolyWeather
[OMX] Cancel any active OMX mode (autopilot, ralph, ultrawork, ecomode, ultraqa, swarm, ultrapilot, pipeline, team)
yangyuan-zhen/PolyWeather
[OMX] Canonical repo-local DESIGN.md workflow for product, UI/UX, and frontend decision source of truth
Categories
[OMX] Configure OMX notifications - unified entry point for all platforms. Configure Notifications is an agent skill from yangyuan-zhen/PolyWeather.
Configure Notifications fits situations like: tasks that involve Webhooks.
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.
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.
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.
Going by SKILL.md and its folder, Configure Notifications needs the command-line tools its instructions call (jq, rg and npm).
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.
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.
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.
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.
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.
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.