
feishu-cli-msg
飞书消息发送。发送消息(text/post/interactive 卡片等 10 种类型:text/post/image/file/audio/media/sticker/interactive/sharechat/shareuser;system 分割线 CLI 暂未直接支持,需用 feishu-cli api 透传)、回复消息、 转发/合并转发、消息加急、消息书签(flag 收藏/list/cancel)、下载消息资源(图片/文件)。 发送/回复/转发/加急默认 App Token(Bot 身份);msg flag 收藏/书签必需 User Token(im:feed.flag:read/write); msg resource-download 已登录时优先 User Token,未登录回落 App Token。 当用户明确请求通过飞书即时消息/Bot 消息发送、回复、转发、合并转发、加急、消息收藏/书签、 下载消息图片或文件时使用。邮件走 feishu-cli-mail;文档评论/共享权限走对应 skill。 注意:Reaction/Pin/获取消息详情/批量获取消息/话题回复/消息历史/搜索群聊/群聊管理, 以及消息删除(默认 App Token 用于 Bot 自撤回,可选 User Token 让管理员撤回他人) 请使用 feishu-cli-chat 技能。 发送 interactive 卡片时,先用 feishu-cli-card 构造 v2 JSON, 再回到本技能用 --msg-type interactive --content-file 发送。
- Installs
- 855
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/riba2534/feishu-cli --skill feishu-cli-msg- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads feishu-cli-msg automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
飞书消息发送技能
通过 feishu-cli 发送飞书消息、回复、转发、合并转发、加急和下载消息资源。
feishu-cli:如尚未安装,请前往 riba2534/feishu-cli 获取安装方式。
与 feishu-cli-chat 技能的职责边界
重要:CLI 路径 ≠ SKILL 归属。
feishu-cli msg下的子命令同时被两个 SKILL 分管,按动作类型划分,不按 CLI 路径划分。
动作类型 子命令 归属 SKILL 发送类(本 SKILL 覆盖) send/reply/forward/merge-forward/urgent/flag/resource-downloadfeishu-cli-msg 读取类(请用 chat SKILL) history/list/get/mget/thread-messages/search-chats/read-users/pinsfeishu-cli-chat 互动类(请用 chat SKILL) reaction/pin/unpin/deletefeishu-cli-chat 端到端拉一段时间窗的群消息(含话题展开、名字反解、卡片解析)直接跑:
python3 skills/feishu-cli-chat/scripts/fetch_chat_history.py oc_xxx --since 24h
核心概念
消息架构
飞书消息 API 的 content 字段是一个 JSON 字符串(不是 JSON 对象)。CLI 提供三种输入方式:
| 输入方式 | 参数 | 适用场景 |
|---|---|---|
| 快捷文本 | --text "内容" | 纯文本消息,最简单 |
| 发送文件 | --file <路径> 或 -f | 本地文件自动上传并发送(限 30MB) |
| 发送图片 | --image <路径> | 本地图片自动上传并发送(限 10MB) |
| 内联 JSON | --content '{"key":"val"}' 或 -c | 简单 JSON,一行搞定 |
| JSON 文件 | --content-file file.json | 复杂消息(卡片、富文本等) |
互斥:以上 5 种输入方式只能指定一个,同时指定会报错。
接收者类型
| --receive-id-type | 说明 | 示例 |
|---|---|---|
| 邮箱地址 | user@example.com | |
| open_id | Open ID | ou_xxx |
| user_id | User ID | xxx |
| union_id | Union ID | on_xxx |
| chat_id | 群聊 ID | oc_xxx |
消息类型选择
决策树(Claude 未指定类型时自动选择)
默认优先使用 interactive(卡片消息),样式美观、内容丰富、支持颜色/多列/按钮等。
用户需求
├─ 【默认】通知/报告/告警/任何有信息量的消息 → interactive(卡片)
├─ 发送已上传的图片/文件/音视频 → image/file/audio/media
├─ 分享群聊或用户名片 → share_chat/share_user
└─ 仅以下场景才用 text/post:
├─ 用户明确要求发纯文本 → text
└─ 用户明确要求发富文本 → post
为什么优先卡片:text 不支持任何格式渲染,post 样式有限,卡片支持彩色 header、多列 fields、按钮、分割线、备注等,视觉效果远优于其他类型。
消息类型一览
| 类型 | 说明 | content 格式 | 大小限制 |
|---|---|---|---|
| text | 纯文本 | {"text":"内容"} | 150 KB |
| post | 富文本 | {"zh_cn":{"title":"","content":[[...]]}} | 150 KB |
| image | 图片 | {"image_key":"img_xxx"} | — |
| file | 文件 | {"file_key":"file_v2_xxx"} | — |
| audio | 语音 | {"file_key":"file_v2_xxx"} | — |
| media | 视频 | {"file_key":"...","image_key":"..."} | — |
| sticker | 表情包 | {"file_key":"file_v2_xxx"} | 仅转发 |
| interactive | 卡片 | Card JSON / template_id / card_id | 30 KB |
| share_chat | 群名片 | {"chat_id":"oc_xxx"} | — |
| share_user | 个人名片 | {"user_id":"ou_xxx"} | — |
system系统分割线(仅 p2p)CLI--msg-type白名单暂未收录(见cmd/send_message.go:261-266),需要时用feishu-cli api POST /open-apis/im/v1/messages直接透传。
身份说明
本技能以发送类命令为主,默认使用 App Token(Bot 身份),无需登录。
- 必需 User Token:
msg flag收藏/书签子命令(im:feed.flag:read/write),见末尾"消息书签"章节。 - 优先 User Token + Tenant 兜底:
msg resource-download已登录时自动用 User Token 下载(要求你能看到该消息),未登录则尝试 App Token(要求 Bot 能看到该消息)。
其他子命令(reaction/pin/delete/history/list/get/mget/thread-messages/search-chats)的 Token 策略见 feishu-cli-chat 技能。
发送命令
基础格式
feishu-cli msg send \
--receive-id-type <type> \
--receive-id <id> \
[--msg-type <msg_type>] \
[--text "<text>" | --file <path> | --image <path> | --content '<json>' | --content-file <file.json>]
file 类型(直发文件)
# 直接发送本地文件(自动上传,限 30MB)
feishu-cli msg send \
--receive-id-type email \
--receive-id user@example.com \
--file /path/to/report.pdf
自动推断文件 MIME 类型(opus/mp4/pdf/doc/xls/ppt),未知类型使用 stream。超过 30MB 的文件请先用 file upload 上传到云空间,再用 --msg-type file --content '{"file_key":"..."}' 发送。
image 类型(直发图片)
# 直接发送本地图片(自动上传,限 10MB)
feishu-cli msg send \
--receive-id-type chat_id \
--receive-id oc_xxx \
--image /path/to/screenshot.png
支持 JPEG、PNG、BMP、GIF、TIFF、WebP 格式。
text 类型
# 最简形式(默认 msg-type 为 text)
feishu-cli msg send \
--receive-id-type email \
--receive-id user@example.com \
--text "你好,这是一条测试消息"
text 类型支持的内联 @ 语法:
@用户:<at user_id="ou_xxx">Tom</at>——ou_xxx必须是真实 open_id@所有人:<at user_id="all"></at>@机器人:与 @ 用户语法相同,把ou_xxx换成机器人 open_id 即可
只能用 open_id:<at email="..."> 在 text 消息里不会触发 @ entity(飞书 IM 客户端会把邮箱字符串自动渲染成超链接,看起来像 @ 但没有通知、不是真的提及)。需要 @ 邮箱用户,先查 open_id:
# 第一步:查 open_id
feishu-cli user search --email alice@example.com -o json
# 第二步:用真实 open_id @ 人
feishu-cli msg send --receive-id-type chat_id --receive-id oc_xxx \
--text '<at user_id="ou_xxx">Alice</at> 你好'
容错(仅 --text 模式):msg send / msg reply 在 --text 模式下会自动修正 AI 易写错的 @ 标签格式,下列写法都会被规范化为标准 <at user_id="...">:
<at id=ou_xxx>(缺引号 / 用id而非user_id)<at open_id="ou_xxx"/>(自闭合 / 用open_id)<at user_id=ou_xxx/>(自闭合无引号)
--content / --content-file 模式不做隐式 normalize(用户自己写的 JSON 自己负责,避免破坏结构)。
注意:text 类型不支持富文本样式(加粗、斜体、下划线、删除线、超链接等均不会渲染)。如需格式排版,请使用 post 类型。
post 类型(富文本)
推荐使用 md 标签承载 Markdown,一个 md 标签独占一个段落:
cat > /tmp/msg.json << 'EOF'
{
"zh_cn": {
"title": "项目进展通知",
"content": [
[{"tag": "md", "text": "**本周进展**\n- 完成功能 A 开发\n- 修复 3 个 Bug\n- [查看详情](https://example.com)"}],
[{"tag": "md", "text": "**下周计划**\n1. 功能 B 开发\n2. 性能优化"}]
]
}
}
EOF
feishu-cli msg send \
--receive-id-type email \
--receive-id user@example.com \
--msg-type post \
--content-file /tmp/msg.json
post 支持的 tag 类型:
| tag | 说明 | 主要属性 |
|---|---|---|
| text | 文本 | text, style(bold/italic/underline/lineThrough) |
| a | 超链接 | text, href |
| at | @用户 | user_id, user_name |
| img | 图片 | image_key, width, height |
| media | 视频 | file_key, image_key |
| emotion | 表情 | emoji_type |
| hr | 分割线 | — |
| code_block | 代码块 | language, text |
| md | Markdown | text(独占段落,推荐使用) |
图片自动上传(--upload-images)
msg send 支持 --upload-images,扫描 post / interactive 消息中的 Markdown 图片语法 ,把 path 指向的本地图片自动上传到飞书 IM 图床、替换为 image_key,再发送。
| 维度 | 行为 |
|---|---|
| 触发条件 | 仅当 --msg-type post 或 --msg-type interactive 时生效(其他类型即使传也忽略,见 cmd/send_message.go:212) |
| 适用语法 | 内容里的  标记;URL(http/https)和已有 image_key 不会被改写 |
| 路径解析 | 相对路径:以 --content-file 所在目录为 basePath;用 --content 内联 JSON 时以当前工作目录为 basePath(见 cmd/send_message.go:213-220) |
| 失败回落 | 上传失败直接报错退出,不会继续发送残缺消息(避免 image_key 缺失被服务端拒绝) |
| 进度提示 | 上传 > 0 张时 stderr 打印 已自动上传 N 张本地图片 |
# post 内嵌本地图:自动上传相对路径 ./diagrams/foo.png
feishu-cli msg send --receive-id-type email --receive-id user@example.com \
--msg-type post --content-file /path/to/post.json --upload-images
# interactive 卡片内嵌本地图同理
feishu-cli msg send --receive-id-type chat_id --receive-id oc_xxx \
--msg-type interactive --content-file /tmp/card.json --upload-images
不需要预先调
feishu-cli media upload:本标志已包装了"上传 + 替换 + 发送"的全流程。需要把图片当作独立image消息发送,请直接用--image <path>快捷方式。
interactive 类型(卡片消息)
卡片消息有三种发送方式:
方式一:完整 Card JSON(仅发送;复杂卡片先用 feishu-cli-card 生成)
cat > /tmp/card.json << 'EOF'
{
"schema": "2.0",
"header": {
"template": "blue",
"title": {"tag": "plain_text", "content": "任务完成通知"}
},
"body": {
"direction": "vertical",
"elements": [
{"tag": "markdown", "content": "**项目**: feishu-cli\n**状态**: 已完成\n**负责人**: <at id=all></at>"}
]
}
}
EOF
feishu-cli msg send \
--receive-id-type email \
--receive-id user@example.com \
--msg-type interactive \
--content-file /tmp/card.json
方式二:template_id
cat > /tmp/card.json << 'EOF'
{
"type": "template",
"data": {
"template_id": "AAqk1xxxxxx",
"template_variable": {"name": "张三", "status": "已完成"}
}
}
EOF
feishu-cli msg send \
--receive-id-type email \
--receive-id user@example.com \
--msg-type interactive \
--content-file /tmp/card.json
方式三:card_id
feishu-cli msg send \
--receive-id-type email \
--receive-id user@example.com \
--msg-type interactive \
--content '{"type":"card","data":{"card_id":"7371713483664506900"}}'
Interactive 卡片职责边界
本技能只负责发送 interactive 消息,不负责设计卡片 JSON。
- 结构化或美观卡片必须先使用 feishu-cli-card 生成 v2 JSON(schema=2.0)。
- 本技能发送:feishu-cli msg send --msg-type interactive --content-file <card.json>。
- 不要在本技能内新写 v1 elements/action/note 卡片模板;旧 v1 示例仅用于历史兼容排查。
执行流程
发送消息流程
- 确定接收者:默认
user@example.com(email),或从上下文获取 - 选择消息类型:
- 用户明确指定类型 → 使用指定类型
- 结构化或美观通知 → 先用
feishu-cli-card构造 JSON,再用interactive发送 - 用户明确要求纯文本/富文本,或内容很短 → 使用
text/post
- 准备内容:纯文本直接传
--text;卡片 JSON 使用--content-file;文件/图片使用--file/--image - 发送并检查结果:执行命令,确认返回 message_id
权限要求
| 权限 | 说明 |
|---|---|
im:message | 消息读写(发送/回复/转发) |
im:message:send_as_bot | 以机器人身份发送消息 |
注意事项
| 限制 | 说明 |
|---|---|
| text 大小限制 | 单条最大 150 KB |
| 卡片/富文本大小限制 | 单条最大 30 KB |
| system 消息 | CLI --msg-type 暂不支持,仅 p2p 会话有效;需用 feishu-cli api 透传 |
| sticker 消息 | 仅支持转发收到的表情包,不支持自行上传 |
| 卡片按钮回调 | 按钮的交互回调需应用服务端支持,CLI 发送的按钮仅 url 跳转有效 |
| API 频率限制 | 请求过快返回 429,等待几秒后重试 |
| 删除消息 | 仅能删除机器人发送的消息 |
错误处理
| 错误 | 原因 | 解决 |
|---|---|---|
content format of a post type is incorrect | post 类型 JSON 格式错误 | 确保格式为 {"zh_cn":{"title":"","content":[[...]]}} |
invalid receive_id | 接收者 ID 无效 | 检查 --receive-id-type 和 --receive-id 是否匹配 |
bot has no permission | 机器人无权限 | 确认应用有 im:message:send_as_bot 权限 |
rate limit exceeded | API 限流 | 等待几秒后重试 |
user not found | 用户不存在 | 检查邮箱或 ID 是否正确 |
card content too large | 卡片 JSON 超过 30 KB | 精简卡片内容或拆分为多条消息 |
Bot/User can NOT be out of the chat | Bot 不在目标群内 | 添加 --user-access-token 切换为 User 身份重试 |
批量获取消息
读消息详情和批量获取消息请使用 feishu-cli-chat 技能。
msg get/list/history/mget默认请求user_card_content并额外提取card_texts,该行为和排错说明维护在 chat skill 中,避免发送与读取职责混在一起。
下载消息资源
下载消息中的图片或文件附件。
# 下载消息中的图片
feishu-cli msg resource-download <message_id> <file_key> --type image -o /tmp/photo.png
# 下载消息中的文件
feishu-cli msg resource-download <message_id> <file_key> --type file -o /tmp/attachment.pdf
# Bot 不可见但当前用户可见的历史消息资源,可显式用 User Token
feishu-cli msg resource-download <message_id> <file_key> --type file --user-access-token u-xxx -o /tmp/attachment.pdf
# 下载大文件时指定超时时间
feishu-cli msg resource-download <message_id> <file_key> --type file --user-access-token u-xxx -o /tmp/large.bin --timeout 30m
| 参数 | 说明 | 默认值 |
|---|---|---|
<message_id> | 消息 ID | 必填 |
<file_key> | 资源的 file_key | 必填 |
--type | 资源类型 image/file | 必填 |
-o, --output | 输出文件路径 | — |
--user-access-token | 使用用户身份下载用户可见、但 Bot 不可见的历史消息资源 | — |
--timeout | 下载超时时间(Go duration 格式,如 10m、30m、1h) | 5m |
file_key 来源:通过
msg get <message_id>获取消息详情,从 content 中提取image_key或file_key。 使用用户身份直连下载时,如遇到飞书大文件限制,会自动使用 HTTP Range 分片下载并合并。
话题(Thread)消息
发送到已有话题
msg send 支持 --thread-id(等价于 --receive-id-type thread_id --receive-id <thread_id>):
# 在已有话题内追加一条消息
feishu-cli msg send --thread-id omt_xxx --text "话题内继续聊"
# 卡片消息也支持
feishu-cli msg send --thread-id omt_xxx \
--msg-type interactive \
--content "$(cat card.json)"
--thread-id与--receive-id-type/--receive-id互斥,只能指定一组。
回复时开启话题
msg reply 支持 --reply-in-thread(reply_in_thread=true):
# 在非话题群聊中,以话题形式回复某条消息(会开启一个新话题)
feishu-cli msg reply om_xxx --text "这里开个话题" --reply-in-thread
# 若群聊已是话题模式,--reply-in-thread 会自动回复到消息所在话题
话题回复列表
获取话题回复属于读取消息,请使用 feishu-cli-chat 技能。发送话题内消息仍使用本技能的 msg send --thread-id。
参考文档
references/message_content.md:各消息类型的 content JSON 结构详解references/card_schema.md:interactive 发送格式与历史卡片排障;新增卡片构造优先用feishu-cli-card
消息书签(msg flag,v1.23+ 新增)
服务端称 message flag,用于把消息加 Feed 标记,把消息推上用户 Feed/书签。
对应 HTTP API POST/GET/PATCH /open-apis/im/v1/flags。需 User Access Token:list 需要 im:feed.flag:read,create/cancel 需要 im:feed.flag:write。
命令速查
feishu-cli msg flag create <message_id>— 创建消息层书签(默认--item-type default --flag-type message)feishu-cli msg flag create <message_id> --flag-type feed— feed 层书签,自动读取chat_mode判断thread/msg_threadfeishu-cli msg flag create <message_id> --item-type msg_thread --flag-type feed— feed 层书签(显式指定普通群线程)feishu-cli msg flag list [--page-size 50] [--page-token xxx]— 列当前用户的书签feishu-cli msg flag cancel <message_id> [--item-type ... --flag-type ...]— 默认尽量取消消息层 + feed 层;显式传 item/flag 时只取消指定层
关键枚举(服务端真值,绝勿按 0/1/2 顺序臆造)
CLI flag 用字符串,底层映射到 OpenAPI 整数枚举:
| 字段 | CLI 字符串 | OpenAPI 整数 | 含义 |
|---|---|---|---|
| --item-type | default | 0 | 普通消息 |
| --item-type | thread | 4 | topic-style 话题群 |
| --item-type | msg_thread | 11 | 普通群消息线程 |
| --flag-type | message | 2 | 消息层书签(默认) |
| --flag-type | feed | 1 | feed 层(侧边栏书签) |
⚠️ 反向陷阱:网上某些第三方教程(含部分 lark-cli 旧版示例)把
flag_type: 1=message / 2=feed写反了。本项目以飞书 OpenAPI 官方真值为准(1=feed / 2=message,见上表)。list命令输出里也是这套真值,写代码处理 JSON 时认上面这张表。
list命令不接受--flag-type/--item-type作为入参(list 是全量返回),只能在输出flag_items[*].flag_type字段上过滤。要看自己有哪些书签直接feishu-cli msg flag list -o json。
支持的组合(其余服务端拒绝):
default + message:消息层书签,最常见thread + feed:topic-style 话题群 feed 层msg_thread + feed:普通群消息线程 feed 层
源码引用:internal/client/flag.go:23-28(本仓库权威,对齐 lark-cli shortcuts/im 的 ItemType/FlagType 定义)。
FAQ
What does the feishu-cli-msg skill do?
飞书消息发送。发送消息(text/post/interactive 卡片等 10 种类型:text/post/image/file/audio/media/sticker/interactive/sharechat/shareuser;system 分割线 CLI 暂未直接支持,需用 feishu-cli api 透传)、回复消息、 转发/合并转发、消息加急、消息书签(flag 收藏/list/cancel)、下载消息资源(图片/文件)。 发送/回复/转发/加急默认 App Token(Bot 身份);msg flag 收藏/书签必需 User Token(im:feed.flag:read/write); msg resource-download 已登录时优先 User Token,未登录回落 App Token。 当用户明确请求通过飞书即时消息/Bot 消息发送、回复、转发、合并转发、加急、消息收藏/书签、 下载消息图片或文件时使用。邮件走 feishu-cli-mail;文档评论/共享权限走对应 skill。 注意:Reaction/Pin/获取消息详情/批量获取消息/话题回复/消息历史/搜索群聊/群聊管理, 以及消息删除(默认 App Token 用于 Bot 自撤回,可选 User Token 让管理员撤回他人) 请使用 feishu-cli-chat 技能。 发送 interactive 卡片时,先用 feishu-cli-card 构造 v2 JSON, 再回到本技能用 --msg-type interactive --content-file 发送。
How do I install feishu-cli-msg?
Run npx skills add https://github.com/riba2534/feishu-cli --skill feishu-cli-msg in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/feishu-cli-msg/ (personal) or .claude/skills/feishu-cli-msg/ (project).
Which AI agents can use feishu-cli-msg?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is feishu-cli-msg safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains feishu-cli-msg?
It is published by riba2534 in riba2534/feishu-cli. It has 855 recorded installs.
More from riba2534/feishu-cli
feishu-cli-toolkit
riba2534/feishu-cli
飞书轻量工具箱与分诊入口。仅在没有更专用 skill 时使用,主要覆盖普通电子表格、 日历/日程、任务/任务清单、基础文件/素材/评论、知识库、用户和部门查询、审批查询。 文档读写导入导出、云盘增强、多维表格、画板、消息/群聊、邮箱、搜索、权限、OAuth、 视频会议/妙记均优先使用对应 feishu-cli- 专用技能。 sheet filter-view/dropdown 优先用 feishu-cli-sheet;calendar suggestion/room-find/rsvp 优先用 feishu-cli-calendar。
feishu-cli-read
riba2534/feishu-cli
只读操作,不修改文档内容。读取飞书云文档、知识库内容或电子表格,分析文档结构。 支持普通 docx、普通 sheet、知识库 docx 和知识库 sheet。当用户请求"查看"、"阅读"、"分析"、"读取"、 "打开"、"read"、"view" 飞书文档、知识库或电子表格时使用。支持通过文档 ID、知识库 Token 或 URL 读取。 Markdown 仅作为分析中间态存放在 /tmp(不主动落地为用户文件);如需主动导出到本地路径请用 feishu-cli-export, 写入请用 feishu-cli-write。
feishu-cli-write
riba2534/feishu-cli
向飞书文档写入内容、创建新文档、新建空白文档。支持 doc import 从 Markdown 创建、 doc content-update 精准追加/覆盖/替换/插入/删除,doc add/update/delete 低层块操作, 以及图片/文件插入。当用户请求创建文档、写文档、更新文档、替换章节、插入章节、 删除章节、追加内容、覆盖文档、插入图片或文件时使用。
feishu-cli-export
riba2534/feishu-cli
将飞书文档、知识库文档或电子表格导出到本地。支持 docx/wiki/sheet 导出 Markdown, doc export 内嵌电子表格自动展开,图片/画板素材下载,以及 doc export-file 异步导出 PDF/Word/Excel。当用户请求导出文档、保存为 Markdown、导出 PDF/Word/Excel、下载文档图片、 导出表格或表格转 Markdown 时使用。本地导入请用 feishu-cli-import 或 feishu-cli-drive。
feishu-cli-import
riba2534/feishu-cli
从 Markdown 文件导入创建飞书文档。支持嵌套列表、Mermaid/PlantUML 图表自动转画板、 大表格智能处理(超过 9 行用 inserttablerow API 追加保持单 block,超过 9 列拆分保留首列)、公式、Callout 高亮块。 内置飞书侧渲染规范(references/doc-guide.md + references/mermaid-spec.md), 覆盖图表花括号/par 等语法限制、表格 9 行/列阈值、Callout 6 种颜色映射等飞书兼容性规则。 当用户请求"导入 Markdown"、"从 md 创建文档"、"从 md 文件创建文档"、"把 Markdown 转换到飞书"、 "上传 Markdown"、"Markdown 转飞书"、"md 导入"、"批量导入",或排查"飞书 Mermaid 渲染失败"、 "Callout 颜色不对"、"飞书表格被拆"、"飞书文档导入兼容性"等问题时使用。 注意:仅支持 Markdown 源文件导入为飞书文档。Markdown 表格创建电子表格请用 feishu-cli-toolkit 的 sheet import-md; DOCX/XLSX 导入为云文档请使用 feishu-cli-drive 的 drive import。
feishu-cli-board
riba2534/feishu-cli
飞书画板全能操作 · 5 种画图路径任选其一: (A) Mermaid/PlantUML 服务端渲染(思维导图/时序图/类图/饼图/流程图/甘特图,整图作为一个节点,飞书自动排版) (B) Mermaid 本地引擎 whiteboard-cli(绕开 par/参与方数等服务端限制,每个节点可点击编辑) (C) SVG 自由作图(任意视觉:飞轮/鱼骨/Dashboard/海报/插画/架构图等,每个 SVG 元素 → 1 个原生节点可单独编辑) → 使用 scripts/svgtoboard.py 把 SVG 翻译为飞书原生节点 (D) 简单 SVG 单节点装饰(图标/印章/小元素,2KB 以内 SVG) (E) 精排架构图(手写节点 JSON,绝对坐标 + 配色 + 连线 ID 引用) 当用户请求"画图/画板/whiteboard/画架构图/画流程图/画飞轮/画鱼骨/画路线图/画 Dashboard/画插画/画海报/ AI 自由作图/SVG 落画板/克隆画板/上传图片到画板/可视化/节点图/精排"时使用。 特别地,当用户反馈"右下角半截楼""zindex 错乱""节点翻倍""复杂图渲染不全""mermaid 服务端失败" 务必读 references/pitfalls.md 排障。 写类(add-board/create-notes/update/delete/clone/svg-import/upload-image/import)使用 App Token(默认 Bot 身份), 无需登录;即使用户已 auth login,写类命令仍保持 App 身份不切换。 读类(image/nodes/export-code/svg-export/lint)登录后自动用 User Token,未登录回落 App Token。 svg-export 导出整板 SVG 视觉快照(POST /export,base64 解码),对任意画板有效(不限 svg 节点), 配合 svgtoboard.py / board import 可实现「导出 → 编辑 → 回写」闭环。
Popular productivity & automation skills
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
lark-doc
open.feishu.cn
飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。
lark-base
open.feishu.cn
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。
lark-drive
open.feishu.cn
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。
lark-shared
open.feishu.cn
Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.
lark-im
open.feishu.cn
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。