Install
openclaw skills install feishu-file-uploadUpload and send local files to Feishu chats. Requires Feishu app credentials (app_id/app_secret) in ~/.openclaw/openclaw.json. Use when user asks to send/share/upload files (CSV, PDF, Excel, images, ZIP) to Feishu. Supports chat_id (groups), open_id/user_id (users), and email recipients.
openclaw skills install feishu-file-uploadUpload local files to Feishu Drive and send as file messages to chats or users.
media parameter in message tool instead (no need for this skill)python scripts/upload_to_feishu.py /path/to/file.csv oc_xxxxxx --type chat_id
python scripts/upload_to_feishu.py /path/to/file.pdf ou_xxxxxx --type open_id
python scripts/upload_to_feishu.py /path/to/file.zip user@example.com --type email
export OPENCLAW_CHAT_ID=oc_xxxxxx
python scripts/upload_to_feishu.py /path/to/file.csv --env
~/.openclaw/openclaw.json (channels.feishu.appId/appSecret)file_keyfile_key to target chat/user| Argument | Required | Default | Description |
|---|---|---|---|
file_path | Yes | - | Absolute path to local file |
receive_id | Yes* | - | Recipient ID (chat_id, open_id, user_id, or email) |
--type | No | chat_id | Recipient type: chat_id, open_id, user_id, email |
--env | No | false | Get receive_id from OPENCLAW_CHAT_ID env var |
*Not required if --env is used
| Type | Example | Use Case |
|---|---|---|
chat_id | oc_06a6b40e03e98e41c8aebcbed8b09871 | Group chats (default) |
open_id | ou_b0f83ea276761ab10ebb3f4f277453b8 | Individual user (recommended) |
user_id | 123456 | Individual user (by user_id) |
email | user@example.com | Send to email address |
From Feishu message metadata:
{
"conversation_label": "oc_06a6b40e03e98e41c8aebcbed8b09871"
}
→ receive_id = oc_06a6b40e03e98e41c8aebcbed8b09871, type = chat_id
From sender info:
{
"sender_id": "ou_b0f83ea276761ab10ebb3f4f277453b8"
}
→ receive_id = ou_b0f83ea276761ab10ebb3f4f277453b8, type = open_id
requests library: pip install requestsopenclaw.jsonBot needs these permissions in Feishu Developer Console:
Required for file upload:
im:resource:upload - Upload files (preferred)im:resource - Read and upload filesRequired for sending messages:
im:message - Send messages to chatsim:resource:upload or im:resourceQuick link: https://open.feishu.cn/app/cli_a94a21db99385bd8/auth?q=im:resource:upload,im:resource
All file types supported by Feishu Drive:
| Category | Extensions |
|---|---|
| Documents | PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX |
| Images | JPG, PNG, GIF, WEBP |
| Archives | ZIP, RAR, 7Z |
| Code/Text | TXT, MD, JSON, CSV, XML, PY, JS |
| Media | MP3, MP4, WAV (auto-converted to OPUS) |
Script handles:
# Test with a small file to a group chat
python scripts/upload_to_feishu.py /tmp/test.txt oc_xxxxxx --type chat_id
# Test sending to yourself (find your open_id from message metadata)
python scripts/upload_to_feishu.py /tmp/test.pdf ou_xxxxxx --type open_id
im:resource:upload or im:resource permissionchat_id starts with oc_open_id starts with ou_user_id is numericemail must be valid email formatIf script fails, user can manually:
openclaw.json (local only)| Feature | This Skill | Message Tool media |
|---|---|---|
| Documents (PDF, CSV, etc.) | ✅ Supported | ❌ Not supported |
| Images | ✅ Supported | ✅ Supported (easier) |
| Videos | ✅ Supported | ✅ Supported (easier) |
| File size limit | 30MB | Varies by platform |
| Complexity | 2 API calls | 1 API call |
Recommendation: Use media parameter for images/videos, use this skill for documents and other files.