wx-favorites-report Review: WeChat Favorites Visualization Tool - One-Click Interactive Reports

wx-favorites-report Review: WeChat Favorites Visualization Tool - One-Click Interactive Reports

wx-favorites-report Review: WeChat Favorites Visualization Tool - One-Click Interactive Reports

Have you ever wondered how much stuff is actually hiding in your WeChat Favorites? All those articles, videos, and links you saved on a whim — how many of them have you never opened again?

wx-favorites-report is an open-source WeChat favorites visualization tool that can decrypt and parse data end-to-end from the encrypted local WeChat Mac database, then generate an interactive HTML report with 7 chart types. Simply put — it turns your WeChat Favorites from a “black box” into a “dashboard.”

1. What is wx-favorites-report

wx-favorites-report is an open-source project by developer zhuyansen, initially released as a Claude Code Skill and later integrated into projects like claude-code-skills-zh.

Its core capabilities can be summarized in three steps:

  1. Decryption: Extracts keys from the encrypted WeChat Mac client database (SQLCipher) and decrypts it
  2. Parsing: Converts structured XML data in SQLite into unified JSON
  3. Visualization: Generates a single-file HTML report with statistical dashboards, monthly trends, type distribution, and more

The entire process can be fully automated — if you use Claude Code, just say “WeChat favorites visualization” and the tool will run through the whole pipeline automatically.

2. Core Features in Detail

2.1 Data Extraction: From Encrypted DB to Plaintext

WeChat Mac 4.x stores favorites data in a SQLCipher-encrypted SQLite database. wx-favorites-report uses frida dynamic injection to hook WeChat’s CCKeyDerivationPBKDF function and capture the key derivation process at runtime.

# Install dependencies
pip3 install frida frida-tools pycryptodome

# Prepare a signed copy of WeChat (bypass Hardened Runtime)
cp -R /Applications/WeChat.app ~/Desktop/WeChat.app
codesign --force --deep --sign - ~/Desktop/WeChat.app

Decryption parameters follow SQLCipher 4 standards: AES-256-CBC encryption, HMAC-SHA512 verification, PBKDF2 with 256,000 iterations.

2.2 Statistical Dashboard

The report’s homepage is a data overview panel displaying four core metrics:

  • Total Favorites: How many items you’ve saved in total
  • Days Spanned: Duration from your first favorite to now
  • Daily Average: Average number of favorites per day
  • Source Count: How many different sources your favorites come from

2.3 Seven Visualization Charts

Chart TypeWhat It ShowsInteraction
Monthly TrendsMonthly favorite count changesLine + area chart
Type DistributionArticle/video/link/image proportionsDonut chart
Source RankingTop 15 favorite sourcesHorizontal bar chart
Activity HeatmapDay-of-week × hour favorite frequencyHeat matrix
Time DistributionWhich time of day you favorite mostDual bar chart
Word CloudKeywords extracted from titles and descriptionsInteractive word cloud
Tag CloudWeChat favorites tag distributionClickable tags

2.4 Favorites Browser

The bottom of the report features a fully functional favorites browser supporting:

  • Filter by type (article/video/link/image)
  • Filter by tag
  • Full-text search
  • Multiple sort options
  • Paginated browsing
  • Click cards to view full content and original links

3. Technical Principles

3.1 WeChat Database Structure

WeChat Mac 4.x stores favorites data in favorite.db, located at:

~/Library/Containers/com.tencent.xinWeChat/Data/Documents/
  xwechat_files/<wxid>/db_storage/favorite/favorite.db

Unlike version 3.x which used a dual-table structure (FavItems + FavDataItem), 4.x switched to a single fav_db_item table with XML-formatted content fields.

3.2 The 6 Iterations of Key Extraction

This is the hardest part of the entire project. The developer went through 6 rounds of attempts:

RoundMethodResult
1C memory scan for x’hex’ formatFailed: WeChat 4.x doesn’t use this format
2Search for raw salt bytesFailed: False matches on ASCII strings
3HMAC brute-force verificationFailed: Filter conditions skipped the real location
4Unfiltered brute-force searchFailed: Keys are stored after PBKDF2 derivation
5DYLD hook / lldbFailed: macOS SIP blocked it
6frida + CCKeyDerivationPBKDFSuccess

The final solution hooks the system-level PBKDF2 function via frida, capturing the key derivation process when WeChat starts.

3.3 Data Processing Pipeline

Encrypted DB → frida extracts key → PyCryptodome decrypts → SQLite reads
→ XML parsing → Unified JSON → ECharts renders → Single-file HTML

4. Installation & Deployment

4.1 Requirements

ConditionDescription
OSmacOS (Apple Silicon or Intel)
WeChat VersionMac 4.x, logged in
Python3.9+
OptionalClaude Code (one-click execution)

4.2 Manual Installation Steps

Step 1: Install Python dependencies

pip3 install frida frida-tools pycryptodome

Step 2: Prepare a signed copy of WeChat

cp -R /Applications/WeChat.app ~/Desktop/WeChat.app
codesign --force --deep --sign - ~/Desktop/WeChat.app

Step 3: Extract keys

killall WeChat 2>/dev/null; sleep 2
# Run frida hook script
# After WeChat starts: log in → open "Favorites" page → wait 60 seconds

Step 4: Decrypt and generate report

# Parse data
python3 parse_favorites.py --input favorite_decrypted.db --output data.json

# Generate HTML report
python3 generate_report.py --input data.json --output report.html

# Local preview
python3 -m http.server 8765
# Open http://localhost:8765/report.html in browser

4.3 One-Click with Claude Code

If you have Claude Code installed, just say in conversation:

WeChat favorites visualization

Claude will automatically complete key extraction, decryption, parsing, and report generation.

5. Hands-On Tutorial: Generate Your First Favorites Report

5.1 Data Extraction

After running the frida script, WeChat will restart. At this point you need to:

  1. Log in to WeChat (scan QR code or confirm)
  2. Click the “Favorites” tab on the left
  3. Wait 60 seconds for frida to capture the keys

Keys are saved to /tmp/wechat_frida_keys.log, matched by salt to find the enc_key corresponding to favorite.db.

5.2 Database Decryption

Decrypt with Python:

from Crypto.Cipher import AES
import hashlib

# Get enc_key and salt from frida log
enc_key = bytes.fromhex("your_enc_key_here")

# SQLCipher 4 parameters
kdf_iter = 256000
page_size = 4096
reserve_size = 80  # IV(16) + HMAC(64)

# Decrypt page by page...

5.3 Report Generation & Customization

python3 generate_report.py --input data.json --output report.html

The generated report is a single-file HTML with all CSS and JavaScript inlined. You can double-click to open it directly, or upload it to any static hosting service.

6. Reading the Report: How to Analyze Your Favorites Data

6.1 Discover Usage Patterns

Through the activity heatmap, you can discover:

  • Do you favorite more on weekdays or weekends?
  • What time of day is your peak favoriting period?
  • Is there a “late-night phone scrolling and mass favoriting” pattern?

6.2 Content Preference Analysis

The type distribution chart reveals your favorites preferences:

  • If articles make up 80%+, you’re a “deep reading” user
  • If videos dominate, you prefer “fragmented learning”
  • If links dominate, it’s likely more “tool bookmarking”

6.3 Source Quality Assessment

The Top 15 Source Ranking helps you identify:

  • Which official accounts/websites do you favorite most?
  • Is the content quality from these sources consistently stable?
  • Are there sources worth unfollowing or adding to an RSS feed instead?

7. Comparison with Other WeChat Data Tools

ToolData TypePlatformVisualizationDifficulty
wx-favorites-reportFavoritesMac⭐⭐⭐⭐⭐Medium
WeChatMsgChat historyWindows⭐⭐⭐Medium
PyWxDumpChat history + contactsWindows⭐⭐High
WeChat built-in favorites searchFavoritesAll platforms⭐Low

wx-favorites-report’s unique advantages:

  1. Focused on the favorites scenario: Not as large and complex as chat history tools
  2. High visualization quality: 7 professional chart types, far beyond WeChat’s built-in list search
  3. Single-file output: View without installing additional software
  4. Claude Code integration: Complete the entire workflow with one sentence

If you’re also interested in WeChat chat history, check out our previous article PyWxDump Review.

8. Use Cases

8.1 Personal Data Management

Regularly generating favorites reports helps you:

  • Clean up outdated or useless favorites
  • Discover forgotten quality content
  • Build a material list for your personal knowledge base

8.2 Content Organization

If you’re a content creator, favorites reports can:

  • Analyze the fields and topics you follow
  • Discover patterns in where your content inspiration comes from
  • Provide data support for topic selection

8.3 Usage Habit Analysis

Reflect on your information consumption patterns from the data:

  • Is it “save and forget”?
  • Is your favoriting behavior related to anxiety?
  • How can you build a more effective information management system?

9. Limitations & Notes

9.1 Platform Limitations

  • macOS only: Key extraction relies on frida and the macOS WeChat client
  • WeChat version requirement: Currently adapted for Mac 4.x; 3.x has a different table structure
  • WeChat must be logged in: You need an actively used WeChat account

9.2 Data Privacy

  • All data processing is done locally — nothing is uploaded to any server
  • The report HTML file contains your favorites data — do not share it publicly
  • frida hooks the WeChat process while running; it’s recommended to close the signed copy after completion

9.3 Known Limitations

  • Original content for images/videos/files is stored on WeChat CDN (encrypted format) and cannot be previewed in the report
  • Article thumbnails come from WeChat official account CDN; internet access is needed to view the report
  • The desktop copy may need to be re-signed after each WeChat update

10. FAQ

Q1: Is wx-favorites-report safe? Will it leak my WeChat data?

All data processing is done entirely locally — nothing is uploaded to any server. frida only hooks the WeChat process locally to extract keys, and the generated report is a purely local HTML file. However, please keep the generated report file safe and do not share it publicly.

Q2: Does it support Windows or mobile WeChat?

Currently it only supports the WeChat Mac 4.x client on macOS. The encryption mechanisms on Windows and mobile are different and not yet supported. If you need a WeChat data tool for Windows, check out PyWxDump.

Q3: Will it still work after WeChat updates?

Major WeChat version updates may change the database structure or encryption method, in which case you’ll need to wait for the tool to be adapted. Minor updates usually don’t affect usage, but the desktop copy needs to be re-signed after each update.

Q4: Can I share the generated report?

The report is a single-file HTML that can be viewed offline. However, since it contains your personal favorites data, it’s recommended for personal use only — do not upload it to public websites or share it with others.

Q5: Can I use it without Claude Code?

Yes. Claude Code simply provides the convenience of one-click execution; you can complete the entire workflow manually by following the documentation steps. The core scripts (parse_favorites.py and generate_report.py) are standalone Python programs.

11. Summary

wx-favorites-report is the most complete WeChat favorites visualization solution I’ve seen. It solves the pain point of “WeChat favorites data cannot be exported and analyzed,” with a fairly mature full-chain automation from encrypted database to interactive report.

Pros:

  • Full-chain automation, from decryption to report with one click
  • 7 visualization chart types with rich data insights
  • Single-file HTML output, zero-dependency viewing
  • Claude Code integration lowers the barrier to entry

Cons:

  • macOS only — Windows/mobile users cannot use it
  • The key extraction process has some technical barriers
  • Image/video content cannot be previewed in the report

If you’re a “heavy favoriting user” who wants to figure out what you’ve actually saved and what your favoriting habits look like, wx-favorites-report is worth a try.


Hope this blog post was helpful! If you’re interested in WeChat data management, check out our AI Tools Review Collection to learn more about practical data analysis and visualization tools.