Telegram automation assistant using telegram-mcp. Use when users want to: (1) Get a digest of unread Telegram messages (2) Analyze their writing style from channel posts (3) Draft and publish posts to Telegram channels (4) Search and reply to messages across chats Triggers: "telegram digest", "unread messages", "morning summary", "post to channel", "draft telegram post", "analyze writing style", "extract style from channel", "telegram workflow"

8 stars
2 forks
32 views

SKILL.md


name: telegram-assistant description: | Telegram automation assistant using telegram-mcp. Use when users want to: (1) Get a digest of unread Telegram messages (2) Analyze their writing style from channel posts (3) Draft and publish posts to Telegram channels (4) Search and reply to messages across chats Triggers: "telegram digest", "unread messages", "morning summary", "post to channel", "draft telegram post", "analyze writing style", "extract style from channel", "telegram workflow" license: MIT compatibility: | Requires telegram-mcp server configured in Claude Code. See references/setup.md for installation instructions. metadata: author: Bayram Annakov (onsa.ai) version: "1.0.0" category: productivity telegram-mcp-repo: https://github.com/chigwell/telegram-mcp allowed-tools: mcp__telegram-mcp__* Read Write Edit Glob

Telegram Assistant

Automate Telegram workflows with AI: digests, channel posting, and style-matched drafts.

Quick Start

Need morning digest?     → Use Digest Workflow
Want to post to channel? → Use Style + Post Workflow
Replying to messages?    → Use Reply Workflow

Workflow 1: Digest

Goal: Summarize unread messages across all chats.

Step 1: Get Unread Chats

Use list_chats to find chats with unread messages.
Look for "Unread:" in the output (both count and "marked" flag).

Step 2: Read Recent Messages

For each chat with unread:

  1. Use get_messages or list_messages to fetch recent messages
  2. Focus on messages since last read

Step 3: Summarize

Create a digest with:

  • Priority items: Direct mentions, questions needing response
  • Updates: News, announcements from channels
  • Low priority: General chatter, FYI items

Step 4: Draft Replies (Optional)

For messages needing response:

  1. Draft a reply
  2. Use save_draft to save it for user review
  3. User can review and send manually in Telegram app

Safety: Never send messages directly. Always save as draft first.


Workflow 2: Style Extraction

Goal: Analyze channel posts to capture user's writing style.

Step 1: Fetch Posts

Use list_messages with the channel name/ID.
Fetch last 15-20 posts (skip media-only posts).

Step 2: Analyze Patterns

Extract these characteristics:

  • Language mix: Ratio of Russian to English terms
  • Structure: Use of hooks, tldr, bullets, numbered lists, sections
  • Tone: Formal (вы) vs casual (ты), first-person usage (я/мы)
  • Length: Average post length in words
  • Emoji: Frequency and types used
  • Call-to-action: How posts typically end

Step 3: Generate Style Guide

Create references/style-guide.md with:

# [Channel Name] Style Guide

## Language
- Primary: Russian with English tech terms
- Formality: [formal/casual]
- Person: [я/мы usage]

## Structure
- Hook: [question/statement/story]
- Sections: [yes/no, with headers?]
- Lists: [bullets/numbered]
- tldr: [yes/no]

## Formatting
- Average length: ~[X] words
- Emoji: [frequent/occasional/rare]
- Common emojis: [list]

## Endings
- Call-to-action style: [question/invitation/resource link]

## Example Patterns
[Include 2-3 anonymized structure examples]

Step 4: Save for Future Use

The style guide is now available for the Post workflow.


Workflow 3: Post to Channel

Goal: Draft a post matching user's writing style.

Pre-requisite

Run Style Extraction workflow first if references/style-guide.md doesn't exist.

Step 1: Read Style Guide

Read references/style-guide.md to understand the target style.

Step 2: Understand Topic

Ask user for:

  • Topic/subject matter
  • Key points to cover
  • Target audience (if different from usual)
  • Any specific call-to-action

Step 3: Draft Post

Write the post following the style guide:

  • Match language mix ratio
  • Use the same structural patterns
  • Maintain consistent tone
  • Include appropriate emoji (if style uses them)
  • End with typical call-to-action pattern

Step 4: User Review

Present the draft to user for feedback. Iterate if needed.

Step 5: Save as Draft

Use save_draft(chat_id="ChannelName", message="draft content")

User can then:

  1. Open Telegram app
  2. Go to the channel
  3. See the draft in the input field
  4. Review and send when ready

Safety: Always use save_draft, never send_message for channel posts.


Workflow 4: Search & Reply

Goal: Find specific messages and draft contextual replies.

Step 1: Search

Use search_messages(chat_id, query) to find relevant messages.
Or list recent messages and filter manually.

Step 2: Get Context

Use get_message_context(chat_id, message_id) to see surrounding messages.

Step 3: Draft Reply

Write a contextual reply based on the conversation flow.

Step 4: Save as Draft Reply

Use save_draft(chat_id, message, reply_to_msg_id=message_id)

User reviews and sends from Telegram app.


Safety Guidelines

  1. Draft First: Never use send_message for important communications. Always save_draft.

  2. Verify Chat ID: Double-check you're targeting the right chat before any action.

  3. Rate Limits: Avoid rapid-fire API calls. Space out requests if processing many chats.

  4. Privacy: The AI sees all accessible chats. Be mindful of sensitive conversations.

  5. Session Security: The session string provides full account access. Treat it like a password.

    • On macOS: Store in Keychain (see setup.md) rather than .env files
    • Never commit credentials to git

Troubleshooting

"Could not find the input entity"

  • Use channel username (without @) or numeric ID
  • For supergroups, try prepending -100 to the ID

"Chat not found"

  • Ensure the account has access to the chat
  • Try using the exact chat title from list_chats

Draft not appearing

  • Open the specific chat in Telegram app
  • Drafts are saved per-chat

Resources

README

Telegram Assistant Skill

A Claude Code skill for automating Telegram workflows: digests, channel posting, and style-matched drafts.

Features

  • Digest Workflow: Summarize unread messages across all chats with priority classification
  • Style Extraction: Analyze channel posts to capture writing style patterns
  • Post Workflow: Draft posts matching your authentic voice, saved as drafts for review

Requirements

Installation

  1. Clone this repo:
git clone https://github.com/BayramAnnakov/telegram-assistant-skill.git
  1. Symlink to Claude skills directory:
ln -s /path/to/telegram-assistant-skill ~/.claude/skills/telegram-assistant
  1. Restart Claude Code

  2. Verify the skill is detected:

Ask Claude: "use the telegram-assistant skill to show my unread messages"

Usage

Digest Workflow

Triggers: "telegram digest", "unread messages", "morning summary"

"Show me a digest of my unread Telegram messages"
"Summarize what I missed in Telegram today"

Style Extraction

Triggers: "analyze writing style", "extract style from channel"

"Analyze the writing style of my ProductsAndStartups channel"
"Extract style patterns from @cryptoEssay"

Post Workflow

Triggers: "post to channel", "draft telegram post", "write for channel"

"Draft a post about MCP for my channel using my style"
"Write a channel post about AI agents"

Safety

This skill follows a draft-first policy:

  • Never sends messages directly via send_message
  • Always uses save_draft so you can review in Telegram before sending
  • Drafts appear in the chat input field in your Telegram app

Dependencies

This skill works best with the following PRs merged into telegram-mcp:

  • PR #45: Draft management tools (save_draft, get_drafts, clear_draft)
  • PR #46: Fix unread detection (unread_mark flag)
  • PR #47: macOS Keychain support for secure credential storage

Until merged, you can use the fork with these features.

File Structure

telegram-assistant/
├── SKILL.md              # Main skill file (AgentSkills.io compliant)
├── README.md             # This file
├── LICENSE               # MIT License
└── references/
    ├── setup.md          # Installation guide for telegram-mcp
    └── style-guide.md    # Generated style guide (per-channel)

AgentSkills.io Compliance

This skill follows the AgentSkills.io open standard:

  • Valid YAML frontmatter with required fields
  • Trigger-based activation (not slash commands)
  • Clear workflow documentation

License

MIT

Author

Bayram Annakov (@BayramAnnakov)


Co-created with Claude using the telegram-assistant skill itself.