skills/feishu-cli-api/SKILL.md
飞书 OpenAPI 裸调。api GET/POST/PUT/DELETE/PATCH <path> 直接调用任意飞书 OpenAPI 接口, 覆盖 feishu-cli 尚未封装的接口(对齐 lark-cli 的 api 能力)。支持 --params(query)/--data(body JSON)/--data-file(从文件读 body)/ --as auto|user|bot 身份/--dry-run 预览/-o 二进制下载/--format/--jq。 当用户请求"调用 X API"、"裸调飞书接口"、"feishu-cli 没封装的接口怎么调"、"raw api"、 "用 api 命令发请求"、"下载飞书媒体/文件 binary"时使用。 不适用:仅查 schema 不调用(用 feishu-cli schema);已有专用命令的高频场景(用对应 feishu-cli <模块>)。
npx skillsauth add riba2534/feishu-cli feishu-cli-apiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
feishu-cli api 直接调用任意飞书 OpenAPI 接口,覆盖尚未封装成专用命令的接口。是单工具栈下替代 lark-cli api 的兜底能力。
feishu-cli:如尚未安装,请前往 riba2534/feishu-cli 获取安装方式。
feishu-cli api <METHOD> <path> [flags]
METHOD:GET | POST | PUT | DELETE | PATCH(大小写不敏感)path:完整 API 路径,如 /open-apis/im/v1/messages(前导斜杠可省略;误传完整 URL 会自动剥掉 host)| Flag | 说明 |
|------|------|
| --params '<json>' | query 参数(JSON 对象),如 '{"page_size":10}' |
| --data '<json>' / --data-file <file> | 请求体:--data 传 JSON 字符串,或 --data-file 从文件读(- 表示 stdin);二者互斥 |
| --as auto\|user\|bot | 身份:auto(User 优先 Tenant 兜底,默认)/ user(强制 User Token,需先 auth login)/ bot(强制 Tenant/应用 Token) |
| --user-access-token | 显式传 User Access Token(--as user/auto 时用) |
| --dry-run | 只打印将发送的请求(method/path/query/body/identity),不实际调用 |
| -o <file> | 写原始响应体到文件(binary-safe,适合下载类接口) |
| --format json\|pretty\|table\|ndjson\|csv | 响应渲染格式(指定后走内置渲染,覆盖默认 pretty;仅适用于 JSON 响应) |
| --jq '<expr>' | 用内置 gojq 过滤响应(无需外部 jq;仅适用于 JSON 响应) |
-o二进制下载 与--format/--jq互斥:默认 /--raw/ 纯-o走原样写文件路径(binary-safe);一旦带上--format或--jq,响应会先按 JSON 解析再渲染,二进制响应会 decode 失败并报错「响应不是合法 JSON,无法用 --format/--jq 渲染(去掉这两个 flag 可用 --raw 原样输出)」。下载媒体/文件时只用-o,不要叠加--format/--jq。
大整数精度:响应用
UseNumber解析,飞书 19 位message_id/chat_id等不会被降级丢精度。
feishu-cli schema <service> # 1. 列出该 service 的 resource.method
feishu-cli schema <service>.<resource>.<method> # 2. 查 path / 参数 / scope
feishu-cli api <METHOD> <path> ... # 3. 裸调
# GET + query + jq 过滤
feishu-cli api GET /open-apis/wiki/v2/spaces --params '{"page_size":10}' --jq '.data.items[].name'
# POST 发消息(先 dry-run 预览)
feishu-cli api POST /open-apis/im/v1/messages \
--params '{"receive_id_type":"chat_id"}' \
--data '{"receive_id":"oc_xxx","msg_type":"text","content":"{\"text\":\"hi\"}"}' --dry-run
# 请求体从文件读
feishu-cli api POST /open-apis/bitable/v1/apps/xxx/tables --data-file body.json
# 下载二进制到文件
feishu-cli api GET /open-apis/drive/v1/medias/<token>/download -o /tmp/file.bin
# 强制用户身份(访问用户私有资源)
feishu-cli api GET /open-apis/calendar/v4/calendars --as user
# 表格输出
feishu-cli api GET /open-apis/wiki/v2/spaces --jq '.data.items' --format table
api 是兜底。高频场景优先用封装好的专用命令(错误处理/参数校验/便捷 flag 更完善):消息→msg、文档→doc、多维表格→bitable、表格→sheet、日历→calendar 等。仅当某接口没有对应专用命令时用 api 裸调。
tools
往飞书文档里插入/更新/读取/删除「妙笔BOX」HTML 小组件块——飞书文档里**唯一能跑动画和可交互内容**的载体。 把一整页 HTML(CSS/JS)塞进块,在 iframe 沙箱里真实执行:CSS @keyframes 动画、ECharts/Three.js 图表、 Canvas、可拖拽力导向图、Dashboard、打字机/进度条/状态机动画等都能动。 当用户请求"飞书文档里做动画/能动的图/可交互图表/数据大屏/Dashboard/真实地图/地理飞线/3D 图表(map3D、3D 曲面、Three.js)/在飞书文档里放 ECharts 可视化/批量做一套图表演示"、"妙笔BOX"、"HTML 小组件"、 "在飞书文档里跑 ECharts/CSS 动画/JavaScript"、"嵌入网页/HTML 到飞书文档"、"飞书文档里的图怎么动起来"时使用。 注意:要"动"必须用本技能(妙笔BOX);画板(feishu-cli-board)的 SVG 节点会被服务端栅格化成静态图,不会动。
tools
飞书电子表格高级能力(筛选视图 + 筛选条件 + 下拉单元格 + 浮动图片 + 批量样式)。 filter-view CRUD 管理筛选视图,filter-view condition CRUD 写筛选条件(V3 API); dropdown set/get/update/delete 管理单元格下拉框(V2 dataValidation); image get/update/media-upload/write-image 操作浮动图片与单元格写图; batch-set-style 批量设置多范围单元格样式。 基础读写(read/write/style/add-rows/add-sheet)仍在 feishu-cli 主命令 sheet/bitable, 本 skill 专注高级能力。 当用户请求"筛选视图"、"筛选条件"、"加下拉框"、"数据验证"、"列下拉"、"浮动图片"、"插入图片"、"批量样式"时使用。
tools
飞书 OpenAPI 方法本地浏览 + 通用 API 透传调用。schema `service.resource.method` 三段式查路径/参数/scope(无需联网); `feishu-cli api <method> <path>` 直接调任意端点(v1.29+,覆盖 2500+ 未封装 API)。 当用户请求"飞书有没有 XX API"、"X API 的参数是什么"、"X 方法需要什么 scope"、 "OpenAPI 方法浏览"、"看 SDK 怎么调用"、"调一个没封装的飞书 API"时使用。 不适用:查在线最新 schema(请用 OpenAPI Explorer,本地元数据可能落后于飞书开放平台)。
tools
飞书云盘原生 Markdown 文件操作(与 doc import/export 互补)。 markdown create 上传新 .md 到云盘;markdown fetch 下载为本地 .md; markdown overwrite 用本地 .md 覆盖云盘已有文件(保 file_token 不变,分享链接持久); markdown diff 在本地比对远端最新/历史版本,不改远端。 当 doc 文档不适合(图床、密集代码块、版本管理)走 .md 原生文件路径。 Drive upload_all + 自拼 Formdata multipart(SDK 不暴露 file_token field)。 当用户请求"上传 markdown"、"下载 md"、"覆盖云盘 md"、"md diff"、"比对 markdown 版本"时使用。