← Back to Skills Marketplace
horisky

emo-img — Give Your AI Emotional Expression

by Tianyu Jiang · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
368
Downloads
1
Stars
1
Active Installs
1
Versions
Install in OpenClaw
/install 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...
README (SKILL.md)

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 "\x3Curl>" --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": "\x3Ccurrent_channel>",
  "to": "\x3Crecipient>",
  "message": "",
  "media": "\x3Csticker_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 "\x3Ckeyword>" 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
Usage Guidance
This skill appears to do what it says: search local stickers, query Tenor, download images, and send them via the agent. Before installing, note: - The skill will create and write files to ~/.openclaw/stickers (or STICKER_DIR) — pick a directory you are comfortable with. - Downloads come from external URLs (Tenor or user-supplied). Only download/trust images from sources you trust. Maliciously crafted image files can be a vector for exploits in vulnerable image parsers—use caution before opening or forwarding unknown files. - The script falls back to disabling SSL verification if it can't find a CA bundle; this increases the risk of tampered downloads on hostile networks. If possible, ensure a valid CA bundle is available or run with certifi installed. - If you have concerns about network calls or storing external content, do not enable autonomous invocation or set the skill to always-on; instead run it manually and review downloads before sending. - Optionally set TENOR_API_KEY to your API key to avoid demo rate limits, and set STICKER_DIR to a location you control. Overall the skill is coherent and proportionate for its stated function; the primary risks are typical for any tool that downloads and stores external media.
Capability Analysis
Type: OpenClaw Skill Name: emo-img Version: 1.0.0 The skill provides legitimate sticker management functionality but contains a security vulnerability in `scripts/sticker.py` where SSL certificate verification is explicitly disabled (`ssl.CERT_NONE`) as a fallback if local certificate bundles are not found. Additionally, the script contains a hardcoded Tenor API key. While these appear to be design choices for cross-platform compatibility and ease of use, the bypass of SSL verification exposes the agent to man-in-the-middle (MITM) attacks during sticker searches and downloads.
Capability Assessment
Purpose & Capability
Name/description (sticker search, download, send) matches the included script and SKILL.md. Required binary is python3 only. Declared overridable STICKER_DIR and optional TENOR_API_KEY are appropriate for a sticker manager.
Instruction Scope
Instructions limit actions to searching local index, calling Tenor, downloading images, and sending media via the agent's message tool. One minor mismatch: SKILL.md claims the agent will "auto-detect" channel context and "works for ALL channels" — those behaviors are provided by the agent/platform, not the script. Otherwise the runtime instructions do not request unrelated files, credentials, or system state.
Install Mechanism
Instruction-only install (no external installers) and a small python script are included. No network-based install or archive extraction is performed at install time.
Credentials
No sensitive credentials are required. The script optionally reads TENOR_API_KEY and STICKER_DIR which are relevant to its purpose. Minor concerns: the script embeds a Tenor demo API key (non-secret fallback) and, as a last resort, it creates an SSL context that disables certificate verification (ctx.verify_mode = CERT_NONE) — this weakens TLS checks for downloads and could allow MITM/tampered downloads if a host has no available CA bundle.
Persistence & Privilege
always:false and the script only writes inside its own sticker directory (~/.openclaw/stickers by default or STICKER_DIR). It does not modify other skills or system-wide agent configuration.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install emo-img
  3. After installation, invoke the skill by name or use /emo-img
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release: hybrid sticker search (local + Tenor), cross-channel sending, personal collection management
Metadata
Slug emo-img
Version 1.0.0
License
All-time Installs 1
Active Installs 1
Total Versions 1
Frequently Asked Questions

What is emo-img — Give Your AI Emotional Expression?

Send sticker/emoji images (表情包) in chat. Search local collection or online (Tenor), download favorites, and send via any channel (WhatsApp, Discord, iMessage... It is an AI Agent Skill for Claude Code / OpenClaw, with 368 downloads so far.

How do I install emo-img — Give Your AI Emotional Expression?

Run "/install emo-img" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is emo-img — Give Your AI Emotional Expression free?

Yes, emo-img — Give Your AI Emotional Expression is completely free (open-source). You can download, install and use it at no cost.

Which platforms does emo-img — Give Your AI Emotional Expression support?

emo-img — Give Your AI Emotional Expression is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created emo-img — Give Your AI Emotional Expression?

It is built and maintained by Tianyu Jiang (@horisky); the current version is v1.0.0.

💬 Comments