360 Secure SkillHub
360 安全技能中心

emo-img — Give Your AI Emotional Expression

该 Skill 通过 Python 脚本维护本地表情包集合,支持本地优先与 Tenor 在线搜索、按名称和标签添加、从在线地址下载、列出和删除,并借助 message 工具把图片发送到聊天频道;包含 OpenClaw 专属元数据与路径。

horisky
horisky
热度 89.87
最近更新 2026-05-17 13:28:41
分类:自动化依赖:代码执行 / 读写文件 / 第三方 API应用场景:社交媒体 / 工作流 / 推荐

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add emo-img
Metadata
name
emo-img
description
Send sticker/emoji images (表情包) in chat. Search local collection or online (Tenor), download favorites, and send via any channel (WhatsApp, Discord, iMessage, Telegram). Use when the user wants to send a sticker, emoji image, meme, or 表情包.
metadata
{"openclaw":{"emoji":"😎","requires":{"bins":["python3"]}}}

emo-img — Sticker / Emoji Image Skill

Send sticker images (表情包) in chat conversations. Hybrid search: local collection first, then Tenor online.

Storage

  • Sticker collection: ~/.openclaw/stickers/
  • Index file: ~/.openclaw/stickers/index.json
  • Override with STICKER_DIR env var

Commands

Search (hybrid: local first, then online)

python3 {baseDir}/scripts/sticker.py search "开心"
python3 {baseDir}/scripts/sticker.py search "thumbs up" --limit 3

Returns JSON with local and online arrays. Local results have a file path; online results have a url.

Search local only

python3 {baseDir}/scripts/sticker.py search-local "哭"

Search online only (Tenor)

python3 {baseDir}/scripts/sticker.py search-online "excited" --limit 5

Add a local file

python3 {baseDir}/scripts/sticker.py add /path/to/sticker.gif --name "happy-cat" --tags "开心,猫,happy,cat"

Download from URL and save

python3 {baseDir}/scripts/sticker.py download "<url>" --name "thumbs-up" --tags "好的,赞,ok"

List all stickers

python3 {baseDir}/scripts/sticker.py list

Remove a sticker

python3 {baseDir}/scripts/sticker.py remove "happy-cat"

Sending Stickers

Use the message tool with the media field to send sticker images. This works for ALL channels (WhatsApp, Telegram, Discord, etc.) — no external CLI needed.

{
  "action": "send",
  "channel": "<current_channel>",
  "to": "<recipient>",
  "message": "",
  "media": "<sticker_file_path>"
}

The media field accepts local file paths directly (e.g. /Users/.../.openclaw/stickers/bocchi-shy.gif).

For online results not yet downloaded, first run download to save locally, then send the saved file path.

Workflow

  1. User says something like "发个表情包" or "send a sticker about X"
  2. Run search "<keyword>" to find matching stickers
  3. If local results exist, use the file path directly
  4. If only online results, download first with download, then use the saved file path
  5. Send via the appropriate channel (auto-detect from conversation context)
  6. Optionally ask user if they want to save an online sticker to local collection

Tips

  • Tag stickers in both Chinese and English for better search
  • Use --tags with comma-separated keywords when adding stickers
  • The Tenor demo API key has rate limits; set TENOR_API_KEY env for heavy use