AivoClaw feishu-chat-history

install
source · Clone the upstream repo
git clone https://github.com/yuanyuekejiJN/AivoClaw
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/yuanyuekejiJN/AivoClaw "$T" && mkdir -p ~/.claude/skills && cp -r "$T/extraSkills/feishu-chat-history" ~/.claude/skills/yuanyuekejijn-aivoclaw-feishu-chat-history && rm -rf "$T"
manifest: extraSkills/feishu-chat-history/SKILL.md
source content

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
    tenant_access_token
    via
    POST /auth/v3/tenant_access_token/internal
  3. Fetch messages via
    GET /im/v1/messages?container_id_type=chat&container_id={chat_id}&page_size=50

Identifying the chat_id

  • If the user is asking about the current group chat, use the
    chat_id
    from the inbound metadata (
    chat:oc_xxxxx
    → 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

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