跳到主要内容

lark-im 标准

飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件(支持大文件分片下载)、管理表情回复。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据时使用。

在 GitHub 打开

安装方式

cp -r skills/lark-cli/lark-im ~/.claude/skills/lark-im

把该 skill 目录放进客户端 skills 目录。不同客户端的目录可能不同,Claude Code 默认是 ~/.claude/skills/

整仓一次性获取:git clone --depth 1 https://github.com/pengfeiqiao/kunpeng.git

依赖与权限

  • 需要 API Key —— 使用前需配置相应的密钥环境变量
  • 无需联网
  • 无外部命令依赖
  • 以上为按正文与 frontmatter 自动推断的信号,仅供参考;安装前建议先阅读原文。

SKILL.md 正文

来源 pengfeiqiao/kunpeng@bf8a8ac · 许可 MIT · 内容未修改

im (v1)

CRITICAL — 开始前 MUST 先用 Read 工具读取 [../lark-shared/SKILL.md](../lark-shared/SKILL.md),其中包含认证、权限处理

Core Concepts

  • Message: A single message in a chat, identified by message_id (om_xxx). Supports types: text, post, image, file, audio, video, sticker, interactive (card), share_chat, share_user, merge_forward, etc.
  • Chat: A group chat or P2P conversation, identified by chat_id (oc_xxx).
  • Thread: A reply thread under a message, identified by thread_id (om_xxx or omt_xxx).
  • Reaction: An emoji reaction on a message.
  • Flag: A bookmark on a message or thread.

Resource Relationships

Chat (oc_xxx)
├── Message (om_xxx)
│   ├── Thread (reply thread)
│   ├── Reaction (emoji)
│   └── Resource (image / file / video / audio)
└── Member (user / bot)

Important Notes

Identity and Token Mapping

  • --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.

Sender Name Resolution with Bot Identity

When using bot identity (--as bot) to fetch messages (e.g. +chat-messages-list, +threads-messages-list, +messages-mget), sender names may not be resolved (shown as open_id instead of display name). This happens when the bot cannot access the user's contact info.

Root cause: The bot's app visibility settings do not include the message sender, so the contact API returns no name.

Solution: Check the app's visibility settings in the Lark Developer Console — ensure the app's visible range covers the users whose names need to be resolved. Alternatively, use --as user to fetch messages with user identity, which typically has broader contact access.

Card Messages (Interactive)

Card messages (interactive type) are not yet supported for compact conversion in event subscriptions. The raw event data will be returned instead, with a hint printed to stderr.

Flag Types

Flags support two layers:

  • Message-layer flag: (ItemTypeDefault, FlagTypeMessage) — regular message bookmark
  • Feed-layer flag: (ItemTypeThread/ItemTypeMsgThread, FlagTypeFeed) — thread as feed-layer bookmark

Item types for feed-layer flags:

  • ItemTypeThread (4) = thread in a topic-style chat
  • ItemTypeMsgThread (11) = thread in a regular chat

Shortcuts(推荐优先使用)

Shortcut 是对常用操作的高级封装(lark-cli im +<verb> [flags])。有 Shortcut 的操作优先使用。

Shortcut说明
[+chat-create](references/lark-im-chat-create.md)Create a group chat or topic chat; user/bot; --chat-mode grouptopic; private/public; invites users/bots; optionally sets bot manager
[+chat-list](references/lark-im-chat-list.md)List groups the current user/bot is a member of; user/bot; supports sorting, pagination, and --exclude-muted (user identity only)
[+chat-messages-list](references/lark-im-chat-messages-list.md)List messages in a chat or P2P conversation; user/bot; accepts --chat-id or --user-id, resolves P2P chat_id, supports time range/sort/pagination
[+chat-search](references/lark-im-chat-search.md)Search visible group chats by --query keyword and/or --member-ids; user/bot; e.g. look up chat_id by group name; supports type filters, sorting, pagination, and --exclude-muted (user identity only)
[+chat-update](references/lark-im-chat-update.md)Update group chat name or description; user/bot; updates a chat's name or description
[+messages-mget](references/lark-im-messages-mget.md)Batch get messages by IDs; user/bot; fetches up to 50 om_ message IDs, formats sender names, expands thread replies
[+messages-reply](references/lark-im-messages-reply.md)Reply to a message (supports thread replies); user/bot; supports text/markdown/post/media replies, reply-in-thread, idempotency key
[+messages-resources-download](references/lark-im-messages-resources-download.md)Download images/files from a message; user/bot; supports automatic chunked download for large files (8MB chunks), auto-detects file extension from Content-Type
[+messages-search](references/lark-im-messages-search.md)Search messages across chats (supports keyword, sender, time range filters) with user identity; user-only; filters by chat/sender/attachment/time, supports auto-pagination via --page-all / --page-limit, enriches results via batched mget and chats batch_query
[+messages-send](references/lark-im-messages-send.md)Send a message to a chat or direct message; user/bot; sends to chat-id or user-id with text/markdown/post/media, supports idempotency key
[+threads-messages-list](references/lark-im-threads-messages-list.md)List messages in a thread; user/bot; accepts om_/omt_ input, resolves message IDs to thread_id, supports sort/pagination
[+flag-create](references/lark-im-flag-create.md)Create a bookmark on a message or thread; user-only; defaults to message-layer flag; feed-layer flag requires explicit --item-type + --flag-type
[+flag-cancel](references/lark-im-flag-cancel.md)Cancel (remove) a bookmark. When no --flag-type is given, checks if the message is a thread root message; if so, cancels both message and feed layers
[+flag-list](references/lark-im-flag-list.md)List bookmarks; user-only; auto-enriches feed-type thread entries with message content; supports --page-all auto-pagination

API Resources

lark-cli schema im.<resource>.<method>   # 调用 API 前必须先查看参数结构
lark-cli im <resource> <method> [flags] # 调用 API
重要:使用原生 API 时,必须先运行 schema 查看 --data / --params 参数结构,不要猜测字段格式。

chats

  • create — 创建群。Identity: bot only (tenant_access_token).
  • get — 获取群信息。Identity: supports user and bot; the caller must be in the target chat to get full details, and must belong to the same tenant for internal chats.
  • link — 获取群分享链接。Identity: supports user and bot; the caller must be in the target chat, must be an owner or admin when chat sharing is restricted to owners/admins, and must belong to the same tenant for internal chats.
  • update — 更新群信息。Identity: supports user and bot.

chat.members

  • bots — 获取群内机器人列表。Identity: supports user and bot; the caller must be in the target chat and must belong to the same tenant for internal chats.
  • create — 将用户或机器人拉入群聊。Identity: supports user and bot; the caller must be in the target chat; for bot calls, added users must be within the app's availability; for internal chats the operator must belong to the same tenant; if only owners/admins can add members, the caller must be an owner/admin, or a chat-creator bot with im:chat:operate_as_owner.
  • delete — 将用户或机器人移出群聊。Identity: supports user and bot; only group owner, admin, or creator bot can remove others; max 50 users or 5 bots per request.
  • get — 获取群成员列表。Identity: supports user and bot; the caller must be in the target chat and must belong to the same tenant for internal chats.

messages

  • delete — 撤回消息。Identity: supports user and bot; for bot calls, the bot must be in the chat to revoke group messages; to revoke another user's group message, the bot must be the owner, an admin, or the creator; for user P2P recalls, the target user must be within the bot's availability.
  • forward — 转发消息。Identity: supports user and bot.
  • merge_forward — 合并转发消息。Identity: bot only (tenant_access_token).
  • read_users — 查询消息已读信息。Identity: bot only (tenant_access_token); the bot must be in the chat, and can only query read status for messages it sent within the last 7 days.

reactions

  • batch_query — 批量获取消息表情。Identity: supports user and bot.[Must-read](references/lark-im-reactions.md)
  • create — 添加消息表情回复。Identity: supports user and bot; the caller must be in the conversation that contains the message.[Must-read](references/lark-im-reactions.md)
  • delete — 删除消息表情回复。Identity: supports user and bot; the caller must be in the conversation that contains the message, and can only delete reactions added by itself.[Must-read](references/lark-im-reactions.md)
  • list — 获取消息表情回复。Identity: supports user and bot; the caller must be in the conversation that contains the message.[Must-read](references/lark-im-reactions.md)

threads

  • forward — 转发话题。Identity: supports user and bot.

images

  • create — 上传图片。Identity: bot only (tenant_access_token).

pins

  • create — Pin 消息。Identity: supports user and bot.
  • delete — 移除 Pin 消息。Identity: supports user and bot.
  • list — 获取群内 Pin 消息。Identity: supports user and bot.

权限表

方法所需 scope
chats.createim:chat:create
chats.getim:chat:read
chats.linkim:chat:read
chats.updateim:chat:update
chat.members.botsim:chat.members:read
chat.members.createim:chat.members:write_only
chat.members.deleteim:chat.members:write_only
chat.members.getim:chat.members:read
messages.deleteim:message:recall
messages.forwardim:message
messages.merge_forwardim:message
messages.read_usersim:message:readonly
threads.forwardim:message
reactions.batch_queryim:message.reactions:read
reactions.createim:message.reactions:write_only
reactions.deleteim:message.reactions:write_only
reactions.listim:message.reactions:read
images.createim:resource
pins.createim:message.pins:write_only
pins.deleteim:message.pins:write_only
pins.listim:message.pins:read

质量与来源

所属仓库
pengfeiqiao/kunpeng
仓库星标
99
最近更新
2 天前
采集时间
今天
commit
bf8a8ac8c6d3
内容指纹
sha256:616e4093572a220
文件路径
skills/lark-cli/lark-im/SKILL.md

同仓库其它 Skill

查看全部 49 个
anchor-frame-production
建立参考分工、锚定图变体、局部核验与版本记录,用于普通对话、画布和工坊的连续镜头创作。
pengfeiqiao/kunpeng 99 原文
Codex CLIMCP 客户端
blender-clay-previz
用户提到白模/白膜/运镜预演/previs 时使用。调用本机 Blender 无界面渲染极简白模场景与运镜视频,用于验证构图遮挡、空间调度与动作时机,也可作为 AI 视频生成的全能参考。
pengfeiqiao/kunpeng 99 原文
Codex CLIMCP 客户端
blender-modeling
在 Blender 中新建或修改可编辑模型、材质、灯光及场景工程。适用于产品建模、场景搭建、已有 blend 修改与渲染;纯白模运镜使用 blender-clay-previz。
pengfeiqiao/kunpeng 99 原文
Codex CLIMCP 客户端
canvas-project-manager
画布能力由 canvas 工具契约提供,本文件仅保留操作顺序和数据安全约束。
pengfeiqiao/kunpeng 99 原文
Codex CLIMCP 客户端
car-commercial-storyboard
汽车TVC、品牌片、汽车文案剧本、车辆资产与图片/视频提示词、分镜及Blender白模运镜。按人物叙事、生活观察、产品演示、造型光影等意图选择方法,维护车型身份与驾驶安全带连续性;不处理购车行情或维修问答。
pengfeiqiao/kunpeng 99 原文
Codex CLIMCP 客户端
car-model-generation
专业的汽车3D模型图片生成技能,使用Gemini API生成高质量汽车展示图片,并通过豆包AI进行质量分析和优化。 使用场景:汽车品牌宣传片、车型展示、汽车广告素材生成。 关键词:汽车模型、车型图、汽车展示图、AI生图、Gemini
pengfeiqiao/kunpeng 99 原文
Codex CLIMCP 客户端

相似 Skill

更多「办公」
opencli-adapter-author
Use when writing an OpenCLI adapter for a new site or adding a new command to an existing site. Guides end-to-end from first recon through field decoding, adapter coding, and verify. Replaces opencli-oneshot / opencli-explorer. For ad-hoc browser driving (no adapter), see opencli-browser instead; for a top-level orientation to opencli, see opencli-usage.
精选 jackwener/OpenCLI 3.0 万 原文
Gemini CLI
opencli-autofix
Automatically fix broken OpenCLI adapters when commands fail. Load this skill when an opencli command fails — it guides you through collecting a trace artifact, patching the adapter, retrying, and filing an upstream GitHub issue after a verified fix. Works with any AI agent.
精选 jackwener/OpenCLI 3.0 万 原文
Gemini CLI
opencli-browser
Use when an agent needs to drive a real Chrome window via opencli — inspect a page, fill forms, click through logged-in flows, or extract data ad-hoc. Covers the selector-first target contract, compound form fields, stale-ref handling, network capture, and the agent-native envelopes the CLI returns. Not for writing adapters — see opencli-adapter-author for that.
精选 jackwener/OpenCLI 3.0 万 原文
Gemini CLI
opencli-usage
Use at the start of any OpenCLI session — this is the top-level map of what `opencli` can do, how to discover adapters, what flags and output formats are universal, and which specialized skill to load next. Point here when an agent asks "what can opencli do?" or "how do I find the right command?".
精选 jackwener/OpenCLI 3.0 万 原文
Gemini CLI
smart-search
基于 opencli 命令的智能搜索路由器。当用户想要使用 OpenCLI、CLI 或 API 搜索、查询、查找或研究信息时,尤其是涉及指定网站、社交媒体、技术资料、新闻、购物、旅游、求职、金融或中文内容时,务必使用此 skill
精选 jackwener/OpenCLI 3.0 万 原文
Gemini CLI
deeptutor-cli
终身个性化辅导系统:根据学习者情况持续调整教学方式。
精选 HKUDS/DeepTutor 4.1 万 仓库简介
Codex CLIMCP 客户端