Agent skill

baoyu-wechat-summary

Summarizes WeChat group chat highlights into a structured digest using the local wx-cli binary (https://github.com/jackwener/wx-cli). Generates a normal digest by default; a roast (毒舌) version is opt-in. Maintains per-group history (history.json + history-digests.jsonl) and per-user profiles across runs, with privacy guardrails baked in. Use when the user asks to "总结群聊", "群聊精华", "群聊摘要", "summarize group chat", "group chat digest", mentions a WeChat group name with a time range, says "帮我看看 XX 群最近聊了什么", "XX 群有什么值得看的", or asks to "回溯画像" / "初始化画像" / "backfill profiles". Adds the roast version when

majiayu000github.com/majiayu000GitHub ↗
claude-codeMIT
Install
npx skills add majiayu000/claude-skill-registry --skill baoyu-wechat-summary --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 2
SKILL.md size: 29 KB
Bundled scripts: none
Version: 1.117.3
Path: skills/analysis/baoyu-wechat-summary/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 534
Language: HTML

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Summarizes WeChat group chat highlights into a structured digest using the local wx-cli binary. By default, it generates a normal digest; a roast version is optional. It maintains per-group history and per-user profiles across runs, with privacy guardrails baked in. It is invoked when the user asks to summarize a group chat and provides options to use a roast version when requested.

How it works

  • Verifies environment prerequisites for wx-cli, ensuring wx-cli is installed, the ~/.wx-cli directory is correctly owned, and wx-cli is initialized with WeChat running.
  • Reads user preferences from EXTEND.md to determine default version (normal, roast, or both) and data_root location. If EXTEND.md is missing, it blocks until setup provides preferences.
  • Parses the user’s request to extract a group name and a time-range (e.g., 今天, 最近7天, 某天到某天) and determines the digest version to generate based on default settings and user keywords (毒舌/roast to include roast; 只要正经的/normal only to exclude roast; 都来一份/both for both).
  • Resolves the target group by querying wx contacts for the group and filtering for chatrooms, handling disambiguation if needed. Computes a folder path as {data_root}/{group_id}-{sanitized_group_name}/ and renames folders if the group name changes.
  • Fetches messages using wx history with appropriate --since and --until dates, handling incremental mode by referencing history.json’s last_message_time and skipping messages older than that. For large ranges, processes in chunks and uses a per-3-day digest strategy to maintain quality.
  • Parses message schema fields (id, from_wxid, from_nickname, content, timestamp, chat_type, quote/reply fields) and formats timestamps for display. Replaces sender display with self_display for the user’s messages.
  • Loads sender profiles from profiles/ and, if roast is enabled, profiles-roast/.md files for active users in the batch, building an internal profile context not shown in the final digest.
  • Detects potential in-chat digests in-history to avoid duplication, and can prompt the user to anchor to a different start time if found.
  • Detects and handles @bot requests by collecting them in an internal list for a dedicated section in the digest, using aliases from EXTEND.md (default bot, 精华bot).

When to use it

Use when the user asks to summarize or extract highlights from a WeChat group, mentions a time range, or asks to backfill/initialize user profiles. Trigger phrases include: Chinese terms like "总结群聊", "群聊精华", "群聊摘要" and English equivalents like "summarize group chat", "group chat digest"; and also when the user mentions a specific group name with a time range or asks to backfill portraits.

What it can touch

  • Executes the wx-cli binary (wx) to fetch history and metadata, requiring dangerouslyDisableSandbox: true due to sandbox restrictions. Commands referenced include: "wx --version", "wx sessions", "wx history". The folder structure for digests is {data_root}/{group_id}-{sanitized_group_name}/, with subfolders like profiles/ and profiles-roast/ for per-user data. The system reads and writes history.json, history-digests.jsonl, and per-user profile files in those folders.

Caveats

  • wx-cli relies on macOS user-owned data directories outside the sandbox; running commands requires explicitly disabling sandbox. The user is warned to use /sandbox to adjust restrictions.
  • The behavior depends on EXTEND.md for defaults; if missing, first-time setup is blocking and requires user input to provide self_wxid, self_display, default_version, and data_root.
  • Large digests may be chunked to avoid token budget issues; incremental mode assumes history.json exists or falls back to default_time_range if not present.
  • The roast version is optional and must be explicitly requested; otherwise, non-roast output is generated by default.
From the SKILL.md

# WeChat Group Summary 群聊精华提取专家。把零散的微信群聊记录提炼成结构化、可读性强的简报,并维护跨次运行的群聊历史与群友画像。底层依赖外部 [wx-cli](https://github.com/jackwener/wx-cli) 二进制(`wx` 命令),不打包脚本。 > **⚠️ Sandbox restriction** > > wx-cli reads from `~/.wx-cli/` (config, cache, daemon socket) and from WeChat's data directory (`~/Library/Containers/com.tencent.xinWeChat/` on macOS). Both paths are outside Claude Code's default sandbox. Every `wx` command in this skill needs to run with `dangerouslyDisableSandbox: true` from the start — don't waste a sandbox attempt first. The user can use `/sandbox` to view/edit restrictions. ## User Input Tools When this skill prompts the user, follow this tool-selection rule (priority order): 1. **Prefer built-in user-input tools** exposed by the current agent runtime — e.g., `AskUserQuestion`, `request_user_input`, `clarify`, `ask_user`, or any equivalent. 2. **Fallback**: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question. 3. **Batching**: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order. Concrete

What's inside
Steps it walks through
  1. User Input Tools
  2. Prerequisites
  3. Preferences (EXTEND.md)
  4. Supported keys
  5. First-Time Setup (BLOCKING)
  6. Workflow
  7. Step 1: Parse the user's request
  8. Step 2: Find the group + resolve folder path
  9. Step 3: Fetch messages
  10. Step 3.5: Parse the message schema
  11. Step 3.6: Resolve self + ambiguous nicknames
  12. Step 3.7: Load user profiles
  13. Step 3.8: Detect existing in-chat digests (optional)
  14. Step 3.9: Detect @bot requests (if any)
Ships with 1 file
  • metadata.json
Commands it runs
ls -la ~/.wx-cli/ 2>/dev/null | head -5
sudo chown -R $(whoami) ~/.wx-cli
sudo rm -f ~/.wx-cli/daemon.pid ~/.wx-cli/daemon.sock
wx daemon start
wx whoami --json 2>/dev/null
wx sessions --json --limit 20 2>/dev/null
wx contacts --query "<group_name>" --json
wx history "<group_name_or_id>" --since YYYY-MM-DD --until YYYY-MM-DD -n 5000 --json
wx history "<group_name_or_id>" --since YYYY-MM-DD --until YYYY-MM-DD -n 5000 --json > "$TMPDIR/wx-messages.json"
wc -c "$TMPDIR/wx-messages.json"
More from claude-skill-registry
All skills →
About this skill
What does the baoyu-wechat-summary skill do?

Summarizes WeChat group chat highlights into a structured digest using the local wx-cli binary (https://github.com/jackwener/wx-cli). Generates a normal digest by default; a roast (毒舌) version is opt-in. Maintains per-group history (history.json + history-digests.jsonl) and per-user profiles across runs, with privacy guardrails baked in. Use when the user asks to "总结群聊", "群聊精华", "群聊摘要", "summarize group chat", "group chat digest", mentions a WeChat group name with a time range, says "帮我看看 XX 群最近聊了什么", "XX 群有什么值得看的", or asks to "回溯画像" / "初始化画像" / "backfill profiles". Adds the roast version when

How do I install it?

Run `npx skills add majiayu000/claude-skill-registry --skill baoyu-wechat-summary --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From majiayu000/claude-skill-registry, a repository with 534 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going