skills/agentlyhq/skills/summarize-whatsapp-group-chats

summarize-whatsapp-group-chats

SKILL.md

Summarize WhatsApp Group Chats

Use the wacli CLI to fetch and summarize WhatsApp group chats. No exceptions — always use wacli.

Prerequisites

  • wacli is already installed and authenticated on the user's machine
  • If wacli commands fail with auth errors, ask the user to re-authenticate before proceeding

Step 1: Discover Available Group Chats

Before fetching messages, list available group chats to find the correct chat name or ID:

wacli groups list

If the user has specified a chat name, fuzzy-match it against the output. Confirm with the user if ambiguous, especially with similar group names.


Step 2: Fetch Messages

Default behavior: fetch the past 24 hours. Adjust if the user specifies a different time range.

# Fetch last 24 hours (default) (please update YYYY-MM-DD below for --after and --before)
wacli messages --chat "<chat-id>" --after "<YYYY-MM-DD of one day before today's date>" --before "<YYYY-MM-DD of today's date>"

# Fetch by specific date range (if user requests)
wacli messages --chat "<chat-id>" --after "YYYY-MM-DD" --before "YYYY-MM-DD"

# Fetch by message count (if user requests)
wacli messages --chat "<chat-id>" --limit 200

Capture the raw output. Note the timestamp of the oldest and newest message in the fetched data — this becomes the data freshness marker.


Step 3: Export (Optional but Default)

By default, export the raw chat to a .json file before summarizing. Filename format:

[chat-name]-YYYYMMDD.txt
  • Use today's date
  • Sanitize the chat name: lowercase, replace spaces with hyphens, strip special characters
  • Example: product-team-20250315.txt
wacli messages --chat "<chat-id>" --after "<YYYY-MM-DD of one day before today's date>" --before "<YYYY-MM-DD of today's date>" > "[chat-name]-YYYYMMDD.txt"

If the user specifies a different filename or path, use that instead.

If user prefers JSON, follow that by adding global --json flag to wacli.


Step 4: Summarize — Chief of Staff Style

Summarize the fetched messages. Write like a chief of staff briefing an executive: concise, structured, action-oriented. No padding, no filler.

Summary Format

## [Chat Name] — Summary
**Data covers:** [oldest message timestamp] → [newest message timestamp]
**Fetched at:** [current timestamp]

### Key Decisions
- ...

### Action Items
- [Person] — [what they need to do]

### Notable Discussions
- ...

### FYI / Context
- ...

Only include sections that have content. Skip empty sections entirely.

Summarization Rules

  • Never hallucinate. Every point must come directly from the fetched messages.
  • Do not invent names, facts, decisions, or action items. If something is unclear, say so.
  • Be brief. Aim for signal density — one tight sentence per point.
  • Attribute where it matters. For decisions and action items, note who said or owns what.
  • Flag urgency. If something is time-sensitive or unresolved, note it explicitly.
  • Ignore noise. Skip greetings, reactions, one-word replies, and off-topic banter unless they reveal something important.

Step 5: Handle User Overrides

The user may ask for changes. Always comply. Common overrides:

User Request What to Do
Different time range Re-fetch with --since / --until adjusted
Different language Summarize in the requested language
More detail on a topic Expand that section, pull specific messages
Different filename Rename the export file
Skip export Don't write the .txt file
Longer / shorter summary Adjust verbosity accordingly
Specific people only Filter messages by sender in summary

Whatever the user asks — as long as it's achievable via wacli and summarization — do it.


Error Handling

Error Response
wacli not found Tell user to install and authenticate wacli first
Auth failure Ask user to re-run wacli auth or equivalent
Chat not found List available chats with wacli chats and ask user to confirm
No messages in range Say so clearly; offer to widen the time range
Empty output Do not summarize. Report that no messages were found.

Quick Reference: wacli Commands

Usage:
  wacli messages [command]

Available Commands:
  context     Show message context around a message ID
  list        List messages
  search      Search messages (FTS5 if available; otherwise LIKE)
  show        Show one message

Flags:
  -h, --help   help for messages

Global Flags:
      --json               output JSON instead of human-readable text
      --store string       store directory (default: ~/.wacli)
      --timeout duration   command timeout (non-sync commands) (default 5m0s)
wacli chats                          # List all chats
wacli messages --chat "<chat-id>" --after "<YYYY-MM-DD of one day before today's date>" --before "<YYYY-MM-DD of today's date>" # Fetch last 24 hours (default) (please update YYYY-MM-DD below for --after and --before)

If wacli has different flags on the user's version, run wacli --help or wacli messages --help to check and adapt.

Weekly Installs
1
GitHub Stars
2
First Seen
5 days ago
Installed on
amp1
cline1
openclaw1
opencode1
cursor1
kimi-cli1