Agent skill

telegram-post

Stars 74
Forks 17

Install this agent skill to your Project

npx add-skill https://github.com/glebis/claude-skills/tree/main/telegram-post

SKILL.md

Telegram Post Skill

Create, preview, and send formatted Telegram posts from draft markdown files. Built for @klodkot and Gleb Kalinin's other Telegram channels.

Note: Channel configurations (footers, tags, language defaults) are specific to Gleb's channels. To use for your own channels, edit CHANNEL_CONFIG in scripts/post.py.

Configured channels: @klodkot, @mentalhealthtech, @toolbuildingape, @opytnymputem

When to Use

Use this skill when:

  • User asks to create a draft for a Telegram channel
  • User asks to "post to Telegram" or "send to saved messages" from a draft file
  • User wants to preview a draft before sending
  • Draft files in Channels/*/drafts/ need to be sent

Commands

create -- Create a new draft

bash
# Default: klodkot channel
python3 scripts/post.py create "remotion-video-creation" --topic "Remotion Agent Skill" --source "https://example.com"

# Other channel
python3 scripts/post.py create "therapy-app-review" -c mental-health-tech --topic "Therapy apps"

# With video
python3 scripts/post.py create "demo-post" --video demo.mp4 --source "https://example.com"

Creates Channels/{channel}/drafts/YYYYMMDD-{slug}.md with proper frontmatter. Returns file path and tags reference for the channel.

Options:

  • --channel, -c: Channel name (default: klodkot). Use list to see all
  • --topic, -t: Topic for frontmatter
  • --source, -s: Source URL
  • --video, -v: Video filename (just name, not path)
  • --language, -l: Override channel default (ru/en)

send -- Send a draft

bash
# Preview first (always do this)
python3 scripts/post.py send "Channels/klodkot/drafts/20260209-post.md" --dry-run

# Send to Saved Messages (default)
python3 scripts/post.py send "Channels/klodkot/drafts/20260209-post.md"

# Send to specific chat
python3 scripts/post.py send "draft.md" --chat "@klodkot"
python3 scripts/post.py send "draft.md" -c "Tool Building Ape"

list -- List available channels

bash
python3 scripts/post.py list

Returns: klodkot, mental-health-tech, tool-building-ape, opytnym-putem with language and tags info.

Draft File Format

markdown
---
created_date: '[[YYYYMMDD]]'
type: draft
channel: klodkot
status: draft
language: ru
topic: Topic description
source: https://example.com
video: demo.mp4
---

## Post Title

Content with **bold** and *italic* and [links](url).

---

Second part (separate message).

Video Path Resolution

The video: field should be just the filename (e.g., demo.mp4), NOT attachments/demo.mp4. Resolution order:

  1. Relative to draft file directory
  2. ../attachments/ (sibling to drafts folder)
  3. Channels/klodkot/attachments/
  4. Vault root

Markdown to Telegram HTML Conversion

Markdown Telegram
## Header <b>Header</b>
**bold** <b>bold</b>
*italic* <i>italic</i>
_italic_ <i>italic</i>
[text](url) <a href> link
* item / - item arrow format
# Title stripped

Safety

  • Formatting check: If stray *, **, #, or []() remain after conversion, the script refuses to send and reports formatting_warnings
  • --dry-run previews without sending
  • Default target is Saved Messages, not channel -- prevents accidental publishes

Typical Workflow

bash
# 1. Create draft
python3 scripts/post.py create "remotion-skills" --topic "Remotion" --source "https://..."

# 2. Edit the draft in Obsidian (fill in content, add tags from tags reference)

# 3. Preview
python3 scripts/post.py send "Channels/klodkot/drafts/20260211-remotion-skills.md" --dry-run

# 4. Send to saved messages for final review
python3 scripts/post.py send "Channels/klodkot/drafts/20260211-remotion-skills.md"

# 5. When ready, send to channel
python3 scripts/post.py send "Channels/klodkot/drafts/20260211-remotion-skills.md" -c "@klodkot"

Post-Publish (automatic when sending to channel)

When target is a channel (@klodkot, @mentalhealthtech), after successful send:

  1. Updates frontmatter: type: published, published_date, telegram_message_id
  2. Moves file from drafts/ to published/
  3. Adds entry to channel index (klodkot.md)

Does NOT trigger for Saved Messages (default target) -- safe for preview sends.

Key Features

  • HTML formatting via parse_mode='html' (Telethon direct, not subprocess)
  • Video with caption on first message (not separate reply)
  • Channel footers auto-appended (klodkot, mental-health-tech)
  • Multi-part splitting by --- markers, respects 4096 char limit
  • Channel-aware draft creation with correct paths, language, tags reference
  • Post-publish auto moves draft to published, updates frontmatter + index

Dependencies

  • Uses telegram skill credentials (~/.telegram_dl/)
  • Python 3.10+, telethon

Expand your agent's capabilities with these related and highly-rated skills.

glebis/claude-skills

tdd

This skill should be used when the user wants to implement features or fix bugs using test-driven development. Enforces the RED-GREEN-REFACTOR cycle with vertical slicing, context isolation between test writing and implementation, human checkpoints, and auto-test feedback loops. Uses multi-agent orchestration with the Task tool for architecturally enforced context isolation. Supports Jest, Vitest, pytest, Go test, cargo test, PHPUnit, and RSpec.

74 17
Explore
glebis/claude-skills

brand-agency

Applies Agency brand colors and typography to artifacts including presentations, SVG graphics, documents, and web interfaces. This skill should be used when brand colors, visual formatting, neobrutalism style, or Agency design standards apply. Keywords - branding, corporate identity, visual identity, styling, brand colors, typography, visual formatting, visual design, neobrutalism.

74 17
Explore
glebis/claude-skills

github-gist

Publish files or Obsidian notes as GitHub Gists. Use when user wants to share code/notes publicly, create quick shareable snippets, or publish markdown to GitHub. Triggers include "publish as gist", "create gist", "share on github", "make a gist from this".

74 17
Explore
glebis/claude-skills

chrome-history

Query Chrome browsing history with natural language. Filter by date range, article type, keywords, and specific sites.

74 17
Explore
glebis/claude-skills

wispr-analytics

This skill should be used when analyzing Wispr Flow voice dictation history for self-reflection, work patterns, mental health insights, or productivity analytics. Triggered by requests like "/wispr-analytics", "analyze my dictations", "what did I dictate today", "wispr reflection", or any request to review voice dictation patterns. Supports modes - technical (coding/work), soft (communication), trends (volume/frequency), mental (sentiment/energy/rumination).

74 17
Explore
glebis/claude-skills

granola

This skill should be used when importing, listing, or exporting Granola meeting recordings and transcripts. Queries Granola's local cache and API to list meetings, extract transcripts, and export to Obsidian notes in Fathom-compatible format.

74 17
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results