Back to skills
SkillHub ClubShip Full StackFull Stack

tg-stickers

Collect and send Telegram stickers smartly. Auto-import packs, tag by emotion, select contextually, and respect frequency limits (2-5 messages).

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
3,110
Hot score
99
Updated
March 20, 2026
Overall rating
C4.0
Composite score
4.0
Best-practice grade
B84.0

Install command

npx @skill-hub/cli install openclaw-skills-tg-stickers

Repository

openclaw/skills

Skill path: skills/bangyizhang/tg-stickers

Collect and send Telegram stickers smartly. Auto-import packs, tag by emotion, select contextually, and respect frequency limits (2-5 messages).

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: openclaw.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install tg-stickers into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/openclaw/skills before adding tg-stickers to shared team environments
  • Use tg-stickers for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: tg-stickers
description: "Collect and send Telegram stickers smartly. Auto-import packs, tag by emotion, select contextually, and respect frequency limits (2-5 messages)."
---

# 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
```bash
./import-sticker-pack.sh <pack_short_name_or_id>
```

### 2. Auto-Tag by Emotion
```bash
./auto-tag-stickers.sh
```

### 3. Send Stickers (in agent code)
```javascript
// ✅ Use OpenClaw's message tool directly
message(action='sticker', target='<chat_id>', stickerId=['<file_id>'])

// No bash script needed - OpenClaw handles sending natively
```

### 4. Smart Selection
```bash
./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

```markdown
## 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

```json
{
  "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

```bash
# 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=<chat_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.


---

## Skill Companion Files

> Additional files collected from the skill directory layout.

### README.md

```markdown
# tg-stickers

Smart Telegram sticker management for OpenClaw agents.

## What This Does

**OpenClaw natively sends stickers**, but this skill adds intelligence:
- 📦 **Bulk import** - Add entire sticker packs at once
- 🏷️ **Auto-tagging** - Map 100+ emoji to emotions (happy, sad, goodnight, etc.)
- 🎲 **Smart selection** - Context-based random picks (avoid repetition)
- 📊 **Analytics** - Track usage patterns

## Quick Start

```bash
# 1. Import a sticker pack
./import-sticker-pack.sh pa_YK0WQxd6HTw52j6bazKo_by_SigStick21Bot

# 2. Auto-tag all stickers
./auto-tag-stickers.sh

# 3. Select a sticker (returns file_id)
./random-sticker.sh "goodnight"

# 4. Send via OpenClaw (in agent code)
message(action=sticker, target=<chat_id>, stickerId=[<file_id>])
```

## Tools

| Script | Purpose |
|--------|---------|
| `import-sticker-pack.sh` | Import entire Telegram sticker pack |
| `auto-tag-stickers.sh` | Tag stickers by emoji → emotion mapping |
| `random-sticker.sh` | Pick random sticker by tag |
| `check-collection.sh` | View collection stats |

## Files

- `stickers.json` - Your collection + usage data
- `stickers.json.example` - Empty template
- `SKILL.md` - Full documentation

## Usage Philosophy

**Use stickers like humans do:**
- Greetings (goodnight/morning) → always prefer sticker over text
- Celebrations, humor, empathy → great use cases
- Technical answers, reports → skip stickers
- Frequency: ~1 per 2-5 messages (track yourself in agent logic)

## Integration

Read `SKILL.md` for full integration guide with OpenClaw agents.

## License

MIT

```

### _meta.json

```json
{
  "owner": "bangyizhang",
  "slug": "tg-stickers",
  "displayName": "Telegram Stickers",
  "latest": {
    "version": "0.2.0",
    "publishedAt": 1772816094306,
    "commit": "https://github.com/openclaw/skills/commit/3a92df23ba913c259d78365110dd77804c6f84aa"
  },
  "history": []
}

```