← Back to Skills Marketplace
deadblue22

Feishu Message Reader

by deadblue · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
493
Downloads
0
Stars
3
Active Installs
1
Versions
Install in OpenClaw
/install feishu-msg-reader
Description
Fetch Feishu message content by message_id, with optional thread context. Activate when: needing to read the content of a specific Feishu message by its mess...
README (SKILL.md)

Feishu Message Fetcher

Fetch any Feishu message content by message_id using the IM API, with optional thread context.

Known Limitation

Interactive cards (msg_type: interactive): The Feishu GET message API (/im/v1/messages/{id}) only returns fallback/degraded text in body.content, not the full card JSON. This is a Feishu platform limitation — there is no API to retrieve the rendered card structure after sending.

Workaround: Use --thread to fetch the entire thread context. The interactive card is usually a reply to a text/post message that contains the actual content. Reading the thread gives you the full picture.

Usage

# Fetch a single message
python3 scripts/fetch_message.py \x3Cmessage_id>

# Fetch with thread context (root message + all replies in thread)
python3 scripts/fetch_message.py \x3Cmessage_id> --thread

# Raw API response
python3 scripts/fetch_message.py \x3Cmessage_id> --raw

Auth

Automatic — reads appId/appSecret from ~/.openclaw/openclaw.json. Alternatively set FEISHU_APP_ID + FEISHU_APP_SECRET env vars, or pass --token \x3Ctenant_access_token>.

Output

JSON with: message_id, msg_type, sender_id, sender_type, chat_id, create_time, root_id, parent_id, content (parsed).

With --thread: adds thread array (all messages in the same thread, sorted chronologically) and thread_count.

Typical Workflow

When you encounter [Interactive Card] in a replied-to message:

  1. Get the message_id from inbound metadata (has_reply_context, parent message info)
  2. Run fetch_message.py \x3Cparent_message_id> --thread
  3. The thread context will contain the text/post messages with actual content
  4. Use that content to fulfill the user's request
Usage Guidance
This skill appears to do what it claims: it calls Feishu's API and needs Feishu credentials. Before installing or using it: (1) confirm you trust the skill source since it will read ~/.openclaw/openclaw.json if present (or use env vars or an explicit --token) — if you don't want it reading that file, provide a tenant_access_token via --token or set FEISHU_APP_ID/FEISHU_APP_SECRET in a controlled environment; (2) review the small Python script yourself (it's included) if you have any doubt; (3) be aware it will make network calls only to open.feishu.cn (no other endpoints observed); (4) if you want least privilege, create a Feishu app/credentials scoped only to the required workspace and avoid storing unrelated secrets in the OpenClaw config.
Capability Analysis
Type: OpenClaw Skill Name: feishu-msg-reader Version: 1.0.0 The feishu-msg-reader skill is designed to fetch message content and thread context from the official Feishu API (open.feishu.cn). The Python script (scripts/fetch_message.py) correctly handles authentication by reading credentials from the local OpenClaw configuration or environment variables and contains no evidence of data exfiltration, unauthorized execution, or malicious prompt injection.
Capability Assessment
Purpose & Capability
Name/description match the code and instructions. The script calls Feishu open-apis endpoints to fetch messages and thread context, which is exactly what the skill says it does.
Instruction Scope
SKILL.md and the script instruct the agent to read FEISHU_APP_ID/FEISHU_APP_SECRET env vars or ~/.openclaw/openclaw.json (OpenClaw config) or accept a --token. That file access is documented in the SKILL.md. No instructions or code read other system files or shell history; network calls go only to the Feishu API base URL.
Install Mechanism
There is no install spec (instruction-only plus a small Python script). No external downloads, package installs, or archive extraction are performed.
Credentials
The only secrets involved are Feishu credentials (app_id/app_secret or a tenant_access_token), which are necessary for the API. The script looks in ~/.openclaw/openclaw.json under channels.feishu for these values — this is proportional but worth noting because it reads a local config file that may contain credentials.
Persistence & Privilege
The skill does not request permanent/always-on inclusion, does not modify other skills or system-wide settings, and does not persist new credentials. Autonomous invocation is enabled by default (normal) but not combined with other concerning behavior.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install feishu-msg-reader
  3. After installation, invoke the skill by name or use /feishu-msg-reader
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release — general-purpose Feishu message fetcher (succeeds feishu-interactive-card). Supports all msg_types: text, post, interactive (fallback), image, merge_forward. Includes thread context retrieval.
Metadata
Slug feishu-msg-reader
Version 1.0.0
License MIT-0
All-time Installs 3
Active Installs 3
Total Versions 1
Frequently Asked Questions

What is Feishu Message Reader?

Fetch Feishu message content by message_id, with optional thread context. Activate when: needing to read the content of a specific Feishu message by its mess... It is an AI Agent Skill for Claude Code / OpenClaw, with 493 downloads so far.

How do I install Feishu Message Reader?

Run "/install feishu-msg-reader" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Feishu Message Reader free?

Yes, Feishu Message Reader is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Feishu Message Reader support?

Feishu Message Reader is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Feishu Message Reader?

It is built and maintained by deadblue (@deadblue22); the current version is v1.0.0.

💬 Comments