WeChat Daily Skill
Overview
This Skill extracts chat records from the encrypted local database of WeChat Mac 4.x and generates daily AI-powered essence summary reports.
Applicable Conditions:
- macOS system
- WeChat Mac 4.x installed
- Python 3.9+
Execution Flow
Phase 1: Environment Check (Each Execution)
Check if
~/.config/wechat-daily.json
exists and contains
or
:
- Does not exist or is incomplete → Enter Phase 2 (First-time Configuration)
- Exists and is complete → Enter Phase 3 (Generate Daily Report)
Phase 2: First-time Configuration (New User Guide)
Step 2a: Install Python Dependencies
bash
pip3 install pycryptodome zstandard
Step 2b: Extract Database Keys
Run the key extraction script:
bash
python3 {{SKILL_DIR}}/scripts/extract_keys.py
The script will automatically:
- Check if WeChat is installed
- Copy WeChat to and remove Hardened Runtime via codesign
- Check/install frida
- Kill WeChat → spawn and start via frida → inject hook to capture keys
- Prompt user to log in to WeChat and wait 30 seconds
- Automatically detect wxid and database path
- Output
~/.config/wechat-keys.json
and update ~/.config/wechat-daily.json
Important: After running the script, the user needs to manually log in to WeChat, and the keys will be automatically captured during startup.
Step 2c: Select Monitored Objects
Run the list script to display all group chats and contacts:
bash
python3 {{SKILL_DIR}}/scripts/list_contacts.py
Then ask the user questions (using the AskUserQuestion tool):
Question 1: "Which group chats do you want to monitor? Please select from the above list and enter the group chat names (separate multiple with commas)."
Question 2: "Which specific individuals do you want to monitor? Please enter the contact's remark name or nickname (separate multiple with commas), you can skip if none."
After the user answers, save the selections to the
and
fields in
~/.config/wechat-daily.json
.
Step 2d: Configure Output Path
Ask the user:
Question 3: "Which directory should the daily report be saved to?" (Default:
)
Save to the
field in the configuration file.
Step 2e: Generate First Daily Report
After configuration is complete, automatically execute Phase 3.
Phase 3: Generate Daily Report
Step 3a: Run Extraction Script
By default, extract complete data from 08:00 yesterday to 08:00 today:
bash
python3 {{SKILL_DIR}}/scripts/wechat_daily.py
If the user specifies a specific date (e.g., "Daily report for April 16", "2026-04-16"), use the date mode:
bash
python3 {{SKILL_DIR}}/scripts/wechat_daily.py YYYY-MM-DD
If the user has a custom configuration file path:
bash
python3 {{SKILL_DIR}}/scripts/wechat_daily.py --config /path/to/config.json
Step 3b: Read Original Report
Read the original report file generated in Step 3a. The report path can be obtained from the script output, or find
under the configured
.
Step 3c: Generate Essence Summary
You are an expert in extracting group chat essences. Rewrite the report based on the original messages according to the following format:
Format Requirements:
- Opening: 1-2 paragraphs of natural language summarizing the most core content of the day (no markdown format)
- Body: Classify by group, extract valuable discussion points for each group
- Do not use markdown bold and heading syntax, use emoji + lists
- Keep links as they are
- Retain key names
- Fixed ending format: "This briefing is automatically generated by AI"
Classification Reference (flexibly use according to actual content):
- 🛠 Tool Tips/Practical Experience
- 💰 Resource Recommendations
- 📡 Industry Trends
- 💡 View Collisions
- 🎭 Group Member Interesting Stories
- 🐟 Daily Group Chat
- 📈 Investment/Crypto
- 💬 Topic Discussions
Content Specifications:
- Highlight key points and filter unimportant small talk
- Use popular language, retain vivid expressions and golden phrases from group members
- Do not include non-text messages such as images, voices, and emojis in the summary
- Do not include system messages (retraction, joining group, etc.) in the summary
- Do not write names, only summarize essence content (unless it is a public figure or specifically designated by the user)
- Do not write private chat summaries (unless the user has configured monitor_contacts)
- Do not write "Other Group Chat Quick Overview"
- Mark the number of messages for each group after the group name, e.g.,
Group Name (123 messages)
- Separate groups with
Step 3d: Write to File
Overwrite the essence summary to:
{report_dir}/YYYY-MM-DD.md
Then inform the user that the daily report has been generated, and briefly summarize the 1-2 most core things of the day.
Configuration File Format
~/.config/wechat-daily.json
:
json
{
"wxid": "wxid_xxx",
"db_base_path": "~/Library/Containers/.../db_storage",
"monitor_groups": ["Group Name 1", "Group Name 2"],
"monitor_contacts": [],
"report_dir": "~/Documents/wechat-daily",
"time_mode": "8am_to_8am"
}
~/.config/wechat-keys.json
(automatically generated, do not edit manually):
json
{
"message_0": "hex_key",
"contact": "hex_key",
"session": "hex_key"
}
Dependencies
- Python 3.9+
- pycryptodome
- zstandard
- frida + frida-tools (only required for first-time key extraction)