skills/claude-skills-open/skills/channels/telegram-send/SKILL.md
Telegram DM sending from CSV, rate limiting, idempotency
npx skillsauth add aaaaqwq/agi-super-team telegram-sendInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Sending messages via Telegram (Telethon) with CSV input
preferred_channel = Telegram in data| What | Path |
|------|------|
| Tool | $TG_TOOLS_PATH/tools/tg_send.py |
| Shared lib | $TG_TOOLS_PATH/tg_utils/ |
| Telegram Session | $SALES_PATH/telegram/sessions/telegram_session.session |
| ENV | $SALES_PATH/.env |
| Send Log | $TG_TOOLS_PATH/data/send_log.json |
Claude prepares CSV with recipients. Minimum columns:
key,name,phone,username,message
p-001,Alice,+380XXXXXXXXX,,Hello Alice! Message text.
p-002,Ruslan,,,Nizami_ua,Hello Ruslan!
Or without the message column -- then use the --message template.
python3 $TG_TOOLS_PATH/tools/tg_send.py \
--input contacts.csv --dry-run
Or with a template:
python3 $TG_TOOLS_PATH/tools/tg_send.py \
--input contacts.csv --message "Hello, {name}! Text." --dry-run
python3 $TG_TOOLS_PATH/tools/tg_send.py \
--input contacts.csv --send
# Or test on the first contact:
python3 $TG_TOOLS_PATH/tools/tg_send.py \
--input contacts.csv --send --test 1
| Parameter | Description | Default |
|-----------|-------------|---------|
| --input FILE | CSV file (or - for stdin) | required |
| --message TMPL | Message template with {name} | - |
| --message-file FILE | Template from file | - |
| --dry-run | Preview only | true (default) |
| --send | Actual sending | false |
| --test N | Send only to first N | - |
| --max N | Max number of messages | - |
| --cold | Limits for cold outreach (5/day, batch pauses) | false |
| --delay MIN MAX | Override delay (sec) | 20 60 |
| --status | Show send log | - |
| --reset-log | Reset log | - |
| --reset-cooldown | Reset flood cooldown | - |
| --key-col NAME | Column for idempotency | key |
| --name-col NAME | Column for name | name |
| --phone-col NAME | Column for phone | phone |
| --user-col NAME | Column for username | username |
| --msg-col NAME | Column for message | message |
Claude (LLM) is responsible for: selecting recipients, composing text, generating CSV, interpreting results, updating CRM.
tg-send is responsible for: Telegram session, phone normalization, message delivery, rate limiting, idempotency, flood handling.
tg_utils/)| Module | Purpose |
|--------|---------|
| auth.py | Connecting to Telegram, loading credentials |
| phone.py | Phone normalization (UA/PL/IE/US) |
| rate_limit.py | Delays, batch pauses, flood cooldown |
| send_log.py | Send log (idempotency) |
| contacts.py | Entity resolution (username/phone), ImportContactsRequest |
| output.py | JSON-line output for composition |
| Mode | Delay | Limit/day | Batch pause |
|------|-------|-----------|-------------|
| Warm (default) | 20-60s | 35 | - |
| Cold (--cold) | 30-60s | 5 | 30min every 3 |
Stdout: JSON lines (for pipe/composition):
{"event":"send","status":"ok","key":"p-001","target":"@user","name":"Alice","ts":"..."}
{"event":"summary","sent":5,"failed":1,"skipped":2,"ts":"..."}
Stderr: human-readable progress.
| Problem | Solution |
|---------|----------|
| FloodWaitError | Automatic 24h cooldown. --reset-cooldown to reset |
| PeerFloodError | 48h cooldown. Wait or --reset-cooldown |
| SessionExpired | telegram-session |
| UserPrivacyRestrictedError | Person has blocked DMs |
| "Not authorized" | Need QR login via tg-auth |
telegram-check -- checking repliestelegram-session -- if session is brokenemail-send-direct -- single emailemail-send-bulk -- mass email sendingwhatsapp-send -- alternative channelAll Telegram tools: $TG_TOOLS_PATH/tools/
tg-auth -- session, QR logintg-contacts -- export/import contacts, lookuptg-groups -- groups, posting, memberstg-scrape -- channel search, scrapingdevelopment
Technology-agnostic prompt generator that creates customizable AI prompts for scanning codebases and identifying high-quality code exemplars. Supports multiple programming languages (.NET, Java, JavaScript, TypeScript, React, Angular, Python) with configurable analysis depth, categorization methods, and documentation formats to establish coding standards and maintain consistency across development teams.
tools
Expert-level browser automation, debugging, and performance analysis using Chrome DevTools MCP. Use for interacting with web pages, capturing screenshots, analyzing network traffic, and profiling performance.
data-ai
Prompt for creating detailed feature implementation plans, following Epoch monorepo structure.
tools
Interactive prompt refinement workflow: interrogates scope, deliverables, constraints; copies final markdown to clipboard; never writes code. Requires the Joyride extension.