Back to skills
extension
Category: OtherAPI key required

Feishu Send Image

Send images directly in Feishu chat as native image messages (not file attachments). Use when: need to send a generated image, chart, screenshot, or any loca...

personAuthor: jasonzhang2015hubclawhub

Feishu Send Image

Send local image files as native Feishu image messages via the Feishu Bot API.

Why This Skill Exists

OpenClaw's message tool with filePath, media, or buffer parameters only sends file attachments in Feishu, not inline images. This skill calls the Feishu API directly to send proper image messages.

Quick Usage

Run the script:

bash scripts/feishu_send_image.sh <image_path> <receive_id> <app_id> <app_secret> [receive_id_type]

Arguments

| Arg | Description | |-----|-------------| | image_path | Local path to image (png/jpg/gif/webp) | | receive_id | Feishu open_id (user) or chat_id (group) | | app_id | Feishu app ID from ~/.openclaw/openclaw.jsonfeishu.accounts.default.appId | | app_secret | Feishu app secret from ~/.openclaw/openclaw.jsonfeishu.accounts.default.appSecret | | receive_id_type | open_id (default) or chat_id |

Example

bash scripts/feishu_send_image.sh /tmp/chart.png \
  ou_38470740452f6083ce189b7ddec722f8 \
  cli_a92c368412f9dcb1 \
  7uM7aLqeqYqm0Fsy0IP5QhOyTBSwxlfT

Getting Credentials

Read ~/.openclaw/openclaw.json and extract:

  • channels.feishu.accounts.default.appId
  • channels.feishu.accounts.default.appSecret

The receiver's open_id comes from inbound message metadata (sender_id).

How It Works

  1. Get tokenPOST /auth/v3/tenant_access_token/internal with appId/appSecret
  2. Upload imagePOST /im/v1/images with image_type=message, returns image_key
  3. Send messagePOST /im/v1/messages with msg_type=image and the image_key

Output

On success: OK: image_key=<key> message_id=<id> On failure: prints error and exits with code 1.