← Back to Skills Marketplace
bangyizhang

Telegram Stickers

by Ben Zhang · GitHub ↗ · v0.2.0
cross-platform ⚠ suspicious
371
Downloads
1
Stars
0
Active Installs
6
Versions
Install in OpenClaw
/install tg-stickers
Description
Collect and send Telegram stickers smartly. Auto-import packs, tag by emotion, select contextually, and respect frequency limits (2-5 messages).
README (SKILL.md)

Telegram Stickers Skill

Intelligently manage and send Telegram stickers with emotional awareness.

Core Value

OpenClaw natively supports sending stickers (message tool), but this skill adds:

  • Collection management - Import entire sticker packs at once
  • Emotion tagging - 100+ emoji → emotion mappings
  • Smart selection - Context-based + randomization (avoid repetition)
  • Frequency control - 2-5 messages between stickers
  • Usage analytics - Track which stickers work best

Quick Start

1. Import Sticker Packs

./import-sticker-pack.sh \x3Cpack_short_name_or_id>

2. Auto-Tag by Emotion

./auto-tag-stickers.sh

3. Send Stickers (in agent code)

// ✅ Use OpenClaw's message tool directly
message(action='sticker', target='\x3Cchat_id>', stickerId=['\x3Cfile_id>'])

// No bash script needed - OpenClaw handles sending natively

4. Smart Selection

./random-sticker.sh "goodnight"  # Returns random sticker tagged "goodnight"

Tools

Script Purpose Usage
import-sticker-pack.sh Bulk import Telegram sticker pack ./import-sticker-pack.sh pa_XXX...
auto-tag-stickers.sh Tag stickers by emoji → emotion ./auto-tag-stickers.sh
random-sticker.sh Select random sticker by tag ./random-sticker.sh "happy"
check-collection.sh View collection stats ./check-collection.sh

Agent Integration

## Sticker Usage

When to send:
- Goodnight/morning greetings (always use sticker over text)
- Celebrating success/milestones
- Humorous moments
- Emotional responses (joy, sympathy, encouragement)

How to send:
1. Use random-sticker.sh to pick appropriate sticker by emotion
2. Call message(action=sticker, ...) directly
3. (Optional) Update stickers.json manually to track usage

Frequency: 2-5 messages between stickers (track in agent logic)

Emotion Tags

Auto-tagging maps 100+ emoji to emotions:

  • happy 😊😄🥳
  • sad 😢😭😔
  • love ❤️💕😍
  • laugh 😂🤣😆
  • thinking 🤔💭
  • goodnight 🌙💤😴
  • goodmorning ☀️🌅
  • warm, gentle, greeting, ...

File Structure

tg-stickers/
├── SKILL.md                  # This file
├── README.md                 # Quick start guide
├── stickers.json             # Collection + usage data
├── stickers.json.example     # Empty template
├── import-sticker-pack.sh    # Bulk import
├── auto-tag-stickers.sh      # Emoji → emotion
├── random-sticker.sh         # Context-based selection
└── check-collection.sh       # Stats viewer

stickers.json Structure

{
  "collected": [
    {
      "file_id": "CAACAgEAAxUAAWmq...",
      "emoji": "🌙",
      "set_name": "pa_dKjUP9P2dt4k...",
      "added_at": "2026-03-06T23:31:00Z",
      "tags": ["goodnight", "sleep", "night", "warm", "gentle"],
      "used_count": 3,
      "last_used": "2026-03-07T00:24:00Z"
    }
  ],
  "usage_log": [
    {
      "file_id": "...",
      "sent_at": "2026-03-07T00:24:00Z",
      "context": "User saying goodnight",
      "message_id": "2599"
    }
  ],
  "stats": {
    "total_collected": 124,
    "total_sent": 15,
    "last_sent_at": "2026-03-07T00:24:00Z",
    "messages_since_last_sticker": 0
  },
  "config": {
    "min_messages_between_stickers": 2,
    "max_messages_between_stickers": 5,
    "enabled": true
  }
}

Usage Philosophy

Like a human:

  • Stickers enhance emotion, don't replace words
  • Use sparingly but meaningfully
  • Goodnight/morning → always sticker preferred
  • Celebrations, humor, empathy → good use cases
  • Technical answers, data reports → skip stickers

Frequency:

  • Default: 2-5 messages between stickers
  • Special occasions (greetings) override frequency rules
  • Track in messages_since_last_sticker

Example: Goodnight Flow

# 1. Agent detects "goodnight" intent
# 2. Select random goodnight sticker
FILE_ID=$(bash /path/to/random-sticker.sh "goodnight")

# 3. Send via OpenClaw (from agent code)
message(action=sticker, target=\x3Cchat_id>, stickerId=[$FILE_ID])

# 4. (Optional) Track usage manually
jq --arg fid "$FILE_ID" \
   '(.collected[] | select(.file_id == $fid) | .used_count) += 1' \
   stickers.json > stickers.json.tmp && \
   mv stickers.json.tmp stickers.json

Philosophy: Stickers should feel natural, not robotic. Collect user preferences, rotate selections, and respect conversation flow.

Usage Guidance
Before installing or running this skill: 1) Know that import-sticker-pack.sh reads your OpenClaw config (~/.openclaw/openclaw.json) to obtain the Telegram bot token — if you don't want that file accessed, don't run the import script. 2) The metadata does not declare required tools (curl, jq, python3); inspect scripts and ensure you trust them and run them in a sandbox or isolated account. 3) The SKILL.md had a prompt-injection (unicode control chars) signal — review the documentation and files in a safe viewer. 4) If you accept the functionality, prefer to: a) supply the bot token via an explicit environment variable (modify the script) instead of reading ~/.openclaw/openclaw.json, b) audit/limit network access, and c) run the scripts with least privilege and backups of stickers.json. 5) If any of the undeclared behaviors (reading OpenClaw config, requiring jq/python/curl) are unacceptable, ask the author to update the skill manifest to declare required config paths and dependencies or decline installation.
Capability Analysis
Type: OpenClaw Skill Name: tg-stickers Version: 0.2.0 The tg-stickers skill bundle provides a legitimate set of tools for managing Telegram sticker collections, including importing, tagging, and selecting stickers. The code in import-sticker-pack.sh correctly accesses the Telegram bot token from the local OpenClaw configuration to interact with the official Telegram API (api.telegram.org), which is necessary for its stated purpose. The logic across all files, including the Python-based auto-tagging in auto-tag-stickers.sh and the agent instructions in SKILL.md, is transparent, well-documented, and lacks any indicators of malicious intent, data exfiltration, or harmful prompt injection.
Capability Assessment
Purpose & Capability
The skill's stated purpose (collecting, tagging, selecting, and sending Telegram stickers) matches the included scripts. However, it implicitly requires access to a Telegram bot token (it reads ~/.openclaw/openclaw.json) and tools like curl, jq, and python3 — none of which are declared in the registry metadata (required env vars/binaries/config paths). That mismatch is disproportionate to the declared requirements.
Instruction Scope
SKILL.md instructs running the included shell and Python scripts which read and modify a local stickers.json and call the Telegram API. The import script directly reads the user's OpenClaw config (~/.openclaw/openclaw.json) to obtain BOT_TOKEN, which accesses a sensitive credential and was not declared. The SKILL.md otherwise stays focused on sticker management and sending via OpenClaw's message tool; it does not explicitly instruct exfiltration. The presence of a 'prompt-injection' pattern (unicode-control-chars) in SKILL.md is also concerning.
Install Mechanism
There is no remote install/download step and the package is instruction+script only (no external archives fetched at install time). That minimizes supply-chain installation risk. However, the scripts themselves perform network calls (curl to api.telegram.org) at runtime.
Credentials
Registry metadata lists no required env vars or config paths, yet import-sticker-pack.sh reads ~/.openclaw/openclaw.json to extract the Telegram BOT_TOKEN. The skill therefore accesses sensitive credentials (Telegram bot token) without declaring them or asking for explicit environment variables. It also assumes presence of jq, python3, and curl which are not declared.
Persistence & Privilege
The skill is not always-enabled and is user-invocable; it does not request persistent platform-wide privileges or alter other skills. It only writes/reads its own stickers.json. No 'always: true' or other elevated flags are present.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install tg-stickers
  3. After installation, invoke the skill by name or use /tg-stickers
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.2.0
Major simplification: Removed redundant scripts (send-sticker.sh, add-sticker.sh, should_send_sticker.py). Core value is collection management, emotion tagging, and smart selection - sending is handled natively by OpenClaw's message tool. Kept only essential tools: import-sticker-pack.sh, auto-tag-stickers.sh, random-sticker.sh, check-collection.sh. Updated documentation to clarify skill's role.
v0.1.4
Fixed: Excluded personal sticker data (stickers.json) from published package. Users now start with empty collection and build their own. Only includes scripts and example template.
v0.1.3
Added random-sticker.sh helper script for randomized sticker selection within same emotion category. Prevents repetitive sticker usage while maintaining emotional context.
v0.1.2
Added auto-tag-stickers.sh: Automatically categorize stickers by emotion/meaning using 100+ emoji mappings. Enables smart context-based sticker selection.
v0.1.1
Added import-sticker-pack.sh: Import entire Telegram sticker packs with one command using getStickerSet API. Auto-detects duplicates and updates stats.
v0.1.0
Initial release: Smart Telegram sticker collection and sending for OpenClaw agents.
Metadata
Slug tg-stickers
Version 0.2.0
License
All-time Installs 0
Active Installs 0
Total Versions 6
Frequently Asked Questions

What is Telegram Stickers?

Collect and send Telegram stickers smartly. Auto-import packs, tag by emotion, select contextually, and respect frequency limits (2-5 messages). It is an AI Agent Skill for Claude Code / OpenClaw, with 371 downloads so far.

How do I install Telegram Stickers?

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

Is Telegram Stickers free?

Yes, Telegram Stickers is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Telegram Stickers support?

Telegram Stickers is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Telegram Stickers?

It is built and maintained by Ben Zhang (@bangyizhang); the current version is v0.2.0.

💬 Comments