
Feishu Card
This lets you build and send interactive message cards in Feishu with buttons and selectors, then handle the callbacks when users click them. You'd use it for morning standup confirmations, alert handling, task approvals, anything where you need a quick response inside a chat instead of spawning a whole form. The documentation is thorough with token caching built in and practical examples for buttons, dropdowns, and markdown formatting. One nice touch is the explicit guidance on updating cards in place rather than spamming new messages. The card JSON has to be stringified before sending, which is a bit awkward but that's Feishu's API design, not this skill's fault.
- skills.sh installs
- 185
- GitHub stars
- 64
- last updated
- Aug 21, 2026
Install
$ npx -y skills add alextangson/feishu_skills --skill feishu-card --agent claude-codeInstalls into .claude/skills of the current project.
Files
飞书交互卡片
构建、发送和处理飞书交互卡片。
Base URL: https://open.feishu.cn/open-apis/im/v1
使用场景: 晨报确认、告警处理、任务确认、状态更新
认证与 Token 获取
从 feishu_skills 根目录执行共享脚本:
TOKEN="$(./scripts/get_feishu_token.sh)"
请求头统一使用 Authorization: Bearer ${TOKEN}。
如果业务接口返回 token 无效、过期或 401,强制刷新后仅重试一次原请求:
TOKEN="$(./scripts/get_feishu_token.sh --force-refresh)"
环境变量:
FEISHU_APP_IDFEISHU_APP_SECRET
本地缓存: ./.feishu_token_cache.json(未过期直接复用,默认提前 5 分钟刷新)
发送卡片
POST /open-apis/im/v1/messages?receive_id_type=chat_id
{
"receive_id": "<chat_id>",
"msg_type": "interactive",
"content": "<card_json_string>"
}
⚠️ content 必须是字符串化的 JSON。
卡片结构
{
"config": {"wide_screen_mode": true},
"header": {
"title": {"tag": "plain_text", "content": "标题"},
"template": "blue"
},
"elements": [
{"tag": "div", "text": {"tag": "lark_md", "content": "**加粗**"}},
{"tag": "action", "actions": [
{"tag": "button", "text": {"tag": "plain_text", "content": "确认"}, "type": "primary", "value": {"action": "confirm"}}
]}
]
}
常用元素
Sponsors
Details
- Repository
- github.com/alextangson/feishu_skills
- First seen
- Jun 3, 2026