skills/claude-skills-open/skills/channels/telegram-send/SKILL.md
Telegram DM sending from CSV, rate limiting, idempotency
npx skillsauth add aaaaqwq/claude-code-skills 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, scrapingtesting
通用自媒体文章自动发布工具。支持百家号、搜狐号、知乎、微信公众号、小红书、抖音号六个平台的自动化发布流程。使用Playwright自动化实现平台导航和发布,支持通过storageState管理Cookie实现账号切换。
development
# SKILL.md - Model Configuration Status (mcstatus) ## 触发条件 - `/mcstatus` 命令 - 用户询问模型配备、模型配置、model status、模型列表等 ## 功能 实时生成 Agent + Cron 的模型配置报告,展示当前所有 agent 的主模型/fallback链和所有 cron 任务的模型分配。 ## 执行步骤 ### Step 1: 收集 Agent 模型配置 读取各 agent 的 models.json 获取主模型和 fallback 链: ```bash for agent in main ops code quant data research content market finance pm law product sales batch; do config=$(cat ~/.openclaw/agents/$agent/agent/models.json 2>/dev/null) if [ -n "$config" ]; then echo "=== $agent
tools
MCP 服务器智能管理助手。自动检测 MCP 可用性、智能开关、功能问答,提供人性化的 MCP 管理体验。
tools
从GitHub搜索并自动安装配置MCP(Model Context Protocol)服务器工具到Claude配置文件。当用户需要安装MCP工具时触发此技能。工作流程:搜索GitHub上的MCP项目 -> 提取npx配置 -> 添加到~/.claude.json -> 处理API密钥(如有)。