跳转到正文
报告库
用途分类 / 数据分析

Lark Im Skill 安全审计

作者说它能做什么(原文)

飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。

第三方安全检查结论

先别安装或运行

已检查文件
61
发现的风险
5
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。发现 1 项风险
中风险

Markdown 中的远程图片会触发自动网络下载并重新上传到飞书

原文依据:6 处
发现了什么

发送或回复 Markdown 时,CLI 会自动访问其中的 http/https 图片 URL,再把响应内容上传到飞书。若 Markdown 来自转发的文档或不可信消息,单次“发送这段内容”的批准可能同时授权了用户没有注意到的外部请求和文件复制。所示材料未说明私网地址阻断或域名允许列表。

为什么需要注意

外部站点可获知请求时间和运行环境网络地址;若运行环境可访问内部 URL,返回内容还可能被复制到飞书消息中。失败只会移除图片并警告,可能不易被收件人察觉。

发送或回复 Markdown 时,远程图片 URL 会被 CLI 下载,再上传到飞书;这确实增加了对外网络请求和内容复制。虽然发送前要求确认收件人、内容和身份,但材料未显示会单独确认远程抓取,也未说明私网地址阻断或域名白名单。用户可要求禁用远程图片解析、先预览 URL,或仅允许已上传的 `img_xxx`。

references/lark-im-messages-send.md:49来自说明文档打开原文件
The shortcut does all of the following before sending:1. Forces `msg_type=post`2. Resolves remote Markdown images like `![x](https://...)` by downloading and uploading them first3. Normalizes the Markdown for Feishu post rendering4. Wraps the result as:
查看另外 5 个位置
references/lark-im-messages-send.md:76来自说明文档打开原文件
- Local paths in Markdown image syntax like `![x](./a.png)` are **not** supported and will not be auto-uploaded.- Remote URLs (`https://...`) will be auto-downloaded and uploaded at runtime; if the download or upload fails, the image is removed with a warning.
references/lark-im-messages-reply.md:171来自说明文档打开原文件
- Media flags accept an existing key (`img_xxx` / `file_xxx`), an `http://` or `https://` URL, or a local file path.- Local paths must be relative to the current working directory and stay within it after resolving `..` and symlinks.- Absolute paths such as `/tmp/photo.png` are rejected. Run the command from the file's directory and pass `./photo.png`, or copy the file into the current directory first.- `--audio` sends a voice message and accepts only Opus audio (`.opus` or Ogg Opus `.ogg`) for local paths and URLs. For `mp3`, `wav`, or other non-Opus audio, convert to `.opus` before using `--audio`, or use `--file` to send the original audio as an attachment.
SKILL.md:79来自说明文档打开原文件
When sending content fetched from a Lark doc as a message, fetch the doc with --doc-format im-markdown, then send it as a message using the --markdown format. The fetched content is already in markdown; in any content-forwarding scenario, keep the fetched original text and send it in the --markdown format. Note: if the doc contains a cite tag with type="user", keep it as-is and do not strip the tag.
references/lark-im-messages-send.md:11来自说明文档打开原文件
Messages sent by this tool are visible to other people. Before calling it, you **must** confirm with the user:1. The recipient (which person or which group)2. The message content3. The sending identity (user or bot)**Do not** send messages without explicit user approval.
references/lark-im-messages-send.md:74来自说明文档打开原文件
- Excess blank lines are compressed.- Already-uploaded `img_xxx` image keys are the most reliable Markdown image input.- Local paths in Markdown image syntax like `![x](./a.png)` are **not** supported and will not be auto-uploaded.- Remote URLs (`https://...`) will be auto-downloaded and uploaded at runtime; if the download or upload fails, the image is removed with a warning.
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 2 项风险
高风险

卡片回调可把密码式输入和完整表单值暴露到监听进程输出

原文依据:6 处
发现了什么

卡片输入组件支持 `password` 类型,而表单提交会把全部字段放进 `form_value`。监听流程把每个事件作为 stdout JSON 行立即交给代理处理,因此密码、个人信息或审批备注可能出现在终端日志、代理上下文和运行历史中。

为什么需要注意

若卡片收集凭据、令牌或其他敏感信息,这些值可能被具有终端或代理日志访问权的人看到;更新令牌本身也可在30分钟内用于修改卡片。

输入组件允许 `password` 类型;表单提交会把所有字段集中放入 `form_value`。回调监听器把每个事件作为 stdout JSON 立即处理,因此若卡片收集密码或其他敏感内容,这些值可能进入监听进程输出和代理上下文。材料没有说明脱敏。用户应避免用此卡片收集密码,并要求作者对敏感字段做禁止、脱敏和日志过滤。

references/card/components/input.md:27来自说明文档打开原文件
| `label_position` | 否 | String | top | `top` / `left`(窄屏自动转 top) || `input_type` | 否 | String | text | `text` / `multiline_text`(多行,回调含 `\n`) / `password` || `rows` | 否 | Number | 5 | 多行时默认行数 |
查看另外 5 个位置
references/lark-im-card-action-reply.md:42来自说明文档打开原文件
| `timezone` | string | User timezone, e.g. `Asia/Shanghai`; only populated for date/time picker interactions || `form_value` | string (JSON) | All form field values as JSON string, keyed by component `name`; only present when a button inside a form container is clicked || `input_value` | string | Input text; only for standalone `input` components (not inside a form) || `option` | string | Selected value for standalone single-select: `select_static`, `select_person`, `overflow`, `date_picker`, `picker_time`, `picker_datetime` |
references/lark-im-card-action-reply.md:101来自说明文档打开原文件
When a `card.action.trigger` event arrives (**each stdout JSON line is one event — process it immediately**):
references/lark-im-card-action-reply.md:37来自说明文档打开原文件
| `host` | string | `im_message` (chat card) or `im_top_notice` (top banner) || `token` | string | Delayed-update token; valid 30 min, max 2 uses || `action_tag` | string | Component type that was triggered (see decision table) |
references/card/lark-im-card-create.md:131来自说明文档打开原文件
**form 提交统一回调(按钮用 `form_action_type: "submit"`,无需 behaviors):**- form 内所有表单组件的值通过 `action.form_value` 一次性回传
references/lark-im-card-action-reply.md:99来自说明文档打开原文件
## Agent workflowWhen a `card.action.trigger` event arrives (**each stdout JSON line is one event — process it immediately**):
中风险

普通消息读取会默认扩大到表情和最多 500 条话题回复

原文依据:3 处
发现了什么

读取一批消息时,Skill 默认额外查询表情;mget 和聊天消息列表还会对每个带 thread_id 的消息抓取回复,累计默认上限为 500。用户只要求查看一页或某条消息时,这会读取明显更多的同事对话,并要求额外的表情读取权限。

为什么需要注意

更多群聊内容、回复参与者和互动记录会进入 CLI 输出及代理上下文,增加敏感工作信息被记录、总结或误用的范围。

消息读取快捷命令默认额外查询表情;其中 mget 和聊天消息列表还会自动读取话题回复,默认每话题最多 50 条、每页累计最多 500 条。这可能超出“查看某条/一页消息”的直观范围,并需要表情读取权限。用户可要求使用 `--no-reactions`,并要求作者提供关闭话题自动展开或设置更小上限的选项。

references/lark-im-message-enrichment.md:7来自说明文档打开原文件
- **`reactions`** — populated from `im.reactions.batch_query` as `{counts, details}`. The field is only attached when the server actually returns data; messages with no reactions omit it. Replies inside `thread_replies` are enriched alongside their parent (collected into the same id set), so outer and inner messages follow identical semantics. The id set is split into batches of <= 20 (server-side cap) and the batches are dispatched with bounded concurrency (up to 4 in flight), so high-N pulls — e.g. page 50 + ~500 expanded thread replies = 550 ids → ⌈550 / 20⌉ = **28 batches** — finish in a few round-trips instead of serializing into tens of seconds.- **`update_time`** — emitted only when `updated == true` (message was actually edited). The server echoes `update_time == create_time` for unedited messages too, but the CLI gates that output away so consumers don't misread every message as "edited".- **Opt-out** — each shortcut accepts `--no-reactions` to skip the extra round-trip when the caller only needs message bodies.
查看另外 2 个位置
references/lark-im-message-enrichment.md:13来自说明文档打开原文件
`+messages-mget` and `+chat-messages-list` also auto-expand thread replies: any returned message that carries a `thread_id` triggers a fetch of that thread's replies, which are attached as a `thread_replies` array on the host. Fetches across distinct threads run with bounded concurrency (up to 4 in flight). Two caps gate the result:- **`perThread` (default 50)** — max replies fetched for any single thread.- **`totalLimit` (default 500)** — max cumulative replies across all threads on the page.
references/lark-im-message-enrichment.md:39来自说明文档打开原文件
The default enrichment requires `im:message.reactions:read`, already declared in each shortcut's `UserScopes` / `BotScopes` (or `Scopes` for the search command), so the framework's pre-flight check surfaces a `missing_scope` error before the request is sent. Bots that were registered before this scope was added need an incremental authorization in the Feishu developer console; users can run:
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 2 项风险
中风险

取消标记的默认操作会同时删除两个层级,而不只是用户看到的一个书签

原文依据:5 处
发现了什么

省略 `--flag-type` 时,命令总会删除消息层标记,并在可识别聊天类型时再删除 Feed 层标记。这个默认范围比单纯“取消这条消息的书签”更宽,而且文档还建议不要通过列表验证结果。

为什么需要注意

用户可能无意中同时失去消息书签和 Feed/话题层书签,改变个人消息整理状态;由于服务端把不存在的标记也当成功,返回成功不能说明原先删除了哪一层。

省略 `--flag-type` 的活动默认行为确实会尽力取消消息层和 Feed 层两个标记,而不是只取消一个。即使服务端对不存在的标记按幂等方式处理,这仍可能删除用户原本想保留的另一层标记;文档还不建议列表验证。用户可明确要求 `--flag-type message` 或 `feed`,并要求执行前说明将影响的层级。

references/lark-im-flag-cancel.md:13来自说明文档打开原文件
**When no `--flag-type` is specified, the shortcut performs best-effort double-cancel**: the message-layer flag is always removed; the feed-layer flag is also removed when the chat type can be determined (otherwise a warning is printed on stderr and the feed layer is skipped). The server handles cancel requests for non-existent flags idempotently, so this is safe.
查看另外 4 个位置
references/lark-im-flag-cancel.md:40来自说明文档打开原文件
| `--message-id <om_xxx>` | Required | Message ID || `--flag-type <name>` | No | `message` or `feed`; **when omitted, best-effort double-cancel of both layers** || `--item-type <name>` | No | `default\|thread\|msg_thread`; required when `--flag-type feed` |
references/lark-im-flag-cancel.md:55来自说明文档打开原文件
- **Do not call +flag-list for verification**: If the cancel API returns success, the flag is removed. Calling +flag-list to verify is expensive (requires full pagination) and unnecessary.
references/lark-im-flag-cancel.md:9来自说明文档打开原文件
A message can have flags on both layers simultaneously:- Message layer: `(default, message)`- Feed layer: `(thread, feed)` or `(msg_thread, feed)` depending on chat type**When no `--flag-type` is specified, the shortcut performs best-effort double-cancel**: the message-layer flag is always removed; the feed-layer flag is also removed when the chat type can be determined (otherwise a warning is printed on stderr and the feed layer is skipped). The server handles cancel requests for non-existent flags idempotently, so this is safe.
references/lark-im-flag-cancel.md:39来自说明文档打开原文件
|------|------|------|| `--message-id <om_xxx>` | Required | Message ID || `--flag-type <name>` | No | `message` or `feed`; **when omitted, best-effort double-cancel of both layers** || `--item-type <name>` | No | `default\|thread\|msg_thread`; required when `--flag-type feed` || `--as user` | Required | Currently only supports user identity |
中风险

机器人建群流程默认把当前用户加入群,即使请求未明确要求成员

原文依据:4 处
发现了什么

建群指南要求机器人流程先按姓名或邮箱搜索当前用户,并默认把该用户加入新群,只有明确说“不要加我”或“仅机器人群”才省略。这把未指定成员的建群请求扩展成了联系人查询和成员变更。

为什么需要注意

用户的群成员身份会暴露给群内其他参与者,并可能收到消息或通知;联系人搜索也需要额外目录访问。如果用户只是要求应用创建一个群,该默认行为可能违反预期。

机器人建群指导要求先按姓名或邮箱查询当前用户的 open_id,并默认将其加入新群;只有用户明确拒绝时才省略。这会把未指定成员的建群请求扩大为联系人查询和成员变更,也会让新群对该用户可见。用户可明确要求“仅机器人群/不要加我”,并要求作者将成员添加改为明确同意后执行。

references/lark-im-chat-create.md:76来自说明文档打开原文件
1. **Get the current user's open_id:** Run `lark-cli contact +search-user --query "<name or email>"` to retrieve it.2. **Create the group — by default include the current user:**
查看另外 3 个位置
references/lark-im-chat-create.md:77来自说明文档打开原文件
1. **Get the current user's open_id:** Run `lark-cli contact +search-user --query "<name or email>"` to retrieve it.2. **Create the group — by default include the current user:**   ```bash   lark-cli im +chat-create --name "<group name>" \     --users "<current user open_id>" --as bot   ```   **Default behavior:** Always add the current user to the group, unless the user explicitly says "do not add me" or "bot-only group" — only then omit `--users`.
references/lark-im-chat-create.md:48来自说明文档打开原文件
# Preview the request without creating anythinglark-cli im +chat-create --name "My Group" --dry-run```
references/lark-im-chat-create.md:74来自说明文档打开原文件
Bot may fail to invite users who are mutually invisible to it during group creation (error 232043). To avoid this, use the **two-step flow** below instead of passing other users' open_ids in `--users`.1. **Get the current user's open_id:** Run `lark-cli contact +search-user --query "<name or email>"` to retrieve it.2. **Create the group — by default include the current user:**
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

6 个说明模块

该 Skill 通过 lark-cli 以用户令牌或机器人令牌操作飞书消息、群成员、群设置、文件和个人 Feed 数据;身份选择会决定它代表最终用户还是应用执行。

查看原文
SKILL.md:44来自说明文档打开原文件
- `--as user` means **user identity** and uses `user_access_token`. Calls run as the authorized end user, so permissions depend on both the app scopes and that user's own access to the target chat/message/resource.- `--as bot` means **bot identity** and uses `tenant_access_token`. Calls run as the app bot, so behavior depends on the bot's membership, app visibility, availability range, and bot-specific scopes.
SKILL.md:45来自说明文档打开原文件
- `--as user` means **user identity** and uses `user_access_token`. Calls run as the authorized end user, so permissions depend on both the app scopes and that user's own access to the target chat/message/resource.- `--as bot` means **bot identity** and uses `tenant_access_token`. Calls run as the app bot, so behavior depends on the bot's membership, app visibility, availability range, and bot-specific scopes.- If an IM API says it supports both `user` and `bot`, the token type changes who the operator is. The same API can succeed with one identity and fail with the other because owner/admin status, chat membership, tenant boundary, or app availability are checked against the current caller.

发送和回复文档明确要求在执行前确认收件人、内容和发送身份,并提供 dry-run;这是对公开通信操作的明确确认控制。

查看原文
references/lark-im-messages-send.md:11来自说明文档打开原文件
Messages sent by this tool are visible to other people. Before calling it, you **must** confirm with the user:1. The recipient (which person or which group)2. The message content3. The sending identity (user or bot)
references/lark-im-messages-send.md:17来自说明文档打开原文件
**Do not** send messages without explicit user approval.

消息读取不仅返回正文:默认还查询表情,并可自动展开话题回复;附件下载则是显式开启并写入当前目录下的专用文件夹。

查看原文
references/lark-im-message-enrichment.md:13来自说明文档打开原文件
`+messages-mget` and `+chat-messages-list` also auto-expand thread replies: any returned message that carries a `thread_id` triggers a fetch of that thread's replies, which are attached as a `thread_replies` array on the host. Fetches across distinct threads run with bounded concurrency (up to 4 in flight). Two caps gate the result:
references/lark-im-message-enrichment.md:24来自说明文档打开原文件
`+chat-messages-list`, `+messages-mget`, and `+threads-messages-list` accept an **opt-in** `--download-resources` flag. It is **off by default** — when omitted, output and the request count are identical to before (no `resources` block, no extra round-trips).

交互卡片回调通过机器人 WebSocket 接收,事件包含操作者、会话、输入/表单值和更新令牌;卡片更新会向飞书 API 发送完整的新卡片。

查看原文
references/lark-im-card-action-reply.md:37来自说明文档打开原文件
| `host` | string | `im_message` (chat card) or `im_top_notice` (top banner) || `token` | string | Delayed-update token; valid 30 min, max 2 uses || `action_tag` | string | Component type that was triggered (see decision table) || `action_value` | string | Developer-defined value on the component; serialized to JSON string || `action_name` | string | `name` attribute of the component || `timezone` | string | User timezone, e.g. `Asia/Shanghai`; only populated for date/time picker interactions || `form_value` | string (JSON) | All form field values as JSON string, keyed by component `name`; only present when a button inside a form container is clicked || `input_value` | string | Input text; only for standalone `input` components (not inside a form) || `option` | string | Selected value for standalone single-select: `select_static`, `select_person`, `overflow`, `date_picker`, `picker_time`, `picker_datetime` |
references/lark-im-card-action-reply.md:128来自说明文档打开原文件
```bashlark-cli api POST /open-apis/interactive/v1/card/update --as bot \  --data '{"token":"<token>","card":<new_card_json>}'```
从这里开始 · 工作说明SKILL.md
lark-im
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。

文件引用关系图

40 处引用
哪些文件发起引用引用了什么
连线表示真实的文件引用,不是运行顺序。点击节点可高亮相关连线,并查看具体文件和原文位置。虚线表示还有文件需要定位。
文件与检查记录61 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文
  • references/card/lark-im-card-create.md已纳入全文
  • references/lark-im-card-action-reply.md已纳入全文
  • references/lark-im-chat-create.md已纳入全文
  • references/lark-im-chat-list.md已纳入全文
  • references/lark-im-chat-members-list.md已纳入全文
  • references/lark-im-chat-messages-list.md已纳入全文
  • references/lark-im-chat-search.md已纳入全文
  • references/lark-im-chat-update.md已纳入全文
  • references/lark-im-feed-group-list-item.md已纳入全文
  • references/lark-im-feed-group-list.md已纳入全文
  • references/lark-im-feed-group-query-item.md已纳入全文
  • references/lark-im-feed-groups.md已纳入全文
  • references/lark-im-feed-shortcut-create.md已纳入全文
  • references/lark-im-feed-shortcut-list.md已纳入全文
  • references/lark-im-feed-shortcut-remove.md已纳入全文
  • references/lark-im-flag-cancel.md已纳入全文
  • references/lark-im-flag-create.md已纳入全文
  • references/lark-im-flag-list.md已纳入全文
  • references/lark-im-message-enrichment.md已纳入全文
  • references/lark-im-message-read-status.md已纳入全文
  • references/lark-im-messages-edit.md已纳入全文
  • references/lark-im-messages-mget.md已纳入全文
  • references/lark-im-messages-reply.md已纳入全文
  • references/lark-im-messages-resources-download.md已纳入全文
  • references/lark-im-messages-search.md已纳入全文
  • references/lark-im-messages-send.md已纳入全文
  • references/lark-im-reactions.md已纳入全文
  • references/lark-im-threads-messages-list.md已纳入全文
  • references/card/components/button.md已纳入全文
  • references/card/components/chart.md已纳入全文
  • references/card/components/checker.md已纳入全文
  • references/card/components/collapsible_panel.md已纳入全文
  • references/card/components/column_set.md已纳入全文
  • references/card/components/date_picker.md已纳入全文
  • references/card/components/div.md已纳入全文
  • references/card/components/form.md已纳入全文
  • references/card/components/header.md已纳入全文
  • references/card/components/hr.md已纳入全文
  • references/card/components/img_combination.md已纳入全文
  • references/card/components/img.md已纳入全文
  • references/card/components/input.md已纳入全文
  • references/card/components/interactive_container.md已纳入全文
  • references/card/components/markdown.md已纳入全文
  • references/card/components/multi_select_person.md已纳入全文
  • references/card/components/multi_select_static.md已纳入全文
  • references/card/components/overflow.md已纳入全文
  • references/card/components/person_list.md已纳入全文
  • references/card/components/person.md已纳入全文
  • references/card/components/picker_datetime.md已纳入全文
  • references/card/components/picker_time.md已纳入全文
  • references/card/components/recycling_container.md已纳入全文
  • references/card/components/select_img.md已纳入全文
  • references/card/components/select_person.md已纳入全文
  • references/card/components/select_static.md已纳入全文
  • references/card/components/table.md已纳入全文
  • references/lark-im-chat-identity.md已纳入全文
  • references/card/card-2.0-schema.md已纳入全文
  • references/card/lark-im-card-style.md已纳入全文
  • references/card/resource/colors.md已纳入全文
  • references/card/resource/icons.md已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明
  • references/card/card-2.0-schema.md配套文件
  • references/card/components/button.md配套文件
  • references/card/components/chart.md配套文件
  • references/card/components/checker.md配套文件
  • references/card/components/collapsible_panel.md配套文件
  • references/card/components/column_set.md配套文件
  • references/card/components/date_picker.md配套文件
  • references/card/components/div.md配套文件
  • references/card/components/form.md配套文件
  • references/card/components/header.md配套文件
  • references/card/components/hr.md配套文件
  • references/card/components/img.md配套文件
  • references/card/components/img_combination.md配套文件
  • references/card/components/input.md配套文件
  • references/card/components/interactive_container.md配套文件
  • references/card/components/markdown.md配套文件
  • references/card/components/multi_select_person.md配套文件
  • references/card/components/multi_select_static.md配套文件
  • references/card/components/overflow.md配套文件
  • references/card/components/person.md配套文件
  • references/card/components/person_list.md配套文件
  • references/card/components/picker_datetime.md配套文件
  • references/card/components/picker_time.md配套文件
  • references/card/components/recycling_container.md配套文件
  • references/card/components/select_img.md配套文件
  • references/card/components/select_person.md配套文件
  • references/card/components/select_static.md配套文件
  • references/card/components/table.md配套文件
  • references/card/lark-im-card-create.md配套文件
  • references/card/lark-im-card-style.md配套文件
  • references/card/resource/colors.md配套文件
  • references/card/resource/icons.md配套文件
  • references/lark-im-card-action-reply.md配套文件
  • references/lark-im-chat-create.md配套文件
  • references/lark-im-chat-identity.md配套文件
  • references/lark-im-chat-list.md配套文件
  • references/lark-im-chat-members-list.md配套文件
  • references/lark-im-chat-messages-list.md配套文件
  • references/lark-im-chat-search.md配套文件
  • references/lark-im-chat-update.md配套文件
  • references/lark-im-feed-group-list-item.md配套文件
  • references/lark-im-feed-group-list.md配套文件
  • references/lark-im-feed-group-query-item.md配套文件
  • references/lark-im-feed-groups.md配套文件
  • references/lark-im-feed-shortcut-create.md配套文件
  • references/lark-im-feed-shortcut-list.md配套文件
  • references/lark-im-feed-shortcut-remove.md配套文件
  • references/lark-im-flag-cancel.md配套文件
  • references/lark-im-flag-create.md配套文件
  • references/lark-im-flag-list.md配套文件
  • references/lark-im-message-enrichment.md配套文件
  • references/lark-im-message-read-status.md配套文件
  • references/lark-im-messages-edit.md配套文件
  • references/lark-im-messages-mget.md配套文件
  • references/lark-im-messages-reply.md配套文件
  • references/lark-im-messages-resources-download.md配套文件
  • references/lark-im-messages-search.md配套文件
  • references/lark-im-messages-send.md配套文件
  • references/lark-im-reactions.md配套文件
  • references/lark-im-threads-messages-list.md配套文件

代码和说明中提到的操作

连接外部网站
SKILL.md:40来自说明文档打开原文件
Prefer CLI-returned links: use `chat_app_link` to open joined conversations, `message_app_link` to open messages, and `share_link` to invite others to groups. If manually building a joined-conversation AppLink, use `https://<applink_host>/client/chat/open?openChatId=<oc_xxx>`, never `chatId=<oc_xxx>` or `lark://...chat_id=<oc_xxx>`.
SKILL.md:246来自说明文档打开原文件
| `chat.moderation.update` | `im:chat:moderation:write_only` || `chat.join_requests.list` | `im:chat.membership_application:read` || `chat.join_requests.handle` | `im:chat.membership_application:write` |
SKILL.md:247来自说明文档打开原文件
| `chat.join_requests.list` | `im:chat.membership_application:read` || `chat.join_requests.handle` | `im:chat.membership_application:write` || `+messages-read-status` | user: `im:message:readonly` (recommended), `im:message`, or `im:message:get_as_user` |
运行命令
SKILL.md:137来自说明文档打开原文件
```bashlark-cli schema im.<resource>.<method>   # 调用 API 前必须先查看参数结构
references/card/lark-im-card-create.md:101来自说明文档打开原文件
```bash# 发送到群聊
references/lark-im-card-action-reply.md:89来自说明文档打开原文件
Once the listener is running, check whether your agent runtime supports background eventmonitoring (i.e. can receive and process stdout lines from a running subprocess whilecontinuing to respond to the user). If it does, prompt the user:
读取文件
references/lark-im-messages-edit.md:45来自说明文档打开原文件
- **`--set-attachments` is a replace, not an append:** the flag values become the final `files` array. Send/reply's `--attachment` merges; edit's `--set-attachments` replaces.- **Mutually exclusive with `--content` carrying files:** when `--content` already contains a `files` array, `--set-attachments` and `--clear-attachments` are rejected — declare the attachment zone either via `--content` or via the attachment flags, not both. Use `--markdown` (which never emits a `files` array) or a `--content` without `files` together with the attachment flags.- The server fills name/size/mime/is_folder from file service metadata; the client does not (and cannot) override the display name.
references/lark-im-messages-send.md:200来自说明文档打开原文件
> **Mutual exclusivity rule:** `--text`, `--markdown`, `--content`, and `--image`/`--file`/`--video`/`--audio` cannot be used together. Media flags are also mutually exclusive with each other. `--attachment` cannot be combined with a `--content` that already contains a `files` array (the attachment zone is declared either via `--content` or via `--attachment`, not both).>
读取了多少行
5,909
文件校验值(用于核对版本)
640cc3e364856c6d4d62960f9b3e213eec61b6c43fb84d0bbe4262d3f20f3ac4