Feishu Media Delivery
by @zhy2015
Reliably deliver generated images and videos to Feishu/Lark users and chats. Use when an agent already has a local image/video result and must send it to Fei...
clawhub install feishu-media-deliveryπ About This Skill
name: feishu-media-delivery description: Reliably deliver generated images and videos to Feishu/Lark users and chats. Use when an agent already has a local image/video result and must send it to Feishu without guessing protocol details. Handles Feishu image messages (upload -> image_key -> msg_type=image), Feishu video/media messages (upload -> file_key -> msg_type=media), and fallback delivery patterns for multimodal generation agents.
Feishu Media Delivery
Use this skill as the last-mile delivery layer for multimodal agents.
It does not generate content. It only makes sure already-generated files are sent to Feishu with the correct protocol.
What this skill is for
Use this skill when you already have a generated result and need to deliver it to a Feishu user/chat.
Typical cases:
Hard rules
Images
For images, do not send the local file as plain text or guess a generic attachment format.Correct flow:
1. Upload image to Feishu IM resource API
2. Get image_key
3. Send message with msg_type=image
Use:
scripts/send-image.mjsVideos
For mp4 videos, do not send them asfile messages.Correct flow:
1. Upload mp4 to Feishu IM file API
2. Get file_key
3. Send message with msg_type=media
Use:
scripts/send-media.mjsRequired environment
The scripts expect:
FEISHU_APP_IDFEISHU_APP_SECRET_PATH or default secret file at ~/.openclaw/secrets/feishu_app_secretDefault secret path:
~/.openclaw/secrets/feishu_app_secretReceive ID assumptions
The bundled scripts default to receive_id_type=open_id.
Use them directly when the target is a Feishu user open_id like:
ou_xxxIf you need group delivery later, extend the script to accept chat_id and switch receive_id_type.
Commands
Send image to a Feishu user
cd scripts
node send-image.mjs /path/to/image.jpg
Example:
cd scripts
node send-image.mjs ou_xxx /tmp/result.jpg
Send mp4 video to a Feishu user
cd scripts
node send-media.mjs /path/to/video.mp4 mp4 5000
Arguments:
mp4Example:
cd scripts
node send-media.mjs ou_xxx /tmp/result.mp4 mp4 5000
Output expectations
A successful send should return Feishu success payloads such as:
code: 0msg: successDo not assume transport success only from local script execution. Check the returned Feishu response.
Fallback policy
Image fallback
If real Feishu image sending fails, report that image delivery failed. Do not silently pretend the image was delivered.Video fallback
If Feishu media sending fails, fallback to sending a direct link if one exists. State clearly that this is a fallback.Recommended agent usage
For a multimodal content agent, use this skill after generation:
send-image.mjssend-media.mjsThis keeps protocol details out of the model prompt and reduces failure risk for weaker models.