Skip to content
Back to skills

Telegram Ops

ASecurity

Telegram Bot API operations for forum management. Use for creating/editing/archiving forum topics, setting topic icons, managing Telegram groups via Bot API. Use when archiving channels/topics. Requires bot token from OpenClaw config.

  • 10 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 30, 2026
documentationgobashapidocumentation

Works with

  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned May 30, 2026

npx -y skills add Demerzels-lab/elsamultiskillagent --skill telegram-ops --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Telegram Ops?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Telegram Ops
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/demerzels-lab-telegram-ops/badge)](https://www.skillsdirectory.com/skills/demerzels-lab-telegram-ops)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: telegram-ops
description: Telegram Bot API operations for forum management. Use for creating/editing/archiving forum topics, setting topic icons, managing Telegram groups via Bot API. Use when archiving channels/topics. Requires bot token from OpenClaw config.
---

# Telegram Ops

Manage Telegram forum topics and Bot API operations.

## Prerequisites

- Bot must be admin in the group with `can_manage_topics` permission
- Get the bot token from OpenClaw config:
  ```bash
  gateway action=config.get | jq -r '.result.parsed.channels.telegram.botToken'
  ```

## Creating a Topic

When creating a topic, follow all of these steps:

1. **Create the topic** via Telegram Bot API (returns `message_thread_id`)
2. **Set the icon** -- pick one that matches the topic's purpose (see [Icon Reference](#topic-icons))
3. **Choose relevant skills** -- run `openclaw skills list`, pick only `ready` skills that fit the topic's purpose
4. **Write a system prompt** -- give the agent context for what this topic is about
5. **Patch the OpenClaw config** -- register the topic with its skills and system prompt

### Step 1: Create via Bot API

```bash
curl -X POST "https://api.telegram.org/bot<TOKEN>/createForumTopic" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": <GROUP_ID>,
    "name": "topic name"
  }'
```

Returns `message_thread_id` (the topic ID) -- you need this for all subsequent steps.

### Step 2: Set the Icon

```bash
curl -X POST "https://api.telegram.org/bot<TOKEN>/editForumTopic" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": <GROUP_ID>,
    "message_thread_id": <TOPIC_ID>,
    "name": "topic name",
    "icon_custom_emoji_id": "<EMOJI_ID>"
  }'
```

### Step 3-5: Configure OpenClaw

Patch the config to register the topic with a system prompt:

```bash
gateway action=config.patch raw='{"channels":{"telegram":{"groups":{"<GROUP_ID>":{"topics":{"<TOPIC_ID>":{"systemPrompt":"Topic-specific instructions"}}}}}}}'
```

Topic configs inherit from the parent group -- only specify overrides.

**Do NOT add a `skills` key** -- omitting it means all skills are available. Only restrict skills if you have a specific reason to limit the topic's capabilities.

## Session Keys

Each topic gets its own isolated OpenClaw session:

```
agent:main:telegram:group:<GROUP_ID>:topic:<TOPIC_ID>
```

Each session has independent conversation history, context window, and compaction.

## Topic Icons

| Emoji | ID | Use Case |
|-------|-----|----------|
| ⚑ | `5312016608254762256` | Ops, speed, alerts |
| πŸ’‘ | `5312536423851630001` | Ideas, suggestions |
| πŸ“° | `5434144690511290129` | News, announcements |
| πŸ”₯ | `5312241539987020022` | Hot topics, urgent |
| ❀️ | `5312138559556164615` | Community, love |
| πŸ“ | `5373251851074415873` | Notes, documentation |
| πŸ€– | `5309832892262654231` | Bots, automation |
| πŸ’¬ | `5417915203100613993` | Chat, discussion |
| πŸ“Š | `5350305691942788490` | Stats, analytics |
| 🎯 | `5418085807791545980` | Goals, targets |

See `references/emoji-ids.md` for complete list.

To fetch all valid icon sticker IDs:
```bash
curl -X POST "https://api.telegram.org/bot<TOKEN>/getForumTopicIconStickers"
```

## Archiving a Topic

Archive workflow: rename with `[ARCHIVED]` prefix, set folder icon, close topic, then handle the OpenClaw session.

### Step 1: Archive in Telegram

Use the archive script:
```bash
scripts/archive_topic.sh <TOKEN> <GROUP_ID> <TOPIC_ID> "Current Topic Name"
```

This will:
- Rename to `[ARCHIVED] Current Topic Name`
- Set the πŸ“ folder icon (`5357315181649076022`)
- Close the topic (locks it from new messages)

### Step 2: Export and Delete OpenClaw Session

```bash
# Export session history to the sessions archive folder
openclaw sessions history 'agent:main:telegram:group:<GROUP_ID>:topic:<TOPIC_ID>' > ~/.openclaw/agents/main/sessions/archive/<topic-name>-<date>.md

# Delete the session (manual - remove from sessions.json and delete transcript)
# Session key: agent:main:telegram:group:<GROUP_ID>:topic:<TOPIC_ID>
```

### Step 3: Clean Up Config (Optional)

Remove the topic from OpenClaw config if it had custom settings:
```bash
gateway action=config.patch raw='{"channels":{"telegram":{"groups":{"<GROUP_ID>":{"topics":{"<TOPIC_ID>":null}}}}}}'
```

## Limitations

**No `getForumTopicInfo` method exists.** Cannot query topic name by thread ID.

Workarounds:
1. Cache names from `forum_topic_created` events
2. Store mapping in local config
3. Monitor topic creation service messages

Files in this skill

  • SKILL.md4.4 KB
  • _meta.json294 B
  • references/emoji-ids.md5.8 KB
  • scripts/archive_topic.sh2.1 KB
  • scripts/create_topic.sh1.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.