CLIAI 技能【免费下载链接】cliThe official Lark/飞书 CLI tool, maintained by the larksuite team — built for humans and AI Agents. Covers core business domains including Messenger, Docs, Base, Sheets, Calendar, Mail, Tasks, Meetings, and more, with 200 commands and 20 AI Agent Skills.项目地址https://gitcode.com/gh_mirrors/cli414/cli点击查看免费下载本文面向使用 lark-cli 进行妙搭Spark/Miaoda应用开发与 AI 能力集成的开发者与 AI Agent系统讲解lark-cli apps plugin-list命令的适用场景、运行前提、输出契约与源码实现原理。读完本文你将掌握如何快速核对项目已声明的插件包及其实装状态并能在declared_not_installed状态下正确衔接plugin-install完成安装。lark-cli apps plugin-list是飞书官方 CLI 工具 lark-cli 中apps域下用于列出已声明插件包及安装状态的本地命令。它属于妙搭应用「外部能力AI 模型能力与飞书平台能力集成」命令族plugin-install/plugin-list/plugin-uninstall中的只读查询成员其完整行为以lark-cli apps plugin-list --help输出的运行时命令事实为准。本文档以仓库中的 skills/lark-apps/references/lark-apps-plugin-list.md 为骨架结合 shortcuts/apps/apps_plugin_list.go 与配套测试展开说明。一、命令定位本地命令不是远端 API 命令使用plugin-list前必须建立的第一认知是它的执行模式它是一个本地命令直接读取当前目录的package.json在项目根目录下运行即可和npm的使用习惯一致无需指定任何路径参数。它不接受--app-id这一点与apps域下绝大多数命令如get、env-list、release-get等需要--app-id的远端 API 命令完全不同。plugin-list不访问任何远端接口仅做本地文件系统核验。这一差异在源码中体现得十分清晰shortcuts/apps/apps_plugin_list.go 中AppsPluginList的定义显示其Scopes为空不申请任何 scope、Risk为read只读并且命令名在路由表中被注册为plugin-list归属appsService。从 skills/lark-apps/SKILL.md 的意图路由表可以看到plugin-list与plugin-install、plugin-uninstall共同服务于「外部能力AI 模型能力和飞书平台能力集成 / 插件 / Plugin / Capability」这一用户意图是本命令族中负责「查询现状」的一环。二、何时使用核验插件声明与安装状态当出现以下场景时应优先使用plugin-list想查看当前项目声明了哪些插件包即package.json的actionPlugins字段想确认这些插件是否已实际安装即是否已存在于node_modules发现某个插件的状态为declared_not_installed需要据此判断下一步是否要执行plugin-install完成安装。换句话说plugin-list是连接「插件声明」与「插件安装」之间的状态检查工具声明发生在package.json的actionPlugins中安装发生在node_modules目录中plugin-list负责把这两处信息交叉比对后统一呈现。三、命令骨架与运行前提在项目根目录下直接运行和 npm 一样无需指定路径lark-cli apps plugin-list3.1 运行前提plugin-list的Validate阶段见 shortcuts/apps/apps_plugin_list.go做了两步前置校验解析项目路径调用pluginResolveProjectPath()当未显式传路径时默认取当前工作目录cwd。从源码shortcuts/apps/plugin_common.go可以看出该函数仅在传入非空字符串时才做控制字符校验与路径清理。校验项目目录调用pluginCheckProjectDirshortcuts/apps/plugin_common.go检查目标目录下是否存在package.json且为常规文件。若文件不存在命令会报前置条件错误并给出修复提示run lark-cli apps init to initialize the project first这意味着只有已经初始化的妙搭应用项目存在package.json才能运行本命令。尚未初始化的目录会直接收到引导提示而不是空跑一遍。3.2 命令参数plugin-list是纯查询命令注册的Flags为空见 shortcuts/apps/apps_plugin_list.go即没有业务参数。可用的参数主要是 lark-cli 的通用输出格式参数例如--format用于切换输出格式如json/pretty等表格形式。四、完整示例4.1 JSON 格式输出lark-cli apps plugin-list --format json这是官方 reference 中给出的标准示例输出结构稳定、适合脚本与 Agent 程序化解析详细契约见下一节。4.2 表格pretty格式输出lark-cli apps plugin-list --format pretty该形式将插件列表渲染为表格行实现见 shortcuts/apps/apps_plugin_list.go 的output.PrintTable调用适合人类开发者快速浏览。4.3 空声明场景当项目package.json中没有声明任何actionPlugins时命令不会报错而是输出提示信息No plugins declared in package.json actionPlugins.对应源码分支见 shortcuts/apps/apps_plugin_list.go。五、输出契约data.plugins 数组详解plugin-list的输出契约如下与 reference 文档一致并可从源码 shortcuts/apps/apps_plugin_list.go 印证data.plugins[]插件列表数组每个元素包含三个字段字段类型说明keystring插件包 key即package.json中actionPlugins的键名如test/my-pluginversionstring声明版本即actionPlugins中对应的版本值如1.0.0statusstring安装状态枚举值为installed或declared_not_installed5.1 status 两种状态的含义installed该插件包既已在package.json的actionPlugins中声明也已在node_modules中找到对应安装目录node_modules/key/package.json可读取到版本号。declared_not_installed插件包已声明但尚未安装到node_modules此时需要运行plugin-install完成安装后才能创建插件实例。状态判定逻辑在源码中非常直白shortcuts/apps/apps_plugin_list.goinstalled : pluginInstalledVersion(projectPath, key) status : declared_not_installed if installed ! { status installed }其中pluginInstalledVersionshortcuts/apps/plugin_common.go读取node_modules/key/package.json的version字段读不到或解析失败即返回空字符串从而判定为未安装。六、源码级原理插件声明与安装如何被核验plugin-list的完整执行链路Execute见 shortcuts/apps/apps_plugin_list.go可以拆解为四步解析项目路径pluginResolveProjectPath()默认取 cwd读取 package.jsonpluginReadPackageJSON(projectPath)读取并 JSON 解析项目根目录的package.json解析失败会报校验类错误invalid package.json提取 actionPluginspluginGetActionPlugins(pkg)shortcuts/apps/plugin_common.go从package.json中提取actionPlugins字段得到一个key → version的映射表该字段不存在或类型不对时返回空映射逐一比对安装状态对每个key调用pluginInstalledVersion检查node_modules中是否存在对应包据此生成status最终组装为data.plugins数组返回。6.1 插件包 ≠ npm 包这里需要特别强调一个易混淆点详见 skills/lark-apps/references/lark-apps-plugin-install.md 的说明插件包 ≠ npm 包。插件包写入package.json的actionPlugins字段由plugin-install/plugin-uninstall/plugin-list这一命令族管理npm 依赖写入package.json的dependencies字段由npm install管理。两套机制相互独立禁止用npm install代替plugin-install来安装插件包。因此plugin-list只读取actionPlugins而不关心dependencies——这也解释了为什么它的输出以actionPlugins声明为唯一数据源。6.2 Dry-Run 行为作为只读查询命令plugin-list的DryRun实现shortcuts/apps/apps_plugin_list.go会输出action: listsource: package.json actionPlugins node_modules即明确告知本次操作的数据来源便于在审计场景下确认命令不会产生任何写副作用。七、测试验证三种典型场景仓库在 shortcuts/apps/apps_plugin_list_test.go 中为plugin-list提供了三个针对性测试覆盖了命令的核心行为TestPluginList_Emptypackage.json不含actionPlugins时data.plugins返回空数组长度为 0命令不报错TestPluginList_Installed声明test/my-plugin: 1.0.0且node_modules/test/my-plugin/package.json存在时状态为installedTestPluginList_DeclaredNotInstalled声明test/missing: 1.0.0但node_modules中无对应包时状态为declared_not_installed。测试通过chdirTest临时切换工作目录并使用--format json断言输出结构恰好验证了「项目根目录运行 JSON 输出契约」这两条核心使用规则可直接作为理解命令行为的可执行文档参考。八、与相关命令配合从核验到安装的完整闭环plugin-list不是孤立命令它与命令族内其他成员构成完整工作流意图路由见 skills/lark-apps/SKILL.md命令职责plugin-list列出已声明插件包及安装状态只读核验plugin-install安装插件包--name key指定安装--version ver指定版本不传--name则批量安装actionPlugins中声明的全部插件plugin-uninstall卸载插件包典型操作闭环# 1. 查看当前声明与安装状态 lark-cli apps plugin-list --format json # 2. 发现 declared_not_installed 后安装安装后才能创建插件实例 lark-cli apps plugin-install --name plugin-key --version 1.0.0 # 3. 再次核验状态已变为 installed lark-cli apps plugin-list --format json关于具体可选插件及选型reference 建议读取应用仓库内的 Skill 文档.agents/skills/plugin-guide/SKILL.md本命令仅负责状态核验不承担选型职责。九、常见问题排查现象原因与处理报错提示package.json not found当前目录不是已初始化的妙搭应用项目按提示运行lark-cli apps init初始化或先cd到项目根目录再执行输出No plugins declared in package.json actionPlugins.项目尚未声明任何插件这是正常空态不代表命令失败状态恒为declared_not_installednode_modules中缺少对应包运行plugin-install不带--name可批量安装全部声明插件想查询远端应用数据却传了--app-idplugin-list是本地命令不接收--app-id需要查询远端应用信息请改用get --app-id app_id等远端命令十、总结lark-cli apps plugin-list以「本地文件核验」为设计核心它把package.json的actionPlugins声明与node_modules的实际安装结果交叉比对用installed/declared_not_installed两个状态直观呈现每个插件包的实装情况输出契约data.plugins[]的key/version/status稳定可解析是妙搭应用集成 AI 能力与飞书平台能力时最可靠的「现状检查」入口。配合plugin-install/plugin-uninstall即可完成插件从核验、安装到卸载的完整闭环管理。进一步深入可阅读 shortcuts/apps/apps_plugin_list.go、shortcuts/apps/plugin_common.go 及其测试 shortcuts/apps/apps_plugin_list_test.go。赞分享CLIAI 技能【免费下载链接】cliThe official Lark/飞书 CLI tool, maintained by the larksuite team — built for humans and AI Agents. Covers core business domains including Messenger, Docs, Base, Sheets, Calendar, Mail, Tasks, Meetings, and more, with 200 commands and 20 AI Agent Skills.项目地址https://gitcode.com/gh_mirrors/cli414/cli点击查看免费下载相关推荐lark-cli 妙搭应用发布状态查询apps release-get 命令完整使用指南lark cli 妙搭应用发布状态查询 apps release get 命令完整使用指南 lark cli apps release get 是官方 LCLIAI 技能Lark CLI 插件包安装实战lark-cli apps plugin-install 命令深度指南Lark CLI 插件包安装实战 lark cli apps plugin install 命令深度指南 本指南以 Lark/飞书官方 CLIlarksuCLIAI 技能lark-cli apps plugin-uninstall 实战指南妙搭应用插件包的本地卸载命令与源码实现lark cli apps plugin uninstall 实战指南妙搭应用插件包的本地卸载命令与源码实现 本文以 Lark/飞书官方 CLI larkCLIAI 技能上一篇cpp-httplib1 个头文件里的完整 C HTTP/HTTPS 库下一篇Frappe CRM部署与运维指南生产环境最佳实践创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
RxJS 4 `partition` 操作符深度解析:按谓词将一条 Observable 流一分为二 后端 【免费下载链接】RxJS The Reactive Extensions for JavaScript 项目地址: https://gitcode.com/gh_mirrors/rxj/RxJS 点击查看 免费下载 本文基于 RxJS v4(The Reactive Extensions for JavaScript)官方 API 文档与仓库源码࿰… · 2026/9/21 3:27:00
ARIS 工作流总览:从 idea 到 paper 的 13 条 pipeline 如何一次看全 ARIS 工作流总览:从 idea 到 paper 的 13 条 pipeline 如何一次看全 【免费下载链接】Auto-claude-code-research-in-sleep ARIS ⚔️ (Auto-Research-In-Sleep) — Lightweight Markdown-only skills for autonomous ML research: cross-model review loops, idea … · 2026/9/21 4:06:05
南郊网站建设报价单背后的安全防线:3个实战案例揭秘 南郊网站建设报价单背后的安全防线:3个实战案例揭秘 备案流程一头雾水?别急,南郊网站建设报价单里藏着比备案更深的坑。我见过太多老板盯着价格看,却忽略了“安全”二字。 上个月刚处理完一个 实战案例… · 2026/9/21 4:04:06
Roc 格式化器幂等性测试实战:从 issue 8851 快照看多行分发与字段访问的格式化处理 Roc 格式化器幂等性测试实战:从 issue 8851 快照看多行分发与字段访问的格式化处理 【免费下载链接】roc A fast, friendly, functional language. 项目地址: https://gitcode.com/GitHub_Trending/ro/roc
导读:本文以 Roc 编译器仓库中的快照测试… · 2026/9/21 4:04:05
TypePHP编译器API参考:程序化调用PHP AOT编译器的完整指南 TypePHP编译器API参考:程序化调用PHP AOT编译器的完整指南 【免费下载链接】typephp Compile PHP to Native Binaries 项目地址: https://gitcode.com/GitHub_Trending/ty/typephp
TypePHP 是一款用 PHP 编写的原生 AOT 编译器(tpc)&a… · 2026/9/21 4:04:05
VitePress 默认主题 Layout 指南:深入理解 doc、page、home 与自定义布局 VitePress 默认主题 Layout 指南:深入理解 doc、page、home 与自定义布局 【免费下载链接】vitepress Vite & Vue powered static site generator. 项目地址: https://gitcode.com/gh_mirrors/vi/vitepress
VitePress 通过 frontmatter 中的 layout 选项… · 2026/9/21 4:04:05
Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化 直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡… · 2026/9/21 0:02:39
Word表格编号全攻略:从列表编号到题注交叉引用 写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技… · 2026/9/21 0:02:39
从第一个站到第二个站:独立开发者的静态网站选型与落地实践 1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&… · 2026/9/20 0:00:41
agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and … · 2026/9/21 0:00:18
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,… · 2026/9/21 0:00:18