thoughtful
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.
What It Does
๐ Smart Tracking
- Pending tasks - action items from any conversation, tracked until complete
- Waiting on - things you asked about, waiting for responses
- Commitments - promises you made, deadlines you mentioned
- Relationship dynamics - sentiment shifts, response patterns, quiet conversations
- Important dates - birthdays, events, deadlines mentioned in chat
- Decisions - choices you made that you might need to remember
๐ง Communication Coaching
Acts as your emotionally intelligent assistant to help you:
- Catch things left hanging that need reply or closure
- Notice when tone/sentiment shifts in relationships
- Find good moments to check in or express appreciation
- Re-engage quiet conversations without awkwardness
- Stay intentional, not reactive
๐ Daily Summaries
Warm, conversational catch-ups that feel like a friend briefing you, not a robot checklist.
Includes:
- What's new (last 24h)
- What's still pending (from days/weeks ago)
- Relationship insights
- Suggested conversation starters
- Communication nudges
Storage
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
Configuration
Interactive Setup (Recommended): When first using the skill, the agent will guide you through setup via chat:
- Which WhatsApp groups to track (shows list, you select)
- Priority contacts to always highlight
- Summary timing preferences
- Tracking features to enable/disable
All configuration happens through conversation - no manual file editing needed.
Manual Configuration (Advanced):
Edit ${WORKDIR}/thoughtful-data/config.json to:
- Add/remove groups from whitelist
- Mark priority contacts
- Adjust tracking preferences
- Set summary timing
Communication Coach Prompting
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.
How It Works
Data Collection
- Fetches messages from wacli-readonly (last 24h + older pending items)
- Processes DMs + whitelisted groups only
- Extracts action items, sentiment, commitments, dates
- Updates tracking files
Analysis & Insights
Uses LLM to:
- Understand conversation context and tone
- Identify what needs attention vs what can wait
- Detect relationship patterns (someone getting frustrated, conversations going quiet)
- Suggest thoughtful responses and check-ins
Summary Generation
Creates warm, human summary with:
- What's new - fresh messages and action items
- Still pending - older tasks not yet complete
- Relationship insights - "Alice has asked 3 times, might be frustrated"
- Suggested actions - "Good time to check in with Bob"
- Conversation starters - Specific prompts you can send
Interactive Task Management
Summary includes buttons to:
- โ Mark tasks done
- โญ๏ธ Still pending
- โ Won't do
- ๐ฌ Draft reply
Example Summary
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]
First-Time Setup
When a user first installs the skill, guide them through interactive setup:
Authenticate wacli-readonly
- Run
wacli-readonly auth --qr-file /tmp/whatsapp-qr.png(in sandbox) - Send QR code image to user
- Wait for authentication confirmation
- Run
List available groups
- Run
wacli-readonly groups list(in sandbox) - Show user their WhatsApp groups
- Ask which groups to include in summaries
- Run
Configure preferences
- Ask about priority contacts
- Confirm summary timing (default: 11am daily)
- Confirm tracking features (sentiment, commitments, etc.)
Create cron jobs
- Set up WhatsApp sync cron (10:30 AM, isolated session)
- Set up daily summary cron (11:00 AM, isolated session)
- Confirm both are scheduled correctly
Test run
- Generate first summary to verify setup
- Deliver via Telegram
Usage
IMPORTANT: All thoughtful operations run in sandbox.
When generating summaries:
- Use the
thoughtfulskill - Run scripts in sandbox:
exec("~/clawd/skills/thoughtful/scripts/generate-summary.sh", {host: "sandbox"}) - Read generated prompt from
thoughtful-data/context/last-prompt.txt - Use OpenClaw's LLM for summary generation
- Deliver via current channel
The skill will:
- Fetch messages from wacli-readonly (sandbox)
- Process and analyze conversations
- Generate thoughtful summary using OpenClaw LLM
- Track tasks and relationship insights
- Deliver warm, conversational summary
Cron Setup
IMPORTANT:
- Always use
sessionTarget: "isolated"- runs independently - Never use
sessionTarget: "main"- will not deliver properly - All operations run in sandbox
- Two crons total: sync + summary, each running 3x daily
- Sync runs 30 minutes before each summary to ensure fresh data
WhatsApp Sync (3x daily)
Runs 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"
}
}
Thoughtful Summary (3x daily)
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?
- Catch messages throughout the day without missing important updates
- Morning (11 AM): Start your day informed
- Evening (6 PM): Stay on top of afternoon conversations
- Night (11 PM): End-of-day catch-up before bed
Why separate sync + summary?
- WhatsApp sync can take time and needs fresh data before analysis
- 30-minute gap allows sync to complete before summary generation
- Using comma-separated hours in cron keeps it simple (2 crons total)
Note: The agent will set this up automatically during first-time configuration. Users can adjust the timing during setup.
Privacy & Security
- All data stored locally in
~/clawd/whatsapp/ - wacli-readonly database in
~/.wacli(read-only, no sending) - No external services except OpenClaw LLM for summaries
- All operations run in sandbox for isolation
Tracking Features Explained
Sentiment Trends
Detects if someone's tone is shifting:
- "Getting frustrated" (multiple follow-ups, shorter messages)
- "Going quiet" (reduced frequency, shorter replies)
- "More engaged" (longer messages, asking questions)
Response Time Patterns
Tracks how long you typically take to reply per person:
- Helps identify if you're slower than usual with someone
- Flags when your delay might be noticed
Recurring Topics
Notices patterns like:
- "Bob always asks about project updates on Fridays"
- "Alice sends restaurant links before dinner plans"
Commitment Tracking
Extracts promises you made:
- "I'll send that by Tuesday"
- "Let me think about it and get back to you"
- "I'll check and let you know"
Flags if you haven't followed through.
Important Dates
Catches mentions of:
- Birthdays, anniversaries
- Deadlines, launch dates
- Meetings, events
- "Next week," "end of month," etc.
Decision Tracking
Remembers choices you made:
- "Let's go with Option A"
- "I decided not to attend"
- "We agreed on 7pm"
Helps you stay consistent and avoid contradicting yourself later.
Tips for Best Results
- Whitelist carefully - Only add groups you actively care about
- Mark priority contacts - VIPs always show in summary
- Review summaries daily - Interactive task completion keeps tracking accurate
- Use conversation starters - They're tailored to your actual context
- Act on relationship insights - Small check-ins prevent bigger issues
Philosophy
This isn't about productivity hacks or inbox zero. It's about staying human in your digital communication:
- Remember what matters to people
- Show up consistently in relationships
- Communicate with intention, not just reaction
- Catch small things before they become big things
Your relationships deserve better than "sorry, forgot to reply." This helps you be the communicator you want to be.