Messaging¶
Three messaging channels — Telegram, Slack, WhatsApp. Each incoming message spawns a fresh DevDuck with full tool access.
Overview¶
graph LR
TG["📱 Telegram"] --> Listener["Message Listener"]
SL["💬 Slack"] --> Listener
WA["📞 WhatsApp"] --> Listener
Listener --> Spawn["Spawn Fresh DevDuck"]
Spawn --> Tools["🔧 Full Tool Access"]
Spawn --> Response["📨 Reply to User"]
style TG fill:#0088cc,stroke:#333,color:#fff
style SL fill:#4a154b,stroke:#333,color:#fff
style WA fill:#25d366,stroke:#333,color:#fff
style Listener fill:#f5a623,stroke:#333,color:#000
Telegram¶
Setup¶
- Create a bot via @BotFather
- Set the token:
Start Listener¶
Or enable auto-reply:
Features¶
| Action | Description |
|---|---|
start_listener |
Start background message polling |
stop_listener |
Stop the listener |
send_message |
Send text message |
send_photo |
Send photo |
send_document |
Send document |
send_poll |
Send poll |
send_location |
Send location |
edit_message |
Edit sent message |
delete_message |
Delete a message |
forward_message |
Forward a message |
Security¶
Restrict access to specific users:
Slack¶
Setup¶
- Create a Slack App at api.slack.com
- Enable Socket Mode and Events API
- Subscribe to
message.imandapp_mentionevents - Set tokens:
Start Listener¶
Features¶
- Listens for direct messages and @mentions
- Responds in-thread
- Full tool access per message
- Each message spawns a fresh DevDuck instance
WhatsApp¶
Uses wacli for local WhatsApp access — no Cloud API needed.
Setup¶
Start Listener¶
First run will show a QR code — scan with your WhatsApp mobile app to pair.
Features¶
- No API tokens needed
- Local pairing via QR code
- Each message spawns a fresh DevDuck
- Full tool access
Architecture¶
All three channels follow the same pattern:
sequenceDiagram
participant User as 👤 User
participant Channel as 📱 Channel
participant Listener as 🔄 Listener
participant Duck as 🦆 Fresh DevDuck
User->>Channel: "deploy to prod"
Channel->>Listener: Message event
Listener->>Duck: Spawn new instance
Duck->>Duck: Execute with full tools
Duck-->>Channel: Send response
Channel-->>User: Reply
Each message gets a fresh, isolated DevDuck — no cross-user state leakage, full tool access, automatic cleanup.