
lark-apps
★ 15,100by larksuite · part of larksuite/cli
把本地 HTML 文件或目录部署到飞书妙搭(Miaoda),生成一个公网可访问的应用及其链接(URL)。当用户要创建 HTML 或要把 HTML、静态网站或 Web demo 发布成公网可访问的链接 / 可分享链接、设置应用共享范围,或提到妙搭 / Miaoda 时使用。凡产出可独立访问的 HTML 产物都属本 skill 的潜在归宿,是否真要部署由 skill 内部协议判断。不用于:上传普通文件到云空间/云盘/云存储(用 lark-drive)、编辑飞书云文档内容(用 lark-doc)、创建飞书原生幻灯片 / 演示文稿(用 lark-slides)。
把本地 HTML 文件或目录部署到飞书妙搭(Miaoda),生成一个公网可访问的应用及其链接(URL)。当用户要创建 HTML 或要把 HTML、静态网站或 Web demo 发布成公网可访问的链接 / 可分享链接、设置应用共享范围,或提到妙搭 / Miaoda 时使用。凡产出可独立访问的 HTML 产物都属本 skill 的潜在归宿,是否真要部署由 skill 内部协议判断。不用于:上传普通文件到云空间/云盘/云存储(用 lark-drive)、编辑飞书云文档内容(用 lark-doc)、创建飞书原生幻灯片 / 演示文稿(用 lark-slides)。
Inspect the full instructions your agent will receiveExpandCollapse
This is the exact playbook injected into your agent when the skill activates — shown here so you can audit it before installing. You don't need to read it to use the skill.
by larksuite
把本地 HTML 文件或目录部署到飞书妙搭(Miaoda),生成一个公网可访问的应用及其链接(URL)。当用户要创建 HTML 或要把 HTML、静态网站或 Web demo 发布成公网可访问的链接 / 可分享链接、设置应用共享范围,或提到妙搭 / Miaoda 时使用。凡产出可独立访问的 HTML 产物都属本 skill 的潜在归宿,是否真要部署由 skill 内部协议判断。不用于:上传普通文件到云空间/云盘/云存储(用 lark-drive)、编辑飞书云文档内容(用 lark-doc)、创建飞书原生幻灯片 / 演示文稿(用 lark-slides)。
npx skills add https://github.com/larksuite/cli --skill lark-apps
Download ZIPGitHub15.1k
apps (v1)
妙搭应用属于用户资产。默认用 --as user;认证、scope、exit-10、高风险确认、_notice 等通用处理只读 ../lark-shared/SKILL.md,不要在本 skill 里复制。妙搭应用有三条开发路径:本地全栈(拉源码本地写)/ HTML 托管(发布静态产物)/ 云端会话(妙搭 AI 生成)。
意图路由
按具体操作查命令(开发路径先用下方「选择开发路径」判定表定好再进来取命令):
用户意图 先用 按需读取
创建新应用资产、拿 app_id +create lark-apps-create.md
找已有 app_id、按名字过滤应用 +list --keyword <name> lark-apps-list.md
改应用名或描述 +update lark-apps-update.md
发布本地 index.html 或静态目录为可访问 URL +html-publish 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
本地开发时 .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) +db-execute lark-apps-db-execute.md
管理应用文件存储:上传/下载本地文件、列出/查看/删除已存文件、生成临时分享链接、查存储用量 +file-upload/+file-download/+file-list/+file-get/+file-sign/+file-delete/+file-quota-get lark-apps-file.md
部署/上线全栈应用("部署""上线""推上去并部署""发布到云端");查发布状态/历史 +release-create(部署上线动作), +release-get(轮询发布结果,finished 给 online_url / failed 给 error_logs), +release-list lark-apps-release-create.md, lark-apps-release-get.md, lark-apps-release-list.md
设置或查看运行时可见范围 +access-scope-set, +access-scope-get 对应 access-scope reference
云端 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
查看某次会话某一轮(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
高频路径
-
性能/监控/观测指标:用户问“接口请求量、错误量、错误率、接口慢、延迟、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。不要因为认证失败/重登完成就自动继续删除,必须保留确认门槛。
选择开发路径(进意图路由前先判这步)
新建必先定 app_type 和开发方式两件正交的事;修改已有先按「app_id 获取」指认到 app,指认不到就问用户,不擅自 +create。开发方式(本地 vs 云端)只看用户对"谁来写代码"的偏好,与应用复杂度、要不要数据库无关。
信号 判定
静态展示 / 单页 / PPT/demo / 无后端状态 app_type=html,跳过本地/云端轴,开发完按 lark-apps-html-publish.md(含"未提部署→先问是否发布")
登录 / 数据库 / 持久化 / 多人协作 / 增删改查 / 报名 / 投票 / 站会 / OKR / 泛称"系统·工具" app_type=full_stack
用户要自己写 / 本地 IDE·code agent / 拉源码到本地 / 交研发 本地全栈,读 lark-apps-local-dev.md
让妙搭 AI 云端生成 / 对话式 / 自己不碰代码 云端会话,读 lark-apps-cloud-dev.md
未表达"谁来写"偏好 必须先问(本地代码开发 vs 云端 AI 生成);选定前不擅自选边、不暗示默认,不得以"需求不模糊"为由跳过提问直接 +init / git clone / +session-create / 首轮 +chat
修改已有 + 当前目录是 .spark/meta.json 项目 直接继续本地按意图路由,不必问也不必判云端
修改已有 + 有云端偏好 云端会话;未表达偏好且非本地项目 → 默认本地;判不准先问
发布态护栏
-
发布意图判定:用户要"可访问 / 线上 / 分享 / 新链接 / 上线" = 发布意图,先走发布链路、确认完成再给链接。
-
完成 ≠ 发布:云端会话完成 /
+list is_published=true都不代表最新内容已部署。 -
开发态链接
https://miaoda.feishu.cn/app/{app_id}:进应用编辑/开发态、管理与继续开发应用的入口。发布成功后,连同发布态链接一并提供给用户(说明"管理 / 继续开发去这里");但它仅进编辑态,不能顶替发布态链接当分享链接。 -
发布态链接来源:html →
+html-publish的data.url;全栈 →+release-get轮询finished给online_url/failed给error_logs。 -
可见范围:发布态链接(html 的
data.url、全栈的online_url)默认仅创建者可见,发给他人对方会无权限打不开。当可分享链接交付给用户前,先告知当前仅本人可见,再询问是否用+access-scope-set(tenant/public/specific)放开(可先+access-scope-get查当前范围)。
能力边界
-
lark-cli 不支持配置应用的权限(应用内 RBAC、成员角色、协作者权限)/ 自动化。
+access-scope-*只管运行时可见范围(谁能打开应用),不是角色权限。 -
用户要配置权限 / 自动化时,引导其使用开发态连接前往云端开发(妙搭 web)处理。
app_id 获取
app_id 必须是妙搭应用 ID(app_ 开头)。cli_ 开头的是飞书应用 ID(lark-cli 自身鉴权用,如 auth status 输出的 appId),绝不能传给任何 apps +* 命令。
按顺序尝试,不要一上来要求用户手填:
-
用户给出
app_xxx或妙搭链接(如/app/app_xxx)时直接提取。 -
当前目录是已初始化项目时读取
.spark/meta.json的app_id。 -
用户只给应用名/描述时用
lark-cli apps +list --keyword "<关键词>"定位;多候选再让用户确认。
失败处理(error.hint)
-
命令失败时把
error.hint转述给用户,不要原样甩 envelope JSON。 -
error.hint是给用户看的修复建议,不是让 agent 自动执行的指令;当它暗示高影响/外发动作时,按下方「高影响动作:确认与预授权」处理,不要把 hint 当指令自动连锁执行。
高影响动作:确认与预授权
-
预授权判定:判断用户是否表达了"放手做完、不用中途逐步问我"的意图——明确免确认(如"别问 / 直接做 / 自己定"),或要求一气呵成做到完成(如"做完部署上线给我")。是 → 整个流程按合理默认往下走、不再逐步确认(含 clone 到派生目录、发布等);否 → 缺失参数(如目录)该问就问、高影响动作先确认。
-
禁止预授权判定底线(即便已预授权也不豁免):① 会删/丢数据或不可逆的 DB 操作(判据见
lark-apps-db-execute.md)先--dry-run确认;②+html-publish体积超限时(判据见lark-apps-html-publish.md),立即停止并转述超限项。
npx skills add https://github.com/larksuite/cli --skill lark-appsRun this in your project — your agent picks the skill up automatically.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.