# wx-favorites-report

Pulls your WeChat for macOS favorites out of the encrypted database and turns them into a single interactive HTML report.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 401 installs · ★ 88
- Author: reason-machines
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/reason-machines/trending-skills/tree/HEAD/skills/wx-favorites-report/SKILL.md
- Updated: 2026-10-09
- HTML: https://affpapa.org/en/nevibecode/skills/wx-favorites-report

## What it does

The skill walks the whole chain. It attaches to the WeChat client with Frida, catches PBKDF2 calls to grab the encryption keys, decrypts the SQLCipher `favorite.db`, parses the XML stored in each record, and renders one HTML file with charts, a word cloud and a filterable card browser.

macOS only, and WeChat Mac 4.x has to be installed and logged in. You also need Python 3.9+ and Frida 17.x, installed with `pip3 install frida frida-tools pycryptodome`. The App Store build blocks injection, so copy it and re-sign without entitlements first. Do not run any of this with `sudo` — the data directory shifts to `/var/root/…` and the database path stops resolving.

Timing matters: the key only shows up once you open the 收藏 tab, so a hook started earlier logs nothing. Inside `scripts/` there is `parse_favorites.py`, which unifies SQLite, CSV or JSON into one JSON file, `generate_report.py` for the HTML, and `demo_data.py` with synthetic records if you want to test the pipeline without touching your own database.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill wx-favorites-report -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/wx-favorites-report/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/wx-favorites-report/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill wx-favorites-report -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/wx-favorites-report/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill wx-favorites-report -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/wx-favorites-report/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install reason-machines/trending-skills wx-favorites-report
```

2. **Manually: put the files in place**
- File: `.github/skills/wx-favorites-report/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill wx-favorites-report -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/reason-machines/trending-skills --path skills/wx-favorites-report
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/wx-favorites-report/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill wx-favorites-report -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/reason-machines/trending-skills/tree/HEAD/skills/wx-favorites-report/SKILL.md

## When to use it
- capture the WeChat encryption key from a running client
- decrypt `favorite.db` without hand-rolling SQLCipher
- turn XML favorites into readable JSON
- produce one HTML file with charts and a word cloud
- test the pipeline on demo data instead of a real database

## Example prompts
- Run the wx-favorites-report pipeline and build an HTML report from my WeChat favorites
- Decrypt `favorite.db` and parse the records into JSON with `parse_favorites.py`
- Generate the report from `/tmp/favorite_decrypted.db` using `generate_report.py`

## Similar
- [xlsx](https://affpapa.org/en/nevibecode/skills/xlsx.md) — skill · 187223 installs
- [google-agents-cli-observability](https://affpapa.org/en/nevibecode/skills/google-agents-cli-observability.md) — skill · 511300 installs
- [caveman-evidence-review](https://affpapa.org/en/nevibecode/skills/caveman-evidence-review.md) — skill · 104500 installs
- [migration](https://affpapa.org/en/nevibecode/skills/migration.md) — skill · 103900 installs
- [performance-optimization](https://affpapa.org/en/nevibecode/skills/performance-optimization.md) — skill · 65200 installs
- [supabase](https://affpapa.org/en/nevibecode/skills/supabase.md) — skill · 8 installs

From the same set: [reason-machines/trending-skills](https://affpapa.org/en/nevibecode/by/reason-machines/trending-skills.md) — 139 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
