nexu is an open-source desktop client that connects an OpenClaw AI agent to messaging services such as WeChat, Feishu, Slack, and Discord. It is for people who want to chat with their agent from those channels using their own model credentials while keeping data on their computer, and the catalogue entries support its agent workflows.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add nexu-io/nexu --skill feishu-im-readgit clone --depth 1 https://github.com/nexu-io/nexuWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/nexu-io/nexu/feishu-im-read)<a href="https://agentmods.dev/skills/nexu-io/nexu/feishu-im-read"><img src="https://agentmods.dev/badge/skills/nexu-io/nexu/feishu-im-read/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/nexu-io/nexu/feishu-im-read"><img src="https://agentmods.dev/badge/skills/nexu-io/nexu/feishu-im-read.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00176 | $0.02275 |
| Opus 5 | $0.00088 | $0.01137 |
| Sonnet 5 | $0.00035 | $0.00455 |
| Haiku 4.5 | $0.00018 | $0.00228 |
Grade A, and why
feishu-im-read scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
1 near-identical copy found in the catalogue:
- feishu-im-read — 95% identical, 11 lines differ
How it starts
The opening of the file, as written. The whole thing — 175 lines — stays where its author put it; the contents beside it link to each section on GitHub.
飞书 IM 消息读取
执行前必读
- 该 Skill 中的所有消息读取工具均以用户身份调用,只能读取用户有权限的会话
feishu_im_user_get_messages中open_id和chat_id必须二选一- 消息中出现
thread_id时,根据用户意图判断是否用feishu_im_user_get_thread_messages读取话题内回复 - 以用户身份读取后,如果消息内容中出现资源标记时,用
feishu_im_user_fetch_resource下载,需要message_id+file_key+type
快速索引:意图 → 工具
| 用户意图 | 工具 | 必填参数 | 常用可选 |
|---|---|---|---|
| 获取群聊/单聊历史消息 | feishu_im_user_get_messages | chat_id 或 open_id(二选一) | relative_time, start_time/end_time, page_size, sort_rule |
| 获取话题内回复消息 | feishu_im_user_get_thread_messages | thread_id(omt_xxx) | page_size, sort_rule |
| 跨会话搜索消息 | feishu_im_user_search_messages | 至少一个过滤条件 | query, sender_ids, chat_id, relative_time, start_time/end_time, page_size |
| 下载消息中的图片 | feishu_im_user_fetch_resource | message_id, file_key(img_xxx), type="image" | - |
| 下载消息中的文件/音频/视频 | feishu_im_user_fetch_resource | message_id, file_key(file_xxx), type="file" | - |
核心约束
1. 时间范围:确保消息覆盖完整
当用户没有明确指定时间范围时,根据用户意图推断合适的 relative_time,确保返回的消息能完整覆盖用户关心的内容。用户明确指定时间时直接使用用户的值。
2. 分页:根据需要翻页获取更多结果
page_size范围 1-50,默认 50- 返回结果中
has_more=true时,可使用page_token继续获取下一页 - 根据用户需求判断是否需要翻页:需要完整结果时继续翻页,浏览概览时第一页通常够用
3. 话题回复:主动展开话题获取上下文
获取历史消息时,返回的消息中如果包含 thread_id 字段,推荐主动获取话题的最新 10 条回复(page_size: 10, sort_rule: "create_time_desc")以提供更完整的上下文。
| 场景 | 行为 |
|---|---|
| 获取历史消息并需要理解上下文(默认) | 对发现的 thread_id 调用 feishu_im_user_get_thread_messages 获取最新 10 条回复 |
| 用户要求"完整对话"、"详细讨论"、"看看回复" | 获取话题全部回复(page_size: 50, sort_rule: "create_time_asc"),需要时翻页 |
| 用户只浏览消息概览 / 用户明确说不看回复 | 跳过话题展开 |
注意:话题消息不支持时间过滤(飞书 API 限制),只能通过分页获取。
4. 跨会话消息搜索
feishu_im_user_search_messages 支持跨所有会话搜索消息:
| 参数 | 说明 |
|---|---|
query |
搜索关键词,匹配消息内容 |
sender_ids |
发送者 open_id 列表 |
chat_id |
限定搜索范围的会话 ID |
mention_ids |
被@用户的 open_id 列表 |
message_type |
消息类型:file / image / media |
sender_type |
发送者类型:user / bot / all(默认 user) |
chat_type |
会话类型:group / p2p |
搜索结果每条消息额外包含 chat_id、chat_type(p2p/group)、chat_name。单聊消息还有 chat_partner(对方 open_id 和名字)。
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 175 lines · 176 tokens per session scan A 792520fdf549
feishu-im-read is a skill published in the GitHub repository nexu-io/nexu (3,266 stars, last pushed 4mo ago), licensed MIT. It adds 176 tokens to every session and 2,275 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
slack-tools
Slack workspace management and automation specialist.
notion
Notion workspace management and content creation specialist.
claude-to-im
Bridge THIS Claude Code or Codex session to Telegram, Discord, Feishu/Lark, QQ, or WeChat so the user can chat with Claude from their phone. Use for: setting up, starting, stopping, or diagnosing the claude-to-im bridge daemon; forwarding Claude replies to a messaging app; any phrase like "claude-to-im", "bridge"…
discovery-question-form
Structured clarification form for unresolved material requirements.
setup-slack-channel
Use for the PROVIDER half of getting a locally running CopilotKit Channels agent to answer in Slack, when no Slack app exists yet — setting up a Channels bot in Slack for the first time, creating the Slack app and its tokens, attaching it to a managed Intelligence Channel, or when a Channel reports setuprequired, sits…
copilotkit-channels
Use for the CODE half of a managed Intelligence Channel with Slack or Microsoft Teams: customising the Channel a CLI-scaffolded project already ships, or — for a project the CLI did not generate — writing the Channel declaration, the long-running host, and the awaited activation call. Teams provider setup is in scope…