| name | telegram |
| description | Send, read, and respond to Telegram messages as Claudicle with persistent memory and cognitive pipeline integration. |
Telegram
Send, read, and respond to Telegram messages via the Claudicle daemon adapter. Thin skill layer on top of the existing python-telegram-bot v22 polling adapter at ~/.claudicle/daemon/adapters/telegram_adapter.py.
When to Use This Skill
- Sending a Telegram message from a Claude Code session
- Checking for unhandled Telegram messages in the inbox
- Processing Telegram messages through the
/telegram-respond cognitive pipeline
- Managing Telegram memory context (working memory, user models, soul state)
Prerequisites
python-telegram-bot v21+ installed (pip install python-telegram-bot)
TELEGRAM_BOT_TOKEN in ~/.config/env/secrets.env
- Bot:
@claudicle_bot (ID: 8646522411)
- Tom's Telegram ID:
633125581
Environment Variables
| Variable | Default | Description |
|---|
TELEGRAM_BOT_TOKEN | -- | Bot token from @BotFather |
CLAUDICLE_TELEGRAM_ALLOWED_USERS | -- | Comma-separated user IDs allowed to DM (empty = deny all) |
CLAUDICLE_TELEGRAM_ALLOWED_CHATS | -- | Comma-separated chat IDs for groups (empty = all) |
CLAUDICLE_TELEGRAM_RESPOND_TO_DMS | true | Respond to private messages (filtered by allowed users) |
CLAUDICLE_TELEGRAM_RESPOND_TO_MENTIONS | true | Respond to @mentions in groups |
Quick Start
python3 ~/.claudicle/adapters/telegram/telegram_listen.py --bg
cd ~/.claude/skills/telegram/scripts && python3 telegram_check.py
cd ~/.claude/skills/telegram/scripts && python3 telegram_send.py 633125581 "Hello from Claudicle!"
/telegram-respond
Available Scripts
telegram_send.py -- Send a Telegram message
python3 ~/.claudicle/adapters/telegram/telegram_post.py CHAT_ID "Hello!"
python3 telegram_send.py CHAT_ID "Reply to this" --reply-to 42
python3 telegram_send.py CHAT_ID --stdin
python3 telegram_send.py --help
telegram_check.py -- Check inbox for unhandled messages
python3 telegram_check.py
python3 telegram_check.py --all
python3 telegram_check.py --limit 5
python3 telegram_check.py --mark-read MSG_ID
python3 telegram_check.py --mark-all-read
Reads from ~/.claudicle/daemon/inbox.jsonl (shared with Slack/Discord).
telegram_memory.py -- Memory context CLI
python3 telegram_memory.py load-context 633125581
python3 telegram_memory.py user-model tg:633125581
python3 telegram_memory.py soul-state
Thin CLI over ~/.claudicle/adapters/shared/claudicle_memory.py.
Listener Management
The listener is the existing Claudicle adapter script (not duplicated):
python3 ~/.claudicle/adapters/telegram/telegram_listen.py --bg
python3 ~/.claudicle/adapters/telegram/telegram_listen.py --status
python3 ~/.claudicle/adapters/telegram/telegram_listen.py --stop
Channel Format
telegram:{chat_id} -- e.g., telegram:633125581 (private), telegram:-100123456789 (group)
Architecture
Claude Code session
|
|-- /telegram-respond (cognitive pipeline: 6 XML tags)
|-- telegram_send.py (wraps Bot API send_message)
|-- telegram_check.py (reads shared inbox.jsonl)
|-- telegram_memory.py (thin CLI over claudicle_memory)
|
v
~/.claudicle/adapters/telegram/ (existing, not duplicated)
telegram_listen.py (polling daemon)
telegram_post.py (CLI post)
_telegram_utils.py (split_message, config)
|
v
~/.claudicle/adapters/shared/claudicle_memory.py (3-tier memory routing)
Security
- DM access is DENY-by-default. Set
CLAUDICLE_TELEGRAM_ALLOWED_USERS=633125581 to allow Tom.
- User input is sanitized for XML tags before cognitive pipeline processing.
WebFetch removed from allowed tools in daemon mode subprocess.