Lark Apps
妙搭(Spark/Miaoda)应用开发与托管:应用创建、本地全栈开发、云端生成迭代、创意设计(UI mockup / 可交互原型 / 线框图 / 落地页 / 仪表盘 / 幻灯片 deck / 视觉探索)、AI相关能力和飞书平台能力或者其他外部能力集成、日志/Trace/监控指标/PV/UV 查询、环境变量管理、应用协作者与协作权限设置、应用角色与成员管理、自动化触发器(定时/记录变更/Webhook/飞书审批)。当用户要开发/新建一个系统·工具·平台·应用,或要本地开发 / 云端开发 / 修改 / 部署 / 发布 / 上线 / 拿可分享链接,或用 HTML 做页面·网站·部署到妙搭,或要设计 / design / mockup / prototype / wireframe / 做 PPT / deck / 视觉探索,或提到妙搭/Spark/Miaoda(应用运行时域名形如 *.aiforce.cloud)、应用数据库、应用文件存储、开放 API Key、可见范围、应用协作者/开发权限、应用角色/角色成员、线上日志、接口请求量、错误量、延迟、访问量、环境变量、给妙搭应用配自动化任务/定时触发/审批通过后自动触发时使用。不负责普通云盘文件上传(lark-drive)、飞书文档编辑(lark-doc)、原生幻灯片创建(lark-slides)。
- Skill ID
- larksuite/cli/lark-apps
- Publisher
- larksuite
- Repository
- cli
- Installs
- 1,165
- Files
- 56
- Synced
- Sep 16, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
larksuite/cli/lark-appsInstalls these files- SKILL.md
- creative-design/agents/assets/vision-probe.png
- creative-design/agents/fork-verifier-agent.md
- creative-design/agents/vision-probe-agent.md
- creative-design/assets/index.html
- creative-design/creative-design.md
- creative-design/references/aily.md
- creative-design/references/animated-video.md
- creative-design/references/charts.md
- creative-design/references/claude.md
- creative-design/references/codex.md
- creative-design/references/data-report.md
- creative-design/references/frontend-design.md
- creative-design/references/hi-fi-design.md
- creative-design/references/interactive-prototype.md
- creative-design/references/make-a-deck.md
- creative-design/references/visual-exposure.md
- creative-design/references/wireframe.md
- creative-design/starter-components/android-frame.jsx
- creative-design/starter-components/animations.jsx
- creative-design/starter-components/browser-window.jsx
- creative-design/starter-components/deck-stage.js
- creative-design/starter-components/design-canvas.jsx
- creative-design/starter-components/ios-frame.jsx
- creative-design/starter-components/macos-window.jsx
- creative-design/starter-components/tweaks-panel.jsx
- references/lark-apps-access-scope-get.md
- references/lark-apps-access-scope-set.md
- references/lark-apps-automation.md
- references/lark-apps-cache.md
- references/lark-apps-cloud-dev.md
- references/lark-apps-create.md
- references/lark-apps-db-execute.md
- references/lark-apps-db.md
- references/lark-apps-env-pull.md
- references/lark-apps-env.md
- references/lark-apps-export.md
- references/lark-apps-file.md
- references/lark-apps-get.md
- references/lark-apps-git-credential.md
- references/lark-apps-html-publish.md
- references/lark-apps-init.md
- references/lark-apps-list.md
- references/lark-apps-local-dev.md
- references/lark-apps-observability.md
- references/lark-apps-openapi-key.md
- references/lark-apps-plugin-install.md
- references/lark-apps-plugin-list.md
- references/lark-apps-plugin-uninstall.md
- references/lark-apps-release-create.md
- references/lark-apps-release-get.md
- references/lark-apps-release-list.md
- references/lark-apps-role.md
- references/lark-apps-session-messages-list.md
- references/lark-apps-update.md
- references/lark-apps-user-id-convert.md
What this skill tells the agent
apps (v1)
妙搭应用属于用户资产。默认用 --as user;认证、scope、exit-10、高风险确认、_notice 等通用处理只读 `../lark-shared/SKILL.md`,不要在本 skill 里复制。妙搭应用有两条开发路径:本地开发(拉源码本地写)/ 云端会话(妙搭 AI 生成)。
身份与授权
妙搭应用是用户的个人资产,统一 --as user(见开头)。已有用户身份可用时直接执行业务命令,不要为了预防权限问题主动重新登录,否则可能中断原任务并触发不必要的设备授权。仅当 CLI 明确返回未登录或缺少本域 scope 时,一次性执行:
lark-cli auth login --domain apps因缺权限失败(error.subtype == "missing_scope")时的通用处理见 `../lark-shared/SKILL.md`,同样按 --domain apps 授权;授权成功后只恢复原业务操作,不扩展任务范围。
意图路由
按具体操作查命令(开发路径先用下方「选择开发路径」判定表定好再进来取命令):
| 用户意图 | 先用 | 按需读取 |
|---|---|---|
| 创建新应用资产、拿 app_id | +create | `lark-apps-create.md` |
| 找已有 app_id、按名字过滤应用 | +list --keyword <name> | `lark-apps-list.md` |
| 查单个应用详情(类型、名称、发布状态等) | +get --app-id <app_id> | `lark-apps-get.md` |
| 改应用名或描述 | +update | `lark-apps-update.md` |
| HTML 应用 / 创意模式 — 写 HTML 页面/网站、静态页、PPT/deck、落地页、仪表盘、UI mockup、原型、线框图、视觉探索 | 加载 `creative-design/creative-design.md`(含完整开发与发布流程) | `creative-design/creative-design.md` |
| 旧版存量 HTML 应用(无 Git 管理)继续上传已有静态产物 | +html-publish(仅兼容旧链路;新建 html / 创意模式 / creative-design 产物不得使用) | `lark-apps-html-publish.md` |
开发已有应用 / 初始化本地仓库(开发方式已定为本地后;先解析 app_id,勿 +create 新建) | +init(或手动 +git-credential-init + 原生 git)。执行前必读 `lark-apps-local-dev.md`,含端到端流程和领域规则 | `lark-apps-init.md`, `lark-apps-git-credential.md` |
| 只要一份源码快照、不做本地开发;或要取别人分享给你的应用源码(你对其仓库无权限) | +export(下载 zip;不配 git 凭证、不建工作区)。要继续开发用 +init 而非本命令 | `lark-apps-export.md` |
本地开发时 .env.local 损坏/丢失,重新拉取启动期环境变量 | +env-pull | `lark-apps-env-pull.md` |
| 管理应用环境变量(查看/设置/删除) | +env-list, +env-set, +env-delete | `lark-apps-env.md` |
| 查线上日志、Trace、请求数、错误率、延迟、CPU、memory、PV/UV/访问量 | +log-list, +log-get, +trace-list, +trace-get, +metric-list, +analytics-list | `lark-apps-observability.md` |
| 看表 / 看结构 / 初始化多环境 / 导入导出数据 / 变更追溯 / 行级审计 / dev→online 发布 / 时间点恢复 / 查 DB 用量 | +db-table-list、+db-table-get、+db-env-create、+db-data-export/+db-data-import、+db-changelog-list、+db-audit-status/+db-audit-enable/+db-audit-disable/+db-audit-list、+db-env-diff/+db-env-migrate、+db-recovery-diff/+db-recovery-apply、+db-quota-get | `lark-apps-db.md` |
| 逐条执行 SQL(SELECT / DML / DDL);建表 / 改表 / 写 SQL 的平台规范 | +db-execute | `lark-apps-db-execute.md`(含「平台 SQL 规范」:审计列 / RLS / user_profile / 禁用 SQL / PG 陷阱) |
| 管理应用文件存储:上传/下载本地文件、列出/查看/删除已存文件、生成临时分享链接、查存储用量 | +file-upload/+file-download/+file-list/+file-get/+file-sign/+file-delete/+file-quota-get | `lark-apps-file.md` |
| 调试应用运行时缓存:查看/删除单个业务 key、清空指定环境缓存 | +cache-get/+cache-delete/+cache-clear | `lark-apps-cache.md` |
| 部署/上线应用("部署""上线""推上去并部署""发布到云端");查发布状态/历史 | 本地开发链路先按 `lark-apps-local-dev.md` 确认本次改动已 git commit + git push,再用 +release-create / +release-get;查历史用 +release-list | `lark-apps-local-dev.md`, `lark-apps-release-create.md`, `lark-apps-release-get.md`, `lark-apps-release-list.md` |
| 设置或查看运行时可见范围 | +access-scope-set, +access-scope-get | 对应 access-scope reference |
| 管理应用协作者(列出/添加/改权限/移除)或协作权限设置 | +member-list, +member-add, +member-update, +member-remove, +member-settings-get, +member-settings-set | 本文「应用协作者与协作权限设置」 |
| 创意模式(html)应用的评论相关操作 | 创意模式应用评论走 lark-drive 文档评论体系,读取 `../lark-drive/SKILL.md` 了解评论能力 | `../lark-drive/SKILL.md` |
管理 app_... 应用内角色、角色成员,或查询用户匹配角色 | +role-list/get/create/update/delete, +role-member-list/add/remove, +role-match-list | `lark-apps-role.md` |
| 云端 Agent 生成/迭代应用(开发方式已定为云端后) | +session-create -> +chat -> +session-get | `lark-apps-cloud-dev.md` |
| 管理妙搭应用开放 API Key(创建/查看/启停/重置/删除凭证;密钥仅 create/reset 一次性返回) | +openapi-key-list/get/create/update/enable/disable/delete/reset | `lark-apps-openapi-key.md` |
| 管理妙搭应用自动化触发器(定时/记录变更/Webhook/飞书审批四类触发器的查询/创建/更新/启停;Webhook URL·Token 一次性回显、不落盘) | +automation-list/get/create/update/enable/disable | `lark-apps-automation.md` |
| 查看某次会话某一轮(turn)的回复消息(含仍在生成中的本轮)/ 导出上一轮模型回复("这一轮回复了什么""上一轮的回复""导出某轮消息") | 先 +session-get(取 latest_turn.turn_id)-> +session-messages-list --turn-id <id>(仅 user 身份;分页用 --page-token) | `lark-apps-session-messages-list.md` |
| 外部能力(AI模型能力和飞书平台能力)集成/插件/Plugin/Capability | +plugin-install, +plugin-list, +plugin-uninstall | `lark-apps-plugin-install.md`, `lark-apps-plugin-uninstall.md`, `lark-apps-plugin-list.md` |
| 把一批 ID 在妙搭 user_id ↔ 飞书 open_id / union_id / 飞书 user_id 之间互转(例如拿到 open_id 但下游要 user_id) | +user-id-convert --convert-type <方向> --ids <id1,id2,...> | `lark-apps-user-id-convert.md` |
高频路径
- Base 到应用数据库同步:用户说“Base 同步到数据库 / 整库同步 / 多张表同步 / 批量任务重新启用 / operation-not-allowed”时,先读 `lark-apps-db.md` 的 Base 数据同步段落,再查 app_id 或处理授权。先形成计划再动手:
+db-sync-create一次只处理一张 Base 表,整库/多表必须拆成多份单表配置和多次 preview/create;batch/import 任务是一次性任务,不能重新 enable,遇 operation-not-allowed 先解释生命周期边界,再用+db-sync-get查状态/结果,持续同步要新建 streaming 任务。 - 性能/监控/观测指标:用户问“接口请求量、错误量、错误率、接口慢、延迟、CPU、内存、最近一小时/七天趋势”时,不要去当前工作区搜索监控文件,也不要询问“监控数据在哪”。先按「app_id 获取」解析应用:
lark-cli apps +list --keyword "<应用名>" --as user;拿到app_id后读 `lark-apps-observability.md`,用+metric-list。 - 请求量 + 错误量 + 延迟:请求量/错误量用
lark-cli apps +metric-list --app-id <app_id> --metric requests --since <range> --as user(不传--series会同时返回 total/error);延迟用--metric latency(不传--series会返回 p50/p99)。如果用户给了具体接口,再加--api <path-or-name>;不要臆造 group-by 参数。 - PV/UV/访问量/活跃用户:先解析
app_id,再用+analytics-list,不要误用+metric-list。 - 设置环境变量:如果用户只给应用名,仍先
+list --keyword解析 app_id;设置 online 环境且用户已经明确说“确认/直接执行”时,调用+env-set --environment online ... --yes,不要再次要求确认。回复和日志摘要里只提 key / env / app,不回显真实 value;需要传复杂值时优先用@file或 stdin。 - 删除环境变量:
+env-delete是破坏性操作。除非用户在同一轮已经明确确认删除这个 app/env/key,否则先向用户确认应用、环境、key 和删除后果;确认后再加--yes。不要因为认证失败/重登完成就自动继续删除,必须保留确认门槛。
应用协作者与协作权限设置
这组命令管理妙搭应用的开发协作者和协作策略,不等同于 +access-scope-* 的运行时访问范围,也不等同于 +role-* 的应用内业务角色。所有命令使用 app_... 应用 ID 和 --as user。不要读取或判断 app_type 来预判支持范围,直接调用对应的协作者命令。
+member-list、+member-settings-get是只读命令,需要spark:app:read。+member-add、+member-update、+member-remove、+member-settings-set是高风险写命令,需要spark:app:write。先用--dry-run核对目标、URL 和请求体;dry-run 不需要--yes。用户已确认具体应用、成员/设置及影响,或已按下方「高影响动作:确认与预授权」对整条流程明确预授权时,真实执行加--yes;否则在 dry-run 后停下请求确认。批量移除成员仍执行「禁止预授权判定底线」,不能从泛化的“直接做”推导出--yes。- 添加、更新、移除成员时必须显式提供匹配的外部 ID 类型,禁止传内部数字 ID、猜测类型或做隐式转换:用户
--member-type openid --member-id ou_...;群组--member-type openchat --member-id oc_...;部门--member-type opendepartmentid --member-id od-...。 +member-list --member-type的筛选枚举是响应对象类型user/department/chat,与写命令的 ID 类型枚举不同。可再用--role view|edit|full_access筛选。
