skills/feishu-cli-schema/SKILL.md
飞书 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,本地元数据可能落后于飞书开放平台)。
npx skillsauth add riba2534/feishu-cli feishu-cli-schemaInstall 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 schema —— 本地查询 OpenAPI 方法的 path/动词/参数/scope/文档链接(纯本地,无需 Token / 无需网络)feishu-cli api —— 直接调用任意飞书 OpenAPI 端点(v1.29+,自动鉴权 + 错误码翻译,覆盖未封装的 2500+ 端点)典型工作流:schema list 发现 → schema get 看参数 + scope → feishu-cli auth check/login 补 scope → feishu-cli api 调用。
feishu-cli:如尚未安装,请前往 riba2534/feishu-cli 获取安装方式。
<service>.<resource>.<method>| 段 | 含义 | 示例 |
|----|------|------|
| service | 业务域 | im / docs / drive / bitable / calendar / vc / mail / wiki / approval / sheets / slides / task / attendance / minutes |
| resource | 资源(可含 .,按最长前缀匹配) | messages / events / records / chat.members |
| method | 动作 | create / get / list / update / delete / patch |
按路径深度自动分发:
schema 无参数 → 列出所有 serviceschema <service> → 列出该 service 下所有 resource.methodschema <service>.<resource> → 列出 resource 下的所有 methodschema <service>.<resource>.<method> → method 详情(含 path / 参数 / scope / docUrl)编译期 embed 的 internal/registry/meta_data.json(约 690KB),与 auth check 等模块共用同一份元数据。当前覆盖 12 个 service:approval / attendance / calendar / drive / im / mail / minutes / sheets / slides / task / vc / wiki。
feishu-cli schema
# 等价:
feishu-cli schema list
输出表格:name | version | resources 数 | title。
feishu-cli schema im # 列出 im 域全部 resource.method
feishu-cli schema list --service im # 等价(推荐用 list,语义更清楚)
feishu-cli schema list --service im --format json
pretty 输出按 resource 分组、列 HTTP verb + method 名 + description;json 输出扁平 {service, resource, method, path, httpMethod, description} 列表,方便 AI Agent 二次处理。
feishu-cli schema im.messages # messages 资源下所有 method
feishu-cli schema im.chat.members # 含点号的 resource(最长前缀匹配)
feishu-cli schema im.messages.delete
feishu-cli schema im.messages.delete --format json
pretty 输出包含:
/open-apis/im/v1/messages/{message_id})path / query / required 标记 + 类型 + 描述 + example)tenant (bot) / user(指明支持哪种 Token)| flag | 作用 | 适用 |
|------|------|------|
| --format pretty(默认) | 人类可读,表格 + 缩进字段树 | 终端阅读 |
| --format json | 原始 JSON(不转义 HTML) | AI Agent 解析、脚本拼装 |
| --service <name> | 仅 schema list 子命令,过滤 service | 等价 schema <service> |
1. 找飞书有没有某个 API
feishu-cli schema list --service drive | grep -i comment
2. 拼调用前查参数
feishu-cli schema im.chats.create
# 然后用 feishu-cli api 或 feishu-cli chat create 调用
3. AI Agent 拿 JSON 推断调用
feishu-cli schema sheets.spreadsheets.create --format json
4. 确认某方法的 scope 要求
feishu-cli schema vc.meeting.get
# 看 Identity / Scopes 行即可
feishu-cli api <method> <path> 是 v1.29+ 的通用 OpenAPI 透传命令,配合 schema 形成完整闭环。
# Step 1: schema 查 path + scope + token 类型
feishu-cli schema im.chats.create
# 输出: POST /open-apis/im/v1/chats
# Identity: tenant (bot)
# Scopes: im:chat
# Step 2: scope 不够时补
feishu-cli auth check --scope "im:chat"
feishu-cli auth login --scope "im:chat" # 缺则补
# Step 3: 直接调(无需写代码 / 无需 curl)
feishu-cli api POST /open-apis/im/v1/chats \
--data '{"name":"测试群","description":"by feishu-cli api"}' \
--as bot
feishu-cli api 关键 flag| Flag | 用途 |
|---|---|
| --params '<json>' | Query 参数 |
| --data '<json>' | Body(POST/PUT/PATCH) |
| --data-file <path> | Body 从文件读(- 表示 stdin) |
| --as bot\|user\|auto | 强制身份;auto = user 优先回退 bot |
| --dry-run | 仅打印请求,不实际调 |
| --format json\|pretty\|table\|ndjson\|csv | 响应渲染格式(指定后走内置渲染,覆盖默认 pretty) |
| --jq '<expr>' | 内置 gojq 过滤响应(无需外部 jq) |
| --raw | 原样输出(默认 pretty JSON) |
| --include-headers | stderr 打印响应头 |
| --output <file> / -o | 写入文件而非 stdout(-o 二进制下载与 --format/--jq 互斥,见 feishu-cli-api skill) |
| --timeout <seconds> | 自定义超时(默认 30s) |
feishu-cli api 收到飞书业务错误时会自动打印中文解决方案,覆盖:
auth check --scopehttps://open.feishu.cn / larksuite.com / larkoffice.com 前缀/open-apis/ 前缀?query=string 到 query 参数#fragment# 这几种等价:
feishu-cli api GET /open-apis/authen/v1/user_info --as user
feishu-cli api GET /authen/v1/user_info --as user
feishu-cli api GET https://open.feishu.cn/open-apis/authen/v1/user_info --as user
feishu-cli api GET 'https://xxx.feishu.cn/open-apis/authen/v1/user_info?foo=bar#hash' --as user
feishu-cli-shared skill 的关系如要让其他工具(curl/Python)复用 token 而不通过本命令,用 feishu-cli auth token --as user/bot 导出 token 字符串(见 feishu-cli-auth skill)。
schema im.messages.delete.foo → 路径过深: ...(多余片段: foo)。多写一层不会被静默吞掉。im.chat.members.create 会匹配 resource = chat.members、method = create,不必担心拆错。schema list 里没列出,说明本地元数据未收录,请去飞书 OpenAPI Explorer 查在线最新版(或本项目对应的专用 feishu-cli <模块> 命令通常都已封装好)。< / > / & 保留原样,便于直接吞进 jq / yq 管道。| 需求 | 该用什么 |
|------|---------|
| 调 API 而且本项目有对应业务命令 | feishu-cli <模块> 对应命令(msg / doc / bitable / drive…)—— 体验更好 |
| 调 API 但没对应业务命令 / 想直接走 OpenAPI | 本 skill 介绍的 feishu-cli api <method> <path>(v1.29+)|
| 给 curl/Python 拿 token | feishu-cli auth token --as user/bot(详见 feishu-cli-auth skill) |
| 查在线最新 schema、本地没收录 | 飞书 OpenAPI Explorer |
| 调"埋藏 API"(飞书文档站未收录) | 见 feishu-cli-toolkit/references/embedded-api-discovery.md,已知 6 个埋藏 API |
| 申请 scope / 登录拿 User Token | /feishu-cli-auth(auth check --scope 预检、auth login --domain --recommend 按业务域申请) |
| 发消息/文档/卡片等具体业务 | /feishu-cli-msg / /feishu-cli-read / /feishu-cli-card 等专用技能 |
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
飞书 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 <模块>)。
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
飞书云盘原生 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 版本"时使用。