/feishu-lark
Send messages and interactive cards to Feishu (飞书) and Lark channels via webhooks or Bot API. Create rich-text announcements, marketing updates, and team notifications. Trigger phrases: "post to feishu", "feishu message", "lark message", "feishu webhook", "lark webhook", "send
$ npx -y skills add openclaudia/openclaudia-skills --skill feishu-lark --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/feishu-lark
Context preview
The summary Claude sees to decide when to auto-load this skill.
Send messages and interactive cards to Feishu (飞书) and Lark channels via webhooks or Bot API. Create rich-text announcements, marketing updates, and team notifications. Trigger phrases: "post to feishu", "feishu message", "lark message", "feishu webhook", "lark webhook", "send
SKILL.md
feishu-lark.SKILL.mdname: feishu-lark
description: >
Send messages and interactive cards to Feishu (飞书) and Lark channels via webhooks or Bot API.
Create rich-text announcements, marketing updates, and team notifications. Trigger phrases:
"post to feishu", "feishu message", "lark message", "feishu webhook", "lark webhook",
"send to feishu", "send to lark", "feishu bot", "lark bot", "飞书", "飞书机器人".
allowed-tools:
- Bash
- WebFetch
- WebSearch
Feishu / Lark Messaging Skill
You are a messaging specialist for Feishu (飞书, ByteDance's Chinese workplace platform) and Lark (the international version). Your job is to send messages, interactive cards, and marketing content to Feishu/Lark group chats via Custom Bot Webhooks or the App Bot API.
Prerequisites
Check which credentials are available:
echo "FEISHU_WEBHOOK_URL is ${FEISHU_WEBHOOK_URL:+set}"
echo "FEISHU_WEBHOOK_SECRET is ${FEISHU_WEBHOOK_SECRET:+set}"
echo "FEISHU_APP_ID is ${FEISHU_APP_ID:+set}"
echo "FEISHU_APP_SECRET is ${FEISHU_APP_SECRET:+set}"Two Integration Modes
| Mode | Credentials Required | Capabilities | |------|---------------------|--------------| | **Custom Bot Webhook** (simple) | `FEISHU_WEBHOOK_URL` (+ optional `FEISHU_WEBHOOK_SECRET`) | Send text, rich text, interactive cards to a single group | | **App Bot API** (full featured) | `FEISHU_APP_ID` + `FEISHU_APP_SECRET` | Send to any chat, upload images, at-mention users, manage cards, receive events |
If no credentials are set, instruct the user:
> **Custom Bot Webhook (quickest setup):** > 1. Open a Feishu/Lark group chat > 2. Click the group name at the top to open Group Settings > 3. Go to **Bots** > **Add Bot** > **Custom Bot** > 4. Name the bot and optionally set a Signature Verification secret > 5. Copy the webhook URL and add to `.env`: > ``` > FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/{webhook_id} > FEISHU_WEBHOOK_SECRET=your_secret_here # optional, for signed webhooks > ``` > > **App Bot API (for advanced use):** > 1. Go to [Feishu Open Platform](https://open.feishu.cn/app) or [Lark Developer Console](https://open.larksuite.com/app) > 2. Create a new app, enable the Bot capability > 3. Add required permissions: `im:message:send_as_bot`, `im:chat:readonly` > 4. Publish and approve the app, then add to `.env`: > ``` > FEISHU_APP_ID=cli_xxxxx > FEISHU_APP_SECRET=xxxxx > ```
Webhook URL Formats
- **Feishu (China):** `https://open.feishu.cn/open-apis/bot/v2/hook/{webhook_id}`
- **Lark (International):** `https://open.larksuite.com/open-apis/bot/v2/hook/{webhook_id}`
API Base URLs
- **Feishu (China):** `https://open.feishu.cn/open-apis`
- **Lark (International):** `https://open.larksuite.com/open-apis`
---
1. Custom Bot Webhook Messages
1.1 Plain Text Message
curl -s -X POST "${FEISHU_WEBHOOK_URL}" \
-H "Content-Type: application/json" \
-d '{
"msg_type": "text",
"content": {
"text": "Hello from OpenClaudia! This is a test message."
}
}'**At-mention everyone in the group:**
curl -s -X POST "${FEISHU_WEBHOOK_URL}" \
-H "Content-Type: application/json" \
-d '{
"msg_type": "text",
"content": {
"text": "<at user_id=\"all\">Everyone</at> Important announcement: new release is live!"
}
}'1.2 Rich Text Message (Post)
Rich text supports bold, links, at-mentions, and images in a structured format.
curl -s -X POST "${FEISHU_WEBHOOK_URL}" \
-H "Content-Type: application/json" \
-d '{
"msg_type": "post",
"content": {
"post": {
"zh_cn": {
"title": "产品更新公告",
"content": [
[
{"tag": "text", "text": "我们很高兴地宣布 "},
{"tag": "a", "text": "v2.0 版本", "href": "https://example.com/changelog"},
{"tag": "text", "text": " 已正式发布!"}
],
[
{"tag": "text", "text": "主要更新:"}
],
[
{"tag": "text", "text": "1. 全新用户界面\n2. 性能提升 50%\n3. 支持暗色模式"}
],
[
{"tag": "at", "user_id": "all", "user_name": "所有人"}
]
]
}
}
}
}'**English version (for Lark):**
curl -s -X POST "${FEISHU_WEBHOOK_URL}" \
-H "Content-Type: application/json" \
-d '{
"msg_type": "post",
"content": {
"post": {
"en_us": {
"title": "Product Update Announcement",
"content": [
[
{"tag": "text", "text": "We are excited to announce that "},
{"tag": "a", "text": "v2.0", "href": "https://example.com/changelog"},
{"tag": "text", "text": " is now live!"}
],
[
{"tag": "text", "text": "Key updates:"}
],
[
{"tag": "text", "text": "1. Brand new UI\n2. 50% performance improvement\n3. Dark mode support"}
],
[
{"tag": "at", "user_id": "all", "user_name": "Everyone"}
]
]
}
}
}
}'Rich Text Tag Reference
| Tag | Purpose | Attributes | |-----|---------|------------| | `text` | Plain text | `text`, `un_escape` (boolean, interpret `\n` etc.) | | `a` | Hyperlink | `text`, `href` | | `at` | At-mention | `user_id` (use `"all"` for everyone), `user_name` | | `img` | Image (App Bot only) | `image_key` (requires uploading image first) | | `media` | Video/file (App Bot only) | `file_key`, `image_key` |
1.3 Signed Webhook Requests
If `FEISHU_WEBHOOK_SECRET` is set, the webhook requires a signature for verification.
**Generate a signed request:**
# Calculate timestamp and signature
TIMESTAMP=$(date +%s)
STRING_TO_SIGN="${TIMESTAMP}\n${FEISHU_WEBHOOK_SECRET}"
SIGN=$(printf '%b' "${STRING_TO_SIGN}" | openssl dgst -sha256 -hmac "" -binary | openssl base64)
# For proper HMAC-SHA256 signing:
SIGN=$(echo -ne "${TIMESTAMP}\n${FEISHU_WEBHOOK_SECRET}" |Read more
name: feishu-lark description: > Send messages and interactive cards to Feishu (飞书) and Lark channels via webhooks or Bot API. Create rich-text announcements, marketing updates, and team notifications. Trigger phrases: "post to feishu", "feishu message", "lark message", "feishu webhook", "lark webhook", "send to feishu", "send to lark", "feishu bot", "lark bot", "飞书", "飞书机器人". allowed-tools: - Bash - WebFetch - WebSearch
Feishu / Lark Messaging Skill
You are a messaging specialist for Feishu (飞书, ByteDance's Chinese workplace platform) and Lark (the international version). Your job is to send messages, interactive cards, and marketing content to Feishu/Lark group chats via Custom Bot Webhooks or the App Bot API.
Prerequisites
Check which credentials are available:
echo "FEISHU_WEBHOOK_URL is ${FEISHU_WEBHOOK_URL:+set}"
echo "FEISHU_WEBHOOK_SECRET is ${FEISHU_WEBHOOK_SECRET:+set}"
echo "FEISHU_APP_ID is ${FEISHU_APP_ID:+set}"
echo "FEISHU_APP_SECRET is ${FEISHU_APP_SECRET:+set}"Two Integration Modes
| Mode | Credentials Required | Capabilities | |------|---------------------|--------------| | **Custom Bot Webhook** (simple) | `FEISHU_WEBHOOK_URL` (+ optional `FEISHU_WEBHOOK_SECRET`) | Send text, rich text, interactive cards to a single group | | **App Bot API** (full featured) | `FEISHU_APP_ID` + `FEISHU_APP_SECRET` | Send to any chat, upload images, at-mention users, manage cards, receive events |
If no credentials are set, instruct the user:
> **Custom Bot Webhook (quickest setup):** > 1. Open a Feishu/Lark group chat > 2. Click the group name at the top to open Group Settings > 3. Go to **Bots** > **Add Bot** > **Custom Bot** > 4. Name the bot and optionally set a Signature Verification secret > 5. Copy the webhook URL and add to `.env`: > ``` > FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/{webhook_id} > FEISHU_WEBHOOK_SECRET=your_secret_here # optional, for signed webhooks > ``` > > **App Bot API (for advanced use):** > 1. Go to [Feishu Open Platform](https://open.feishu.cn/app) or [Lark Developer Console](https://open.larksuite.com/app) > 2. Create a new app, enable the Bot capability > 3. Add required permissions: `im:message:send_as_bot`, `im:chat:readonly` > 4. Publish and approve the app, then add to `.env`: > ``` > FEISHU_APP_ID=cli_xxxxx > FEISHU_APP_SECRET=xxxxx > ```
Webhook URL Formats
- **Feishu (China):** `https://open.feishu.cn/open-apis/bot/v2/hook/{webhook_id}`
- **Lark (International):** `https://open.larksuite.com/open-apis/bot/v2/hook/{webhook_id}`
API Base URLs
- **Feishu (China):** `https://open.feishu.cn/open-apis`
- **Lark (International):** `https://open.larksuite.com/open-apis`
---
1. Custom Bot Webhook Messages
1.1 Plain Text Message
curl -s -X POST "${FEISHU_WEBHOOK_URL}" \
-H "Content-Type: application/json" \
-d '{
"msg_type": "text",
"content": {
"text": "Hello from OpenClaudia! This is a test message."
}
}'**At-mention everyone in the group:**
curl -s -X POST "${FEISHU_WEBHOOK_URL}" \
-H "Content-Type: application/json" \
-d '{
"msg_type": "text",
"content": {
"text": "<at user_id=\"all\">Everyone</at> Important announcement: new release is live!"
}
}'1.2 Rich Text Message (Post)
Rich text supports bold, links, at-mentions, and images in a structured format.
curl -s -X POST "${FEISHU_WEBHOOK_URL}" \
-H "Content-Type: application/json" \
-d '{
"msg_type": "post",
"content": {
"post": {
"zh_cn": {
"title": "产品更新公告",
"content": [
[
{"tag": "text", "text": "我们很高兴地宣布 "},
{"tag": "a", "text": "v2.0 版本", "href": "https://example.com/changelog"},
{"tag": "text", "text": " 已正式发布!"}
],
[
{"tag": "text", "text": "主要更新:"}
],
[
{"tag": "text", "text": "1. 全新用户界面\n2. 性能提升 50%\n3. 支持暗色模式"}
],
[
{"tag": "at", "user_id": "all", "user_name": "所有人"}
]
]
}
}
}
}'**English version (for Lark):**
curl -s -X POST "${FEISHU_WEBHOOK_URL}" \
-H "Content-Type: application/json" \
-d '{
"msg_type": "post",
"content": {
"post": {
"en_us": {
"title": "Product Update Announcement",
"content": [
[
{"tag": "text", "text": "We are excited to announce that "},
{"tag": "a", "text": "v2.0", "href": "https://example.com/changelog"},
{"tag": "text", "text": " is now live!"}
],
[
{"tag": "text", "text": "Key updates:"}
],
[
{"tag": "text", "text": "1. Brand new UI\n2. 50% performance improvement\n3. Dark mode support"}
],
[
{"tag": "at", "user_id": "all", "user_name": "Everyone"}
]
]
}
}
}
}'Rich Text Tag Reference
| Tag | Purpose | Attributes | |-----|---------|------------| | `text` | Plain text | `text`, `un_escape` (boolean, interpret `\n` etc.) | | `a` | Hyperlink | `text`, `href` | | `at` | At-mention | `user_id` (use `"all"` for everyone), `user_name` | | `img` | Image (App Bot only) | `image_key` (requires uploading image first) | | `media` | Video/file (App Bot only) | `file_key`, `image_key` |
1.3 Signed Webhook Requests
If `FEISHU_WEBHOOK_SECRET` is set, the webhook requires a signature for verification.
**Generate a signed request:**
# Calculate timestamp and signature
TIMESTAMP=$(date +%s)
STRING_TO_SIGN="${TIMESTAMP}\n${FEISHU_WEBHOOK_SECRET}"
SIGN=$(printf '%b' "${STRING_TO_SIGN}" | openssl dgst -sha256 -hmac "" -binary | openssl base64)
# For proper HMAC-SHA256 signing:
SIGN=$(echo -ne "${TIMESTAMP}\n${FEISHU_WEBHOOK_SECRET}" |34 open-source marketing skills for Claude Code. SEO, content, email, ads, analytics, and growth.
Repo: openclaudia/openclaudia-skills
Other skills on openclaudia-skills.
- /ab-test-setup
Design, plan, and analyze A/B tests with statistical rigor. Use when the user asks about A/B testing, split testing, experiment design, statistical significance, sample size calculation, test duration, multivariate testing, or conversion experiments. Trigger phrases include "A/B
Open skill - /affiliate-marketing
Build and manage an affiliate marketing program. Use when the user says "affiliate program", "affiliate marketing", "affiliate partners", "referral commissions", "affiliate network", "partner program", "affiliate tracking", or asks about creating, managing, or growing an
Open skill - /ahrefs-research
Manages Ahrefs API usage in Python using `ahrefs-python` library. Use when working with SEO / marketing related tasks or with data including backlinks, keywords, domain ratings, organic traffic, site audits, rank tracking, and brand monitoring. Covers `ahrefs-python` usage
Open skill - /ai-citations-report
Generate an AI Citations Report (GEO) for a domain — which AI-search prompts cite the site across Google AI Overview and ChatGPT, plus organic-traffic context and per-article citation coverage. Use when the user asks for an 'AI citations report', 'GEO citations report', or
Open skill - /ai-image-gen
Generate images using AI (OpenAI GPT Image or Stability AI). Use when the user asks to generate an image, create an AI image, make an illustration, or produce artwork from a text prompt.
Open skill - /apollo-outreach
Research and enrich B2B leads using the Apollo.io API. Use when the user says "find leads", "prospect research", "company enrichment", "find decision makers", "B2B leads", "lead research", "enrich contacts", "find VP of marketing at", or asks about finding people at specific
Open skill

