{"adoption": {"forks": 690, "observed_at": "2026-08-28T04:06:37.021929+00:00", "stars": 2321}, "canonical_url": "https://ross.abutalabs.com/products/wechatdataanalysis", "card": {"archived": false, "artifact_type": "application", "description": "微信4.x数据解密并生成年度总结，高仿微信，实时更新，导出和修改聊天记录，朋友圈，收藏，自动回复等大量便捷功能", "domain": ["privacy", "messaging-platforms", "data-visualization", "developer-tools"], "enriched": true, "function": ["security", "database", "data-visualization", "chat-interface", "search-engine", "developer-tools"], "health_score": 100, "homepage": "https://lifearchiveproject.github.io/WeChatDataAnalysis/", "language": "Python", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["LifeArchiveProject/WeChatDataAnalysis"], "name": "LifeArchiveProject/WeChatDataAnalysis", "platform": ["windows", "python"], "pushed_at": "2026-08-26T08:32:27+00:00", "repo": "LifeArchiveProject/WeChatDataAnalysis", "stars": 2321, "tags": ["wechat", "sqlcipher", "database-decryption", "chat-export", "annual-wrapped", "memory-forensics", "local-first", "mcp", "macos", "electron", "desktop"], "topics": [], "urls": [], "use_cases": ["decrypt wechat chat database", "export wechat chat history to files", "generate wechat annual summary wrapped", "view wechat moments and favorites offline", "search and edit old wechat messages", "let an AI assistant query my wechat messages via mcp", "back up wechat data before uninstalling wechat"], "what_it_is": "A desktop application that decrypts WeChat 4.x's encrypted local databases (SQLCipher/WCDB) by scanning memory for the key, then lets users browse, search, edit, and export chat history, Moments, and favorites in a WeChat-like interface. It runs 100% locally, generates animated annual summary reports, and exposes an MCP server so AI assistants can query the message archive.", "when_to_avoid": ["you need to decrypt QQ or other messaging platforms (this targets WeChat 4.x only)", "you require a signed, formally licensed build - the repo currently has no license file", "you need a headless CLI-only pipeline rather than a GUI desktop app", "you intend to access someone else's account data, which is outside the tool's intended and legal use"], "when_to_choose": ["you want to recover and read your own WeChat 4.x data locally with zero cloud upload", "you need a polished, WeChat-faithful viewer with export, editing, and real-time message sync", "you want shareable annual chat statistics and wrapped-style summaries"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/wechatdataanalysis", "repo": "LifeArchiveProject/WeChatDataAnalysis", "role": "main", "score": 85}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.021929+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:38:38.980250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9a770f276c4f795fb4a8428ae224e3a9ae5cbe5ca3448e1e5ebae5636baa7f34", "fetched_at": "2026-08-28T04:06:37.021929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LifeArchiveProject/WeChatDataAnalysis"}, {"content_hash": "5a94b4024ce9708bd1530b18c15cb1a5841472e4a35a25243cce2eea9c8a4e37", "fetched_at": "2026-08-29T10:18:55.512668+00:00", "kind": "homepage", "missing": false, "url": "https://lifearchiveproject.github.io/WeChatDataAnalysis/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.021929+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:38:38.980250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9a770f276c4f795fb4a8428ae224e3a9ae5cbe5ca3448e1e5ebae5636baa7f34", "fetched_at": "2026-08-28T04:06:37.021929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LifeArchiveProject/WeChatDataAnalysis"}, {"content_hash": "5a94b4024ce9708bd1530b18c15cb1a5841472e4a35a25243cce2eea9c8a4e37", "fetched_at": "2026-08-29T10:18:55.512668+00:00", "kind": "homepage", "missing": false, "url": "https://lifearchiveproject.github.io/WeChatDataAnalysis/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:38:38.980250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9a770f276c4f795fb4a8428ae224e3a9ae5cbe5ca3448e1e5ebae5636baa7f34", "fetched_at": "2026-08-28T04:06:37.021929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LifeArchiveProject/WeChatDataAnalysis"}, {"content_hash": "5a94b4024ce9708bd1530b18c15cb1a5841472e4a35a25243cce2eea9c8a4e37", "fetched_at": "2026-08-29T10:18:55.512668+00:00", "kind": "homepage", "missing": false, "url": "https://lifearchiveproject.github.io/WeChatDataAnalysis/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.021929+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.021929+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.021929+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:38:38.980250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9a770f276c4f795fb4a8428ae224e3a9ae5cbe5ca3448e1e5ebae5636baa7f34", "fetched_at": "2026-08-28T04:06:37.021929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LifeArchiveProject/WeChatDataAnalysis"}, {"content_hash": "5a94b4024ce9708bd1530b18c15cb1a5841472e4a35a25243cce2eea9c8a4e37", "fetched_at": "2026-08-29T10:18:55.512668+00:00", "kind": "homepage", "missing": false, "url": "https://lifearchiveproject.github.io/WeChatDataAnalysis/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.021929+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.021929+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:38:38.980250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9a770f276c4f795fb4a8428ae224e3a9ae5cbe5ca3448e1e5ebae5636baa7f34", "fetched_at": "2026-08-28T04:06:37.021929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LifeArchiveProject/WeChatDataAnalysis"}, {"content_hash": "5a94b4024ce9708bd1530b18c15cb1a5841472e4a35a25243cce2eea9c8a4e37", "fetched_at": "2026-08-29T10:18:55.512668+00:00", "kind": "homepage", "missing": false, "url": "https://lifearchiveproject.github.io/WeChatDataAnalysis/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.021929+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.021929+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.021929+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:38:38.980250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9a770f276c4f795fb4a8428ae224e3a9ae5cbe5ca3448e1e5ebae5636baa7f34", "fetched_at": "2026-08-28T04:06:37.021929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LifeArchiveProject/WeChatDataAnalysis"}, {"content_hash": "5a94b4024ce9708bd1530b18c15cb1a5841472e4a35a25243cce2eea9c8a4e37", "fetched_at": "2026-08-29T10:18:55.512668+00:00", "kind": "homepage", "missing": false, "url": "https://lifearchiveproject.github.io/WeChatDataAnalysis/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.021929+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.021929+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:38:38.980250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9a770f276c4f795fb4a8428ae224e3a9ae5cbe5ca3448e1e5ebae5636baa7f34", "fetched_at": "2026-08-28T04:06:37.021929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LifeArchiveProject/WeChatDataAnalysis"}, {"content_hash": "5a94b4024ce9708bd1530b18c15cb1a5841472e4a35a25243cce2eea9c8a4e37", "fetched_at": "2026-08-29T10:18:55.512668+00:00", "kind": "homepage", "missing": false, "url": "https://lifearchiveproject.github.io/WeChatDataAnalysis/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:38:38.980250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9a770f276c4f795fb4a8428ae224e3a9ae5cbe5ca3448e1e5ebae5636baa7f34", "fetched_at": "2026-08-28T04:06:37.021929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LifeArchiveProject/WeChatDataAnalysis"}, {"content_hash": "5a94b4024ce9708bd1530b18c15cb1a5841472e4a35a25243cce2eea9c8a4e37", "fetched_at": "2026-08-29T10:18:55.512668+00:00", "kind": "homepage", "missing": false, "url": "https://lifearchiveproject.github.io/WeChatDataAnalysis/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:38:38.980250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9a770f276c4f795fb4a8428ae224e3a9ae5cbe5ca3448e1e5ebae5636baa7f34", "fetched_at": "2026-08-28T04:06:37.021929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LifeArchiveProject/WeChatDataAnalysis"}, {"content_hash": "5a94b4024ce9708bd1530b18c15cb1a5841472e4a35a25243cce2eea9c8a4e37", "fetched_at": "2026-08-29T10:18:55.512668+00:00", "kind": "homepage", "missing": false, "url": "https://lifearchiveproject.github.io/WeChatDataAnalysis/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:38:38.980250+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9a770f276c4f795fb4a8428ae224e3a9ae5cbe5ca3448e1e5ebae5636baa7f34", "fetched_at": "2026-08-28T04:06:37.021929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LifeArchiveProject/WeChatDataAnalysis"}, {"content_hash": "5a94b4024ce9708bd1530b18c15cb1a5841472e4a35a25243cce2eea9c8a4e37", "fetched_at": "2026-08-29T10:18:55.512668+00:00", "kind": "homepage", "missing": false, "url": "https://lifearchiveproject.github.io/WeChatDataAnalysis/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 30, "rhythm": 99}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 422, "days_push": 7, "days_rel": 7, "gap_med": 0.0, "n_releases_24m": 35}, "score": 85, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}