Agent skill
telegram-post
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
# 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). Uselistto 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
# 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
python3 scripts/post.py list
Returns: klodkot, mental-health-tech, tool-building-ape, opytnym-putem with language and tags info.
Draft File Format
---
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:
- Relative to draft file directory
../attachments/(sibling to drafts folder)Channels/klodkot/attachments/- 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 reportsformatting_warnings --dry-runpreviews without sending- Default target is Saved Messages, not channel -- prevents accidental publishes
Typical Workflow
# 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:
- Updates frontmatter:
type: published,published_date,telegram_message_id - Moves file from
drafts/topublished/ - 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
telegramskill credentials (~/.telegram_dl/) - Python 3.10+, telethon
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated 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.
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.
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".
chrome-history
Query Chrome browsing history with natural language. Filter by date range, article type, keywords, and specific sites.
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).
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.
Didn't find tool you were looking for?