{"adoption": {"forks": 380, "observed_at": "2026-08-28T04:11:05.169416+00:00", "stars": 13959}, "canonical_url": "https://ross.abutalabs.com/products/weflow", "card": {"archived": false, "artifact_type": "application", "description": "WeFlow - 一个本地的微信聊天记录导出和年度报告应用", "domain": ["data-visualization", "analytics", "data-science", "privacy", "messaging-platforms", "developer-tools"], "enriched": true, "function": ["data-visualization", "analytics", "etl", "json", "csv", "pdf", "http-server", "privacy"], "health_score": 78, "homepage": "https://weflow.top", "language": null, "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["hicccc77/WeFlow"], "name": "hicccc77/WeFlow", "platform": ["windows", "cross-platform"], "pushed_at": "2026-08-09T15:04:19+00:00", "repo": "hicccc77/WeFlow", "stars": 13959, "tags": ["wechat", "chat-export", "annual-report", "chat-analysis", "local-first", "dmca", "data-sovereignty", "message-backup", "macos", "desktop"], "topics": ["annual-report", "data-analysis", "data-visualization", "message", "wechat"], "urls": [], "use_cases": ["export wechat chat history to html or json", "generate a yearly report from my wechat messages", "analyze group chat activity and message statistics", "back up wechat conversations locally without the cloud", "visualize chat frequency and message type distribution", "expose local chat data via an http api for automation"], "what_it_is": "WeFlow is a fully local desktop application for viewing, analyzing, and exporting WeChat chat history, including yearly data reports and visualizations. Following a DMCA-related compliance restructuring, its core decryption and key-extraction features were removed, leaving a shell that only works with user-provided unencrypted data.", "when_to_avoid": ["you expect the tool to decrypt your WeChat database out of the box - that functionality was removed after DMCA pressure", "you need a legally unambiguous way to access encrypted WeChat data", "you need a tool with an active development roadmap for core extraction features"], "when_to_choose": ["you already have unencrypted WeChat SQLite data and want local analysis, export, or annual reports", "you want a privacy-first, offline tool with no cloud dependency", "you need chat data exported to multiple formats or mapped to an HTTP API"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/weflow", "repo": "hicccc77/WeFlow", "role": "main", "score": 59}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.169416+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:12:55.435838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9111653262b12ea086815f385d148fc76fe3fa1050cfc41cf9be7a167f0517fc", "fetched_at": "2026-08-28T04:11:05.169416+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hicccc77/WeFlow"}, {"content_hash": "0de7ae08d1fe297d13526ec36d5042c28d02741093dad375fd8012e9a8082825", "fetched_at": "2026-08-29T08:07:12.604358+00:00", "kind": "homepage", "missing": false, "url": "https://weflow.top"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.169416+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:12:55.435838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9111653262b12ea086815f385d148fc76fe3fa1050cfc41cf9be7a167f0517fc", "fetched_at": "2026-08-28T04:11:05.169416+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hicccc77/WeFlow"}, {"content_hash": "0de7ae08d1fe297d13526ec36d5042c28d02741093dad375fd8012e9a8082825", "fetched_at": "2026-08-29T08:07:12.604358+00:00", "kind": "homepage", "missing": false, "url": "https://weflow.top"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:12:55.435838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9111653262b12ea086815f385d148fc76fe3fa1050cfc41cf9be7a167f0517fc", "fetched_at": "2026-08-28T04:11:05.169416+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hicccc77/WeFlow"}, {"content_hash": "0de7ae08d1fe297d13526ec36d5042c28d02741093dad375fd8012e9a8082825", "fetched_at": "2026-08-29T08:07:12.604358+00:00", "kind": "homepage", "missing": false, "url": "https://weflow.top"}], "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:11:05.169416+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.169416+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.169416+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:12:55.435838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9111653262b12ea086815f385d148fc76fe3fa1050cfc41cf9be7a167f0517fc", "fetched_at": "2026-08-28T04:11:05.169416+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hicccc77/WeFlow"}, {"content_hash": "0de7ae08d1fe297d13526ec36d5042c28d02741093dad375fd8012e9a8082825", "fetched_at": "2026-08-29T08:07:12.604358+00:00", "kind": "homepage", "missing": false, "url": "https://weflow.top"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.169416+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.169416+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:12:55.435838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9111653262b12ea086815f385d148fc76fe3fa1050cfc41cf9be7a167f0517fc", "fetched_at": "2026-08-28T04:11:05.169416+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hicccc77/WeFlow"}, {"content_hash": "0de7ae08d1fe297d13526ec36d5042c28d02741093dad375fd8012e9a8082825", "fetched_at": "2026-08-29T08:07:12.604358+00:00", "kind": "homepage", "missing": false, "url": "https://weflow.top"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.169416+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.169416+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.169416+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:12:55.435838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9111653262b12ea086815f385d148fc76fe3fa1050cfc41cf9be7a167f0517fc", "fetched_at": "2026-08-28T04:11:05.169416+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hicccc77/WeFlow"}, {"content_hash": "0de7ae08d1fe297d13526ec36d5042c28d02741093dad375fd8012e9a8082825", "fetched_at": "2026-08-29T08:07:12.604358+00:00", "kind": "homepage", "missing": false, "url": "https://weflow.top"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.169416+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.169416+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:12:55.435838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9111653262b12ea086815f385d148fc76fe3fa1050cfc41cf9be7a167f0517fc", "fetched_at": "2026-08-28T04:11:05.169416+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hicccc77/WeFlow"}, {"content_hash": "0de7ae08d1fe297d13526ec36d5042c28d02741093dad375fd8012e9a8082825", "fetched_at": "2026-08-29T08:07:12.604358+00:00", "kind": "homepage", "missing": false, "url": "https://weflow.top"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:12:55.435838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9111653262b12ea086815f385d148fc76fe3fa1050cfc41cf9be7a167f0517fc", "fetched_at": "2026-08-28T04:11:05.169416+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hicccc77/WeFlow"}, {"content_hash": "0de7ae08d1fe297d13526ec36d5042c28d02741093dad375fd8012e9a8082825", "fetched_at": "2026-08-29T08:07:12.604358+00:00", "kind": "homepage", "missing": false, "url": "https://weflow.top"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:12:55.435838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9111653262b12ea086815f385d148fc76fe3fa1050cfc41cf9be7a167f0517fc", "fetched_at": "2026-08-28T04:11:05.169416+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hicccc77/WeFlow"}, {"content_hash": "0de7ae08d1fe297d13526ec36d5042c28d02741093dad375fd8012e9a8082825", "fetched_at": "2026-08-29T08:07:12.604358+00:00", "kind": "homepage", "missing": false, "url": "https://weflow.top"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:12:55.435838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9111653262b12ea086815f385d148fc76fe3fa1050cfc41cf9be7a167f0517fc", "fetched_at": "2026-08-28T04:11:05.169416+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hicccc77/WeFlow"}, {"content_hash": "0de7ae08d1fe297d13526ec36d5042c28d02741093dad375fd8012e9a8082825", "fetched_at": "2026-08-29T08:07:12.604358+00:00", "kind": "homepage", "missing": false, "url": "https://weflow.top"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 17, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 238, "days_push": 24, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 59, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}