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/)
CODEBLOCK0
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:
- 1. 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
- 1. 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
CODEBLOCK1
First-Time Setup
When a user first installs the skill, guide them through interactive setup:
- 1. 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
- 2. List available groups
- Run
wacli-readonly groups list (in sandbox)
- Show user their WhatsApp groups
- Ask which groups to include in summaries
- 3. Configure preferences
- Ask about priority contacts
- Confirm summary timing (default: 11am daily)
- Confirm tracking features (sentiment, commitments, etc.)
- 4. 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
- 5. Test run
- Generate first summary to verify setup
- Deliver via Telegram
Usage
IMPORTANT: All thoughtful operations run in sandbox.
When generating summaries:
- 1. Use the
thoughtful skill - Run scripts in sandbox: INLINECODE6
- Read generated prompt from INLINECODE7
- 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
CODEBLOCK2
Thoughtful Summary (3x daily)
Runs at 11:00 AM, 6:00 PM, 11:00 PM
CODEBLOCK3
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 INLINECODE10
- 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
- 1. 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.
thoughtful
你的WhatsApp贴心伴侣。
超越简单的消息摘要——帮助你维护人际关系,捕捉那些被遗漏的细节,带着意图去沟通,而不是被动回应。
功能
📊 智能追踪
- - 待办任务 - 任何对话中的行动项,持续追踪直至完成
- 等待回复 - 你询问过、正在等待回复的事项
- 承诺事项 - 你许下的承诺、提及的截止日期
- 关系动态 - 情绪变化、回复模式、安静的对话
- 重要日期 - 聊天中提到的生日、活动、截止日期
- 决策记录 - 你可能需要记住的选择
🧠 沟通教练
作为你的情商助手,帮助你:
- - 发现那些悬而未决、需要回复或了结的事项
- 察觉关系中语气/情绪的变化
- 找到合适的时机问候或表达感谢
- 重新开启安静的对话而不显尴尬
- 保持主动沟通,而非被动反应
📝 每日摘要
温暖、对话式的回顾,感觉像朋友在向你汇报,而不是机器人的清单。
包含:
- - 新鲜事(过去24小时)
- 仍待处理(几天/几周前的)
- 关系洞察
- 建议的对话开场白
- 沟通提醒
存储
所有数据存储在:${WORKDIR}/thoughtful-data/(默认为 ~/clawd/thoughtful-data/)
thoughtful-data/
├── config.json # 你的偏好设置
├── state.json # 处理状态
├── tasks.json # 待办事项、承诺、等待回复
├── people.json # 每个联系人的关系追踪
├── summaries/ # 历史摘要
└── context/ # 每个聊天的对话上下文
配置
交互式设置(推荐):
首次使用该技能时,智能助手将通过聊天引导你完成设置:
- - 选择要追踪的WhatsApp群组(显示列表,由你选择)
- 设置始终高亮显示的优先联系人
- 选择摘要发送时间偏好
- 启用/禁用追踪功能
所有配置通过对话完成——无需手动编辑文件。
手动配置(高级):
编辑 ${WORKDIR}/thoughtful-data/config.json 以:
- - 添加/移除白名单中的群组
- 标记优先联系人
- 调整追踪偏好
- 设置摘要发送时间
沟通教练提示框架
该技能使用以下框架(灵感来自littlebird):
扮演一位贴心、实用且情商高的沟通教练。
通过以下方式改善与同事、朋友和同伴的沟通:
- 1. 反思互动 - 我是否遗漏了什么?语气是否有变化?
- 建议问候时机 - 适合联系或表达感谢的好时机
- 提供对话开场白 - 开启/重新开启对话的贴心提示
- 重新参与指导 - 如何不尴尬地重新开启安静的对话
语气: 清晰、温暖、直接。不啰嗦,不机械。实用至上。
工作原理
数据收集
- 1. 从wacli-readonly获取消息(过去24小时 + 更早的待办事项)
- 仅处理私聊和白名单群组
- 提取行动项、情绪、承诺、日期
- 更新追踪文件
分析与洞察
使用大语言模型:
- - 理解对话上下文和语气
- 识别哪些需要关注、哪些可以等待
- 检测关系模式(某人开始不耐烦、对话变得安静)
- 建议贴心的回复和问候时机
摘要生成
生成温暖、人性化的摘要,包含:
- - 新鲜事 - 新消息和行动项
- 仍待处理 - 尚未完成的旧任务
- 关系洞察 - Alice已经问了3次,可能有些不耐烦了
- 建议行动 - 是时候问候一下Bob了
- 对话开场白 - 你可以直接发送的特定提示
交互式任务管理
摘要包含按钮:
- - ✅ 标记完成
- ⏭️ 仍待处理
- ❌ 不做
- 💬 草拟回复
示例摘要
早上好,Neil!☀️
以下是你的WhatsApp回顾:
🆕 新鲜事(过去24小时):
Alice在等你回复(3条消息)
她问了两次关于周二会议的事,还发了一个餐厅链接。
感觉比较紧急——她提到今晚之前需要知道。
Bob开始着急了(2条消息)
他要的设计文件?现在说今天下班前就要。
这事已经拖了2天了。
家庭派对群组(12条消息)
周末计划逐渐确定。他们在组织谁带什么。
不急,但你最好在周六前确认一下。
⏰ 仍待处理:
- - 确认周二会议 - Alice(已过5天,问了3次)
- 发送设计文件 - Bob(紧急,已过2天)
- 审阅合同 - 律师(低优先级,已过1周)
💡 沟通洞察:
需要关注的关系:
她可能因为你还没确认而感到沮丧
值得重新开启的安静对话:
- - 已经2周没听到Priya的消息了(你问过她的项目)
- Charlie在你说了会考虑他的想法后就没再说话
📝 建议行动:
给Alice:
嘿!抱歉回复晚了——周二可以。那个餐厅看起来
很棒,我们7点见?
给Bob:
正在处理——今天下午3点前把文件发给你。感谢耐心等待!
给Priya(重新联系):
嘿Priya!一直在想你提到的那个项目——
进展如何?
你完成了吗:确认与Alice的周二会议?
[✅ 完成] [⏭️ 仍待处理] [❌ 不做] [💬 草拟回复]
首次设置
当用户首次安装该技能时,引导他们完成交互式设置:
- 1. 验证wacli-readonly
- 运行 wacli-readonly auth --qr-file /tmp/whatsapp-qr.png(在沙箱中)
- 将二维码图片发送给用户
- 等待验证确认
- 2. 列出可用群组
- 运行 wacli-readonly groups list(在沙箱中)
- 向用户展示他们的WhatsApp群组
- 询问哪些群组要包含在摘要中
- 3. 配置偏好
- 询问优先联系人
- 确认摘要发送时间(默认:每天上午11点)
- 确认追踪功能(情绪、承诺等)
- 4. 创建定时任务
- 设置WhatsApp同步定时任务(上午10:30,隔离会话)
- 设置每日摘要定时任务(上午11:00,隔离会话)
- 确认两者都已正确安排
- 5. 测试运行
- 生成第一个摘要以验证设置
- 通过Telegram发送
使用方法
重要提示:所有thoughtful操作均在沙箱中运行。
生成摘要时:
- 1. 使用 thoughtful 技能
- 在沙箱中运行脚本:exec(~/clawd/skills/thoughtful/scripts/generate-summary.sh, {host: sandbox})
- 从 thoughtful-data/context/last-prompt.txt 读取生成的提示
- 使用OpenClaw的大语言模型生成摘要
- 通过当前渠道发送
该技能将:
- - 从wacli-readonly获取消息(沙箱)
- 处理和分析对话
- 使用OpenClaw大语言模型生成贴心的摘要
- 追踪任务和关系洞察
- 发送温暖、对话式的摘要
定时任务设置
重要提示:
- - 始终使用 sessionTarget: isolated - 独立运行
- 切勿使用 sessionTarget: main - 无法正常发送
- 所有操作在沙箱中运行
- 共两个定时任务: 同步 + 摘要,各每天运行3次
- 同步在每次摘要前30分钟运行 以确保数据新鲜
WhatsApp同步(每天3次)
运行时间:上午10:30、下午5:30、晚上10:30
json
{
name: wacli-sync-daily,
schedule: {kind: cron, expr: 30 10,17,22
*, tz: Asia/Calcutta},
sessionTarget: isolated,
payload: {
kind: agentTurn,
message: 运行WhatsApp同步:\n\n1. 终止任何卡住的wacli进程:pkill -9 wacli-readonly(沙箱)\n2. 在沙箱中运行 wacli-readonly sync(等待完成)\n3