← Back to Skills Marketplace
yuan-huicheng

Ali Feishu Sender

by yuan-huicheng · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
100
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install ali-feishu-sender
Description
Send multimedia content to Feishu (Lark) via API. Use when: (1) sending images, audio, video, rich text, or cards to Feishu users/groups, (2) uploading media...
README (SKILL.md)

Feishu Media Sender

Send multimedia messages to Feishu with proper formatting: inline images, voice bubbles, video players, rich text, and cards.

Dependencies

  • ffmpeg at D:\ffmpeg\bin\ffmpeg.exe (for audio conversion, video fix)
  • ffprobe at D:\ffmpeg\bin\ffprobe.exe (for duration detection)
  • Python 3.7+
  • Feishu app credentials (pre-configured in script defaults)

Quick Reference

Run the script at scripts/feishu_media.py:

import sys; sys.path.insert(0, r'\x3Cskill_dir>/scripts'); from feishu_media import *

Available Functions

Function Message Type Key Features
send_text(text) text Plain text
send_image(filepath) image Inline embed, auto-detect mime
send_audio(filepath) audio Voice bubble, auto→opus, auto duration
send_video(filepath, cover_image=None) media Inline player, faststart, auto duration
send_rich_text(title, elements) post Rich text with embedded media
send_card(title, elements) interactive Card with header color

All functions accept optional: open_id, token, app_id, app_secret.

Key Rules (learned from testing)

  1. Audio: Must be opus format, must include duration (ms). Auto-converts non-opus via ffmpeg.
  2. Video: Must upload as file_type=mp4, must include duration (ms). Script auto-applies -movflags +faststart.
  3. Video message type: Use msg_type=media (not video), content uses file_key + optional image_key for cover.
  4. Image in video: image_key is the cover thumbnail. Without it, video has no preview frame.
  5. Rich text media: Use {'tag': 'media', 'file_key': '...', 'image_key': '...'} as an independent paragraph.
  6. File upload types: opus (audio), mp4 (video), stream (generic file), pdf, doc, xls, ppt.

Example: Send MiniMax content to Feishu

# Image
send_image('minimax-output/kitten.png')

# TTS voice bubble (auto converts mp3→opus)
send_audio('minimax-output/greeting.mp3')

# Video with cover (auto faststart + duration)
send_video('minimax-output/kitten_video.mp4', cover_image='minimax-output/kitten.png')

# Rich text with video
send_rich_text('阿离的报告', [
    [{'tag': 'text', 'text': '一舞剑气动四方~'}],
    [{'tag': 'media', 'file_key': 'file_xxx', 'image_key': 'img_xxx'}],
])

CLI Usage

python scripts/feishu_media.py text "Hello"
python scripts/feishu_media.py image photo.png
python scripts/feishu_media.py audio greeting.mp3
python scripts/feishu_media.py video clip.mp4 --cover thumb.png
Usage Guidance
Before installing or using: 1) Don’t hand over Feishu app_id/app_secret unless you trust the skill — the script will use these to request a tenant token and then upload files to Feishu. Prefer supplying a short-lived token if possible. 2) Verify and, if needed, correct the ffmpeg/ffprobe paths — the code defaults to D:\ffmpeg\bin\ which is Windows-specific and may not exist; ffmpeg is required for audio/video conversion. 3) Note the registry metadata omits the env vars and binary dependencies declared in SKILL.md/code — ask the publisher to correct the manifest so required credentials and binaries are explicit. 4) Review the script in a safe environment (e.g., sandbox or isolated VM) with non-sensitive test files to confirm behavior. 5) Be aware the tool will read local media files and upload them to Feishu — do not use with private data unless you intend to store/send it to your Feishu tenant. 6) If you need higher assurance, request the publisher to (a) document exact env vars, (b) remove hard-coded paths or make them configurable, and (c) sign or publish the package from a known source so you can track updates.
Capability Analysis
Type: OpenClaw Skill Name: ali-feishu-sender Version: 1.0.0 The skill is a legitimate utility for sending multimedia content to the Feishu (Lark) platform via its official API (open.feishu.cn). It uses subprocess calls to ffmpeg and ffprobe for media processing (audio conversion and video optimization) and handles authentication via standard environment variables (FEISHU_APP_ID, FEISHU_APP_SECRET), with no evidence of malicious intent, unauthorized data exfiltration, or obfuscation in scripts/feishu_media.py or the SKILL.md instructions.
Capability Assessment
Purpose & Capability
The code implements Feishu media upload and messaging endpoints (images, audio→opus conversion, mp4 faststart, rich text, cards) which matches the skill description — functionality is coherent with the stated purpose. However the SKILL registry lists no required env vars/binaries while SKILL.md and the script expect Feishu credentials and ffmpeg/ffprobe (Windows path D:\ffmpeg\bin), which is an inconsistency.
Instruction Scope
Runtime instructions and the script focus on reading local media files, converting/inspecting them via ffmpeg/ffprobe, obtaining a tenant access token from Feishu, uploading files/images, and sending messages to Feishu APIs. There are no instructions to read unrelated system files, contact unexpected external endpoints, or exfiltrate data outside the Feishu APIs.
Install Mechanism
This is an instruction-only skill with a single Python script and no install spec, so nothing is downloaded or installed by the skill itself. That lowers install risk. The script expects external binaries (ffmpeg/ffprobe) to exist on the host.
Credentials
Registry metadata claims no required environment variables, but the script reads FEISHU_APP_ID, FEISHU_APP_SECRET, and FEISHU_OPEN_ID from the environment (and will call the token endpoint if no token is provided). The SKILL.md also expects ffmpeg/ffprobe at a specific Windows path. Requesting Feishu app credentials is reasonable for this purpose, but the registry should declare them. The mismatch is a practical and security concern (users may unknowingly provide credentials).
Persistence & Privilege
The skill does not request persistent/always-on privileges (always:false) and does not modify other skills or system-wide settings. It performs network calls only to documented Feishu API endpoints.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ali-feishu-sender
  3. After installation, invoke the skill by name or use /ali-feishu-sender
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of ali-feishu-sender. - Send multimedia (images, audio, video, rich text, interactive cards) to Feishu (Lark) users or groups via API. - Supports inline images, native voice bubbles (opus+duration), inline video players (mp4+duration+cover), and rich text with embedded media. - Automatically handles media format requirements (e.g., audio to opus, video faststart, duration extraction). - Provides functions and CLI to send content and upload media to Feishu. - Designed for posting generated content (e.g., MiniMax images, audio, video) to Feishu easily.
Metadata
Slug ali-feishu-sender
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Ali Feishu Sender?

Send multimedia content to Feishu (Lark) via API. Use when: (1) sending images, audio, video, rich text, or cards to Feishu users/groups, (2) uploading media... It is an AI Agent Skill for Claude Code / OpenClaw, with 100 downloads so far.

How do I install Ali Feishu Sender?

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

Is Ali Feishu Sender free?

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

Which platforms does Ali Feishu Sender support?

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

Who created Ali Feishu Sender?

It is built and maintained by yuan-huicheng (@yuan-huicheng); the current version is v1.0.0.

💬 Comments