feishu-send
飞书发送图片/文件/语音。用 curl 调用飞书 API 发送,比 message 工具更可靠。用于需要发送图片、文件、语音到飞书时触发。
Best use case
feishu-send is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
飞书发送图片/文件/语音。用 curl 调用飞书 API 发送,比 message 工具更可靠。用于需要发送图片、文件、语音到飞书时触发。
Teams using feishu-send should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/feishu-send/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How feishu-send Compares
| Feature / Agent | feishu-send | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
飞书发送图片/文件/语音。用 curl 调用飞书 API 发送,比 message 工具更可靠。用于需要发送图片、文件、语音到飞书时触发。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
SKILL.md Source
# Feishu Send
用 exec + curl 调用飞书 API 发送图片、文件、语音。
## 凭证读取规则
```
优先读:当前 agent 名字对应的 account 配置
防错读:如果读不到,用 main 账户
```
调用时通过环境变量注入 agent 名字:
```bash
AGENT_NAME=main
```
## 统一获取凭证
```bash
# 从 openclaw.json 读取飞书凭证
# 优先读 AGENT_NAME 对应的 account,读不到则用 main 作为 fallback
get_feishu_creds() {
local agent_name="${AGENT_NAME:-main}"
local config_file="$HOME/.openclaw/openclaw.json"
local app_id app_secret
# 尝试读取当前 agent 的 account
app_id=$(python3 -c "
import json, sys
c = json.load(open('$config_file'))
accounts = c.get('channels', {}).get('feishu', {}).get('accounts', {})
# 先尝试 agent 名
if '$agent_name' in accounts:
print(accounts['$agent_name'].get('appId', ''))
elif 'main' in accounts:
print(accounts['main'].get('appId', ''))
else:
print('')
" 2>/dev/null)
app_secret=$(python3 -c "
import json, sys
c = json.load(open('$config_file'))
accounts = c.get('channels', {}).get('feishu', {}).get('accounts', {})
if '$agent_name' in accounts:
print(accounts['$agent_name'].get('appSecret', ''))
elif 'main' in accounts:
print(accounts['main'].get('appSecret', ''))
else:
print('')
" 2>/dev/null)
echo "$app_id $app_secret"
}
# 用法:读取凭证
read -r APP_ID APP_SECRET <<< "$(get_feishu_creds)"
```
## 统一获取 Token
```bash
TOKEN=$(curl -s -X POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' \
-H 'Content-Type: application/json' \
-d "{\"app_id\":\"$APP_ID\",\"app_secret\":\"$APP_SECRET\"}" \
| python3 -c "import json,sys; print(json.load(sys.stdin)['tenant_access_token'])")
```
---
## 发送图片
### Step 1: 获取凭证
```bash
read -r APP_ID APP_SECRET <<< "$(get_feishu_creds)"
```
### Step 2: 获取 token
```bash
TOKEN=$(curl -s -X POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' \
-H 'Content-Type: application/json' \
-d "{\"app_id\":\"$APP_ID\",\"app_secret\":\"$APP_SECRET\"}" \
| python3 -c "import json,sys; print(json.load(sys.stdin)['tenant_access_token'])")
```
### Step 3: 上传图片获取 image_key
```bash
IMAGE_KEY=$(curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/images' \
-H "Authorization: Bearer $TOKEN" \
-F "image_type=message" \
-F "image=@/path/to/image.png" \
| python3 -c "import json,sys; print(json.load(sys.stdin)['data']['image_key'])")
```
### Step 4: 发送图片消息
```bash
# 发到群聊
curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id' \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"receive_id\":\"$CHAT_ID\",\"msg_type\":\"image\",\"content\":\"{\\\"image_key\\\":\\\"$IMAGE_KEY\\\"}\"}"
# 发给个人(需要 open_id)
curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id' \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"receive_id\":\"$OPEN_ID\",\"msg_type\":\"image\",\"content\":\"{\\\"image_key\\\":\\\"$IMAGE_KEY\\\"}\"}"
```
**支持格式**: JPEG, PNG, WEBP, GIF, TIFF, BMP, ICO
---
## 发送文件
### Step 1-2: 同上获取 token
### Step 3: 上传文件获取 file_key
```bash
FILE_KEY=$(curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/files' \
-H "Authorization: Bearer $TOKEN" \
-F "file_type=stream" \
-F "file_name=xxx.zip" \
-F "file=@/path/to/file.zip" \
| python3 -c "import json,sys; print(json.load(sys.stdin)['data']['file_key'])")
```
### Step 4: 发送文件消息
```bash
curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id' \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"receive_id\":\"$CHAT_ID\",\"msg_type\":\"file\",\"content\":\"{\\\"file_key\\\":\\\"$FILE_KEY\\\"}\"}"
```
---
## 发送语音
### Step 1-2: 同上获取 token
### Step 3: 上传音频获取 file_key
```bash
FILE_KEY=$(curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/files' \
-H "Authorization: Bearer $TOKEN" \
-F "file_type=opus" \
-F "file_name=xxx.opus" \
-F "file=@/path/to/audio.opus" \
| python3 -c "import json,sys; print(json.load(sys.stdin)['data']['file_key'])")
```
### Step 4: 发送语音
```bash
curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id' \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"receive_id\":\"$CHAT_ID\",\"msg_type\":\"audio\",\"content\":\"{\\\"file_key\\\":\\\"$FILE_KEY\\\",\\\"duration\\\":$DURATION}\"}"
```
---
## 完整示例
发送一张图片到飞书群:
```bash
# agent 名字(调用前设置)
AGENT_NAME=main
# Step 1: 读取凭证
read -r APP_ID APP_SECRET <<< "$(get_feishu_creds)"
# Step 2: 获取 token
TOKEN=$(curl -s -X POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' \
-H 'Content-Type: application/json' \
-d "{\"app_id\":\"$APP_ID\",\"app_secret\":\"$APP_SECRET\"}" \
| python3 -c "import json,sys; print(json.load(sys.stdin)['tenant_access_token'])")
# Step 3: 上传图片
IMAGE_KEY=$(curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/images' \
-H "Authorization: Bearer $TOKEN" \
-F "image_type=message" \
-F "image=@/tmp/screenshot.png" \
| python3 -c "import json,sys; print(json.load(sys.stdin)['data']['image_key'])")
# Step 4: 发送
CHAT_ID="oc_87d0d49f1f81f9e1b8dd1d5ad5f9ec72"
curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id' \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"receive_id\":\"$CHAT_ID\",\"msg_type\":\"image\",\"content\":\"{\\\"image_key\\\":\\\"$IMAGE_KEY\\\"}\"}"
```
## 注意事项
- ❌ 不要用 `message` 工具的发图片/文件功能 —— 会变成路径或失败
- ✅ 用 exec + curl 方式稳定可靠
- ✅ 调用前设置 `AGENT_NAME` 环境变量,不设置则默认读 main
- ✅ 自动 fallback:如果 AGENT_NAME 对应的 account 不存在,用 main 账户
- ✅ token 有有效期,不用每次操作都重新获取Related Skills
send-usdc
Send USDC to an Ethereum address or ENS name. Use when you or the user want to send money, pay someone, transfer USDC, tip, donate, or send funds to a wallet address or .eth name. Covers phrases like "send $5 to", "pay 0x...", "transfer to vitalik.eth", "tip someone", "send USDC".
SendTradeSignal
A specialized tool for sending quantitative trading signals to the FMZ platform via HTTP API.
feishu-perm-helper
一键启用飞书权限管理工具,让 OpenClaw 可以管理飞书文档/表格的协作者权限。
feishu-leave-request
Submit a leave request through Feishu (Lark). Use when the user wants to request time off, submit a leave application, or mentions taking leave.
Feishu SuperToolkit
飞书超级工具包 - 集成文件发送(含音频卡片)、日历、审批、多维表格、通讯录、考勤六大模块
feishu-voice-assistant
Sends voice messages (audio) to Feishu chats using Duby TTS.
feishu-sticker
Send images as native Feishu stickers. Features auto-upload, caching, and GIF-to-WebP conversion.
Feishu Post (RichText) Skill
Send Rich Text (Post) messages to Feishu.
Feishu Minutes (妙记) Skill
Fetch info, stats, transcript, and media from Feishu Minutes.
Feishu Message Skill
A unified toolkit for Feishu messaging operations, providing a single CLI entry point for common tasks.
feishu-memory-recall
Cross-group memory, search, and event sharing for OpenClaw Feishu agents
Feishu Group Manager
Manage Feishu group chats (settings, names, metadata).