← 返回 Skills 市场
bangyizhang

Telegram Stickers

作者 Ben Zhang · GitHub ↗ · v0.2.0
cross-platform ⚠ suspicious
371
总下载
1
收藏
0
当前安装
6
版本数
在 OpenClaw 中安装
/install tg-stickers
功能描述
Collect and send Telegram stickers smartly. Auto-import packs, tag by emotion, select contextually, and respect frequency limits (2-5 messages).
使用说明 (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.

安全使用建议
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.
功能分析
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.
能力评估
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.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install tg-stickers
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /tg-stickers 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
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.
元数据
Slug tg-stickers
版本 0.2.0
许可证
累计安装 0
当前安装数 0
历史版本数 6
常见问题

Telegram Stickers 是什么?

Collect and send Telegram stickers smartly. Auto-import packs, tag by emotion, select contextually, and respect frequency limits (2-5 messages). 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 371 次。

如何安装 Telegram Stickers?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install tg-stickers」即可一键安装,无需额外配置。

Telegram Stickers 是免费的吗?

是的,Telegram Stickers 完全免费(开源免费),可自由下载、安装和使用。

Telegram Stickers 支持哪些平台?

Telegram Stickers 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Telegram Stickers?

由 Ben Zhang(@bangyizhang)开发并维护,当前版本 v0.2.0。

💬 留言讨论