zrt-ai-lab/opencode-skills

feishu-chat-history

Fetch and summarize Feishu group chat history. Use when the user asks to read, review, or summarize messages from a Feishu group chat. "chat history", "what did the group discuss". NOT for: sending messages (use message tool), reading documents (use feishu-doc skill), or wiki operations (use feishu-wiki skill).

First seen Apr 6, 2026

Installation

$ npx skills add zrt-ai-lab/opencode-skills --skill feishu-chat-history

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from zrt-ai-lab/opencode-skills · top by installs.

npx skills add zrt-ai-lab/opencode-skills

Browse all from zrt-ai-lab/opencode-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Declared

Repository health

Stars 280
License MIT
Default branch main
Open issues 2
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents opencode

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,059 B
  • docs SUMMARY.md 431 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 44 installs

SKILL.md

Feishu Chat History

Fetch message history from a Feishu group chat and summarize or present it to the user.

When to Use

  • User asks what was discussed in a group
  • User wants a summary or review of recent messages
  • User provides a chat_id or is in a group and asks about its history

How to Fetch Messages

Use the Feishu IM API directly via Python. See references/api.md for full details.

Quick summary:

  1. Read credentials from config → channels.feishu.appId / appSecret
  2. Get tenantaccesstoken via POST /auth/v3/tenantaccesstoken/internal
  3. Fetch messages via GET /im/v1/messages?containeridtype=chat&containerid={chatid}&page_size=50

Identifying the chat_id

  • If the user is asking about the current group chat, use the chatid from the inbound metadata (chat:ocxxxxx → strip the chat: prefix to get the raw ID)
  • If the user provides a different group, ask for the chat_id

Presenting Results

Parse each message and present a clean summary:

  • Filter out msg_type=system (join/leave events) unless relevant
  • For msg_type=text: extract .body.content as JSON, get the text field
  • For msg_type=interactive: extract text nodes from the elements array
  • For msg_type=image: note as [图片]
  • Include sender name (from mentions or known bot app_ids), timestamp, and content
  • Group by thread if root_id is present
  • End with a human-readable summary of topics discussed

Pagination

If hasmore=true, fetch more pages using pagetoken. Default: fetch 1 page (50 messages). Ask user if they want more.