notify-wecom — Claude Code skill: one-off WeCom messages
Sends a single one-off message to a WeCom (Enterprise WeChat) group bot. Handy when the team needs a quick ping without templates or setup.
npx skills add daymade/claude-code-skills --skill notify-wecom -a claude-codeWhat notify-wecom does
The skill pulls the webhook from the shared config at ~/.config/setup-notifications-via-wecom/config.json and posts one message. Plain text only — no markdown cards, images or @mentions. Message length caps at 4096 bytes in UTF-8.
Before sending, it reads recipient_scope and recipient_label. A scope of self sends without an authorization prompt. A scope of others shows the exact label and message first, then waits for human confirmation. A missing or invalid scope is a configuration error: the skill stops and asks you to classify the target instead of guessing.
It is a lightweight companion to setup-notifications-via-wecom. You can install it alone, but then you create the config file by hand. The skill inherits the host and project proxy policy and never forces a direct route. Authorization is not delivery proof — a zero errcode only means the API accepted the call.
What it helps with
- fire a one-off notification into a WeCom group
- tell the team a backup or build finished
- verify the webhook is configured and responding
- send a multi-line message in one command
- separate self-delivery from confirmed delivery to others
Example prompts for the agent
- /notify-wecom Claude 备份完成 ✅
- /notify-wecom 告警:build 失败,请检查
- /notify-wecom "line one\nline two\nline three"
How to install notify-wecom
1Skills CLI (Vercel)
npx skills add daymade/claude-code-skills --skill notify-wecom -a claude-code2Manually: put the files in place
~/.claude/skills/notify-wecom/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/notify-wecom/
1Skills CLI (Vercel)
npx skills add daymade/claude-code-skills --skill notify-wecom -a codex2Manually: put the files in place
.agents/skills/notify-wecom/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add daymade/claude-code-skills --skill notify-wecom -a cursor2Manually: put the files in place
.cursor/skills/notify-wecom/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install daymade/claude-code-skills notify-wecom2Manually: put the files in place
.github/skills/notify-wecom/SKILL.md1Skills CLI (Vercel)
npx skills add daymade/claude-code-skills --skill notify-wecom -a gemini-cli2Platform CLI
gemini skills install https://github.com/daymade/claude-code-skills --path notify-wecomManually: put the files in place
.devin/skills/notify-wecom/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add daymade/claude-code-skills --skill notify-wecom -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about notify-wecom
How do I install notify-wecom in Claude?
Run npx skills add daymade/claude-code-skills --skill notify-wecom -a claude-code. The skill file then lands at ~/.claude/skills/notify-wecom/SKILL.md.
What does notify-wecom do?
It reads the webhook and recipient settings from the shared config and sends one text message to a WeCom group bot. Templating and structured cards are out of scope.
What does the skill need to work?
The file ~/.config/setup-notifications-via-wecom/config.json with webhook_url, recipient_scope and recipient_label. Without it, the skill prints the setup command and stops.
Source text
SKILL.md · MIT
--- name: notify-wecom description: >- Send a single one-off message to a WeCom (Enterprise WeChat) group bot. Use this skill whenever the user says "/notify-wecom", "send a quick WeCom message", "企微通知一下", "临时发一条企业微信", or any one-shot notification that does not need a reusable template or setup workflow. argument-hint: "[message]" --- # /notify-wecom Send a single message to a WeCom group bot. ## Human confirmation boundary Read the explicit `recipient_scope` and `recipient_label` from the shared config. `self` is the user's own delivery channel and may send without authorization. `others` requires the active human-confirmation gate with the exact label and message. Missing/invalid scope is a configuration error: stop and classify the target; do not guess. A local alert/outbox item still needs identity/content validation before either route. ## Usage ``` /notify-wecom Claude Code 备份完成 ✅ ``` The skill reads the webhook URL from the shared config file: ``` ~/.config/setup-notifications-via-wecom/config.json ``` If the config is missing, it prints the one-line setup command and stops. ## Prerequisite This skill is a lightweight companion to `setup-notifications-via-wecom`. Either: - Install `setup-notifications-via-wecom` first (recommended — it provides the webhook setup steps and its bundled sender), or - Create the config file manually as shown below. ## What It Does 1. Reads `~/.config/setup-notifications-via-wecom/config.json` for `webhook_url`, `recipient_scope`, and `recipient_label`. 2. Inherits the host/project HTTP(S) proxy and no_proxy policy; never forces direct access. 3. If scope is `self`, sends without an authorization prompt. If scope is `others`, presents the exact label and message for human confirmation. 4. Sends via the WeCom webhook using the sender from `setup-notifications-via-wecom` (or an equivalent inline curl call). 5. Reports success or the exact WeCom error; authorization alone is not delivery proof. ## Examples ``` /notify-wecom 服务上线成功 🚀 /notify-wecom 告警:build 失败,请检查 /notify-wecom 今日同步完成,0 缺失 0 滞后 ``` ## Multi-line Messages For multi-line messages, wrap in triple quotes or use a file: ``` /notify-wecom "第一行 第二行 第三行" ``` ## Failure Modes - **Config missing**: Run the setup step from `setup-notifications-via-wecom`, or create the config file manually. - **Recipient or sender identity missing/invalid**: Use `setup-notifications-via-wecom`'s `set_recipient.py` command; never infer self versus others from the webhook URL, and never trust a script merely because its basename is `send_wecom.py`. - **Webhook key invalid**: WeCom returns an `errcode`; the skill prints it. - **Network failure**: Inspect the approved route; do not clear required proxies or switch paths automatically. Follow the sender Skill’s network guidance. ## Limitations - Plain text only. No markdown cards, images, or @mentions. - Message length limit is 4096 bytes (UTF-8). - No templating — use `setup-notifications-via-wecom` for structured backup/alert/status messages. - A prepared pending item is not a delivery receipt; a zero `errcode` proves API acceptance. Recipient receipt and native SLS delivery require their own evidence.
© daymade · MIT · daymade/claude-code-skills