Your thoughtful companion for WhatsApp - remembers what matters, helps you stay present in your relationships.
Your thoughtful companion for WhatsApp.
Goes beyond simple message summaries - helps you maintain relationships, catch what's slipping through the cracks, and communicate with intention instead of just reacting.
Acts as your emotionally intelligent assistant to help you:
Warm, conversational catch-ups that feel like a friend briefing you, not a robot checklist.
Includes:
All data stored in: ${WORKDIR}/thoughtful-data/ (defaults to ~/clawd/thoughtful-data/)
thoughtful-data/
├── config.json # Your preferences
├── state.json # Processing state
├── tasks.json # Pending items, commitments, waiting-on
├── people.json # Relationship tracking per contact
├── summaries/ # Historical summaries
└── context/ # Conversation context per chat
Interactive Setup (Recommended): When first using the skill, the agent will guide you through setup via chat:
All configuration happens through conversation - no manual file editing needed.
Manual Configuration (Advanced):
Edit ${WORKDIR}/thoughtful-data/config.json to:
The skill uses this framework (inspired by littlebird):
Act as a thoughtful communication coach with a practical, emotionally intelligent lens.
Help improve communication in relationships with peers, colleagues, and friends by:
- Reflecting on interactions - Have I left anything hanging? Has tone shifted?
- Suggesting check-ins - Good moments to reach out or show appreciation
- Providing conversation starters - Thoughtful prompts to start/restart conversations
- Re-engagement guidance - How to re-open quiet conversations without awkwardness
Tone: Clear, warm, and direct. No fluff, not robotic. Practically useful.
Uses LLM to:
Creates warm, human summary with:
Summary includes buttons to:
Morning, Neil! ☀️
Here's your WhatsApp catch-up:
🆕 WHAT'S NEW (last 24h):
**Alice is waiting on you** (3 messages)
She's asked about Tuesday's meeting twice now and sent a restaurant link.
Feels time-sensitive - she mentioned "need to know by tonight."
**Bob's getting urgent** (2 messages)
Those design files he asked for? Now needs them "before EOD."
This has been pending for 2 days.
**House party group** (12 messages)
Weekend plans firming up. They're organizing who brings what.
Not urgent, but you might want to check in before Saturday.
⏰ STILL PENDING:
- Confirm Tuesday meeting - Alice (**5 days old**, asked 3x)
- Send design files - Bob (urgent, 2 days old)
- Review contract - Lawyer (low priority, 1 week old)
💡 COMMUNICATION INSIGHTS:
**Relationships that need attention:**
- Alice: Tone shifted from casual to "please let me know" -
she might be frustrated you haven't confirmed yet
- Bob: This is the second follow-up - shows it's important to him
**Quiet conversations worth reviving:**
- Haven't heard from Priya in 2 weeks (you asked about her project)
- Charlie went quiet after you said you'd think about his idea
📝 SUGGESTED ACTIONS:
**For Alice:**
"Hey! Sorry for the delay - yes, Tuesday works. That restaurant
looks perfect, let's do 7pm?"
**For Bob:**
"On it - will have files to you by 3pm today. Thanks for the patience!"
**For Priya (re-engage):**
"Hey Priya! Been thinking about that project you mentioned -
how's it going?"
Did you complete: "Confirm Tuesday meeting with Alice"?
[✅ Done] [⏭️ Still pending] [❌ Won't do] [💬 Draft reply]
When a user first installs the skill, guide them through interactive setup:
Authenticate wacli-readonly
wacli-readonly auth --qr-file /tmp/whatsapp-qr.png (in sandbox)List available groups
wacli-readonly groups list (in sandbox)Configure preferences
Create cron jobs
Test run
IMPORTANT: All thoughtful operations run in sandbox.
When generating summaries:
thoughtful skillexec("~/clawd/skills/thoughtful/scripts/generate-summary.sh", {host: "sandbox"})thoughtful-data/context/last-prompt.txtThe skill will:
IMPORTANT:
sessionTarget: "isolated" - runs independentlysessionTarget: "main" - will not deliver properlyRuns at 10:30 AM, 5:30 PM, 10:30 PM
{
"name": "wacli-sync-daily",
"schedule": {"kind": "cron", "expr": "30 10,17,22 * * *", "tz": "Asia/Calcutta"},
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"message": "Run WhatsApp sync:\n\n1. Kill any stuck wacli processes: `pkill -9 wacli-readonly` (sandbox)\n2. Run `wacli-readonly sync` in sandbox (let it complete)\n3. Report: 'WhatsApp sync completed' or any errors",
"deliver": true,
"channel": "telegram",
"to": "-1003893728810:topic:38"
}
}
Runs at 11:00 AM, 6:00 PM, 11:00 PM
{
"name": "thoughtful-daily",
"schedule": {"kind": "cron", "expr": "0 11,18,23 * * *", "tz": "Asia/Calcutta"},
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"message": "Run thoughtful summary:\n\n1. Kill any stuck wacli processes: `pkill -9 wacli-readonly` (sandbox)\n2. Run `~/clawd/skills/thoughtful/scripts/generate-summary.sh` in sandbox\n3. Read the generated prompt from `thoughtful-data/context/last-prompt.txt`\n4. Create a warm, thoughtful summary following the communication coach framework\n5. Deliver via Telegram to Clawdgroup topic",
"deliver": true,
"channel": "telegram",
"to": "-1003893728810:topic:38"
}
}
Why 3x daily?
Why separate sync + summary?
Note: The agent will set this up automatically during first-time configuration. Users can adjust the timing during setup.
~/clawd/whatsapp/~/.wacli (read-only, no sending)Detects if someone's tone is shifting:
Tracks how long you typically take to reply per person:
Notices patterns like:
Extracts promises you made:
Flags if you haven't followed through.
Catches mentions of:
Remembers choices you made:
Helps you stay consistent and avoid contradicting yourself later.
This isn't about productivity hacks or inbox zero. It's about staying human in your digital communication:
Your relationships deserve better than "sorry, forgot to reply." This helps you be the communicator you want to be.