{"adoption": {"forks": 225, "observed_at": "2026-08-28T04:03:22.997088+00:00", "stars": 1050}, "canonical_url": "https://ross.abutalabs.com/products/wechatpyapi", "card": {"archived": false, "artifact_type": "library", "description": "基于微信PC端的Python接口，开发者可通过Python轻松调用。实现微信机器人、群管理等强大的功能！3.9.10.19、4.0、4.x、x64、微信hook、微信接口", "domain": ["messaging-platforms", "developer-tools", "chatbots"], "enriched": true, "function": ["sdk", "http-client", "chatbot", "workflow-automation"], "health_score": 80, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["mrsanshui/WeChatPYAPI"], "name": "mrsanshui/WeChatPYAPI", "platform": ["windows", "python", "cli"], "pushed_at": "2026-08-24T16:30:07+00:00", "repo": "mrsanshui/WeChatPYAPI", "stars": 1050, "tags": ["wechat", "wechat-bot", "hook", "reverse-engineering", "group-management", "unofficial-api", "automation"], "topics": ["python", "wechatapi", "weixin", "wechatpy", "wechat", "weixin-api"], "urls": [], "use_cases": ["build a wechat chatbot in python", "automatically reply to wechat messages", "manage wechat group members and group names", "accept friend requests automatically", "download images and videos from wechat messages", "send scheduled messages via wechat", "monitor incoming wechat messages with a callback"], "what_it_is": "A Python API built on top of the PC WeChat client that lets developers programmatically control WeChat via Python or HTTP calls. It enables building WeChat bots, automating messaging, and managing group chats by hooking into the desktop client.", "when_to_avoid": ["you need an official, ToS-compliant WeChat integration", "your stack is Linux or macOS since it hooks the Windows PC client", "you need a maintained open-source solution without a paid professional tier"], "when_to_choose": ["you need programmatic control of the WeChat PC client from Python", "you want to build a WeChat bot or group management tool on Windows", "you need message callbacks plus friend/group operations in one API"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/wechatpyapi", "repo": "mrsanshui/WeChatPYAPI", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:22.997088+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:00:23.349639+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "206ce12cffd4eb5557ad1f8924feb2dd9e9e84f4814cc25235e3c7e0e6a8c3d5", "fetched_at": "2026-08-28T04:03:22.997088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrsanshui/WeChatPYAPI"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:22.997088+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:00:23.349639+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "206ce12cffd4eb5557ad1f8924feb2dd9e9e84f4814cc25235e3c7e0e6a8c3d5", "fetched_at": "2026-08-28T04:03:22.997088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrsanshui/WeChatPYAPI"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:00:23.349639+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "206ce12cffd4eb5557ad1f8924feb2dd9e9e84f4814cc25235e3c7e0e6a8c3d5", "fetched_at": "2026-08-28T04:03:22.997088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrsanshui/WeChatPYAPI"}], "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:03:22.997088+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:22.997088+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:22.997088+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:00:23.349639+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "206ce12cffd4eb5557ad1f8924feb2dd9e9e84f4814cc25235e3c7e0e6a8c3d5", "fetched_at": "2026-08-28T04:03:22.997088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrsanshui/WeChatPYAPI"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:22.997088+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:22.997088+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:00:23.349639+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "206ce12cffd4eb5557ad1f8924feb2dd9e9e84f4814cc25235e3c7e0e6a8c3d5", "fetched_at": "2026-08-28T04:03:22.997088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrsanshui/WeChatPYAPI"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:22.997088+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:22.997088+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:22.997088+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:00:23.349639+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "206ce12cffd4eb5557ad1f8924feb2dd9e9e84f4814cc25235e3c7e0e6a8c3d5", "fetched_at": "2026-08-28T04:03:22.997088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrsanshui/WeChatPYAPI"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:22.997088+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:22.997088+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:00:23.349639+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "206ce12cffd4eb5557ad1f8924feb2dd9e9e84f4814cc25235e3c7e0e6a8c3d5", "fetched_at": "2026-08-28T04:03:22.997088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrsanshui/WeChatPYAPI"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:00:23.349639+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "206ce12cffd4eb5557ad1f8924feb2dd9e9e84f4814cc25235e3c7e0e6a8c3d5", "fetched_at": "2026-08-28T04:03:22.997088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrsanshui/WeChatPYAPI"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:00:23.349639+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "206ce12cffd4eb5557ad1f8924feb2dd9e9e84f4814cc25235e3c7e0e6a8c3d5", "fetched_at": "2026-08-28T04:03:22.997088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrsanshui/WeChatPYAPI"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:00:23.349639+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "206ce12cffd4eb5557ad1f8924feb2dd9e9e84f4814cc25235e3c7e0e6a8c3d5", "fetched_at": "2026-08-28T04:03:22.997088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrsanshui/WeChatPYAPI"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "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": 1861, "days_push": 9, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}