kwongfuk/codex-skills/feishu-notify
- community
Checking that the SKILL.md file is still in the repository.
Send notifications to Feishu/Lark. Internal utility used by other skills, or manually via /feishu-notify. Supports push-only (webhook) and interactive (bidirectional) modes. Use when user says \\\"\u53d1\u98de\u4e66\\\", \\\"notify feishu\\\", or other skills need to send status updates.
Install
npx vskill@latest install kwongfuk/codex-skills/feishu-notifySKILL.md
The same SKILL.md was published earlier as buaazhanghaonan/adversarial-research-copilot/feishu-notify.
Feishu/Lark Notification
Send a notification: $ARGUMENTS
Overview
This skill provides Feishu/Lark integration for ARIS. It is designed as an internal utility — other skills call it at key events (experiment done, review scored, checkpoint waiting). It can also be invoked manually.
Zero-impact guarantee: If no feishu.json config exists, this skill does nothing and returns silently. All existing workflows are completely unaffected.
Configuration
The skill reads ~/.codex/feishu.json. If this file does not exist, all Feishu functionality is disabled — skills behave exactly as before.
Config Format
Modes
| Mode | "mode" value | What it does | Requires | |
|---|---|---|---|---|
| Off | "off" or file absent | Nothing. Pure CLI as-is | Nothing | |
| Push only | "push" | Send webhook notifications at key events. Mobile push, no reply | Feishu bot webhook URL | |
| Interactive | "interactive" | Full bidirectional. Approve/reject from Feishu, reply to checkpoints | feishu-claude-code running |
Workflow
Step 1: Read Config
- File not found → return silently, do nothing
- `"mode": "off"` → return silently, do nothing
- `"mode": "push"` → proceed to Step 2 (push)
- `"mode": "interactive"` → proceed to Step 3 (interactive)
Step 2: Push Notification (webhook)
Send a rich card to the Feishu webhook:
Card templates by event type:
| Event | Title | Color | Body | |
|---|---|---|---|---|
experiment_done | Experiment Complete | green | Results table, delta vs baseline | |
review_scored | Review Round N: X/10 | blue (≥6) / orange (<6) | Score, verdict, top 3 weaknesses | |
checkpoint | Checkpoint: Waiting for Input | yellow | Question, options, context | |
error | Error: [type] | red | Error message, what failed | |
pipeline_done | Pipeline Complete | purple | Final summary, deliverables | |
custom | Custom | blue | Free-form message from $ARGUMENTS |
Return immediately after curl — push mode never waits for a response.
Step 3: Interactive Notification (bidirectional)
Interactive mode uses feishu-claude-code as a bridge:
- Send message to the bridge:
``bash curl -s -X POST "$BRIDGE_URL/send" \ -H "Content-Type: application/json" \ -d '{"type": "EVENT_TYPE", "title": "TITLE", "body": "BODY", "options": ["approve", "reject", "custom"]}' ``
- Wait for reply (with timeout):
``bash curl -s "$BRIDGE_URL/poll?timeout=$TIMEOUT_SECONDS" ` Returns: {"reply": "approve"} or {"reply": "reject"} or {"reply": "user typed message"} or {"timeout": true}`
- On timeout: Fall back to
AUTO_PROCEEDbehavior (proceed with default option).
- Return the user's reply to the calling skill so it can act on it.
Step 4: Verify Delivery
- Push mode: Check curl exit code. If non-zero, log warning but do NOT block the workflow.
- Interactive mode: If bridge is unreachable, fall back to push mode (if webhook configured) or skip silently.
Helper Function (for other skills)
Other skills should use this pattern to send notifications:
This check is always guarded. If the config file doesn't exist, the skill skips the notification block entirely — zero overhead, zero side effects.
Event Catalog
Skills send these events at these moments:
| Skill | Event | When | |
|---|---|---|---|
/auto-review-loop | review_scored | After each round's review score | |
/auto-review-loop | pipeline_done | Loop complete (positive or max rounds) | |
/auto-paper-improvement-loop | review_scored | After each round's review score | |
/auto-paper-improvement-loop | pipeline_done | All rounds complete | |
/run-experiment | experiment_done | Screen session finishes | |
/idea-discovery | checkpoint | Between phases (if interactive) | |
/idea-discovery | pipeline_done | Final report ready | |
/monitor-experiment | experiment_done | Results collected | |
/research-pipeline | checkpoint | Between workflow stages | |
/research-pipeline | pipeline_done | Full pipeline complete |
Key Rules
- NEVER block a workflow because Feishu is unreachable. Always fail open.
- NEVER require Feishu config — all skills must work without it.
- Config file absent = mode off. No error, no warning, no log.
- Push mode is fire-and-forget. Send curl, check exit code, move on.
- Interactive timeout = auto-proceed. Don't hang forever waiting for a reply.
- Respect `AUTO_PROCEED`: In interactive mode, if the user doesn't reply within timeout, use the same auto-proceed logic as the calling skill.
- No secrets in notifications. Never include API keys, tokens, or passwords in Feishu messages.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingglobal/feishu-notify/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/kwongfuk/codex-skills/feishu-notify)