{"adoption": {"forks": 808, "observed_at": "2026-08-28T04:10:41.905879+00:00", "stars": 10401}, "canonical_url": "https://ross.abutalabs.com/products/napcatqq", "card": {"archived": false, "artifact_type": "framework", "description": "Modern protocol-side framework based on NTQQ", "domain": ["chatbots", "messaging-platforms", "developer-tools"], "enriched": true, "function": ["chatbot", "api-framework", "websocket", "http-server", "middleware"], "health_score": 100, "homepage": "https://napneko.github.io", "language": "TypeScript", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["NapNeko/NapCatQQ"], "name": "NapNeko/NapCatQQ", "platform": ["windows", "cross-platform", "self-hosted"], "pushed_at": "2026-08-26T19:48:52+00:00", "repo": "NapNeko/NapCatQQ", "stars": 10401, "tags": ["onebot11", "qq-bot", "ntqq", "bot-protocol", "headless", "automation", "linux", "macos", "nodejs", "docker"], "topics": ["onebot11", "napcat", "ncqq", "onebot", "ntqq"], "urls": [], "use_cases": ["run a qq bot without the desktop client", "implement a onebot 11 protocol endpoint for qq", "build a chatbot that sends and receives qq messages", "deploy a lightweight headless qq bot on a low-memory server", "connect llm bot frameworks to qq", "automate qq group message pushing"], "what_it_is": "NapCatQQ is a modern bot protocol-side framework implemented on top of NTQQ, exposing a rich OneBot 11-compatible API for QQ messaging. It runs headless with low memory usage and supports multiple deployment methods on Windows, Linux, and macOS.", "when_to_avoid": ["you need a protocol for a platform other than QQ", "you require a permissively licensed dependency - the license is a custom mixed license with usage restrictions", "you expect community support for basic integration questions - the project explicitly does not provide that", "you want an officially sanctioned client modification - unauthorized use may violate QQ terms of service"], "when_to_choose": ["you need a stable, actively maintained OneBot 11 implementation for NTQQ", "you want low memory usage and headless operation without Electron", "you need broad API coverage and multiple deployment options", "you want to migrate between bot protocols via its Core/Adapter architecture"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/napcatqq", "repo": "NapNeko/NapCatQQ", "role": "main", "score": 87}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.905879+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.276064+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ffa6acefd28b1243feb2ef0260089b156de8ce565c844dc0f2e282ca530ca8c", "fetched_at": "2026-08-28T04:10:41.905879+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NapNeko/NapCatQQ"}, {"content_hash": "4fa9adc14068aa2db2fc977a59c73ea9f77215311b7b33000ee124953ad333d9", "fetched_at": "2026-08-29T08:18:31.422055+00:00", "kind": "homepage", "missing": false, "url": "https://napneko.github.io"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.905879+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.276064+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ffa6acefd28b1243feb2ef0260089b156de8ce565c844dc0f2e282ca530ca8c", "fetched_at": "2026-08-28T04:10:41.905879+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NapNeko/NapCatQQ"}, {"content_hash": "4fa9adc14068aa2db2fc977a59c73ea9f77215311b7b33000ee124953ad333d9", "fetched_at": "2026-08-29T08:18:31.422055+00:00", "kind": "homepage", "missing": false, "url": "https://napneko.github.io"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.276064+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ffa6acefd28b1243feb2ef0260089b156de8ce565c844dc0f2e282ca530ca8c", "fetched_at": "2026-08-28T04:10:41.905879+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NapNeko/NapCatQQ"}, {"content_hash": "4fa9adc14068aa2db2fc977a59c73ea9f77215311b7b33000ee124953ad333d9", "fetched_at": "2026-08-29T08:18:31.422055+00:00", "kind": "homepage", "missing": false, "url": "https://napneko.github.io"}], "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:10:41.905879+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.905879+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.905879+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.276064+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ffa6acefd28b1243feb2ef0260089b156de8ce565c844dc0f2e282ca530ca8c", "fetched_at": "2026-08-28T04:10:41.905879+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NapNeko/NapCatQQ"}, {"content_hash": "4fa9adc14068aa2db2fc977a59c73ea9f77215311b7b33000ee124953ad333d9", "fetched_at": "2026-08-29T08:18:31.422055+00:00", "kind": "homepage", "missing": false, "url": "https://napneko.github.io"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.905879+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.905879+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.276064+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ffa6acefd28b1243feb2ef0260089b156de8ce565c844dc0f2e282ca530ca8c", "fetched_at": "2026-08-28T04:10:41.905879+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NapNeko/NapCatQQ"}, {"content_hash": "4fa9adc14068aa2db2fc977a59c73ea9f77215311b7b33000ee124953ad333d9", "fetched_at": "2026-08-29T08:18:31.422055+00:00", "kind": "homepage", "missing": false, "url": "https://napneko.github.io"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.905879+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.905879+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.905879+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.276064+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ffa6acefd28b1243feb2ef0260089b156de8ce565c844dc0f2e282ca530ca8c", "fetched_at": "2026-08-28T04:10:41.905879+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NapNeko/NapCatQQ"}, {"content_hash": "4fa9adc14068aa2db2fc977a59c73ea9f77215311b7b33000ee124953ad333d9", "fetched_at": "2026-08-29T08:18:31.422055+00:00", "kind": "homepage", "missing": false, "url": "https://napneko.github.io"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.905879+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.905879+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.276064+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ffa6acefd28b1243feb2ef0260089b156de8ce565c844dc0f2e282ca530ca8c", "fetched_at": "2026-08-28T04:10:41.905879+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NapNeko/NapCatQQ"}, {"content_hash": "4fa9adc14068aa2db2fc977a59c73ea9f77215311b7b33000ee124953ad333d9", "fetched_at": "2026-08-29T08:18:31.422055+00:00", "kind": "homepage", "missing": false, "url": "https://napneko.github.io"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.276064+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ffa6acefd28b1243feb2ef0260089b156de8ce565c844dc0f2e282ca530ca8c", "fetched_at": "2026-08-28T04:10:41.905879+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NapNeko/NapCatQQ"}, {"content_hash": "4fa9adc14068aa2db2fc977a59c73ea9f77215311b7b33000ee124953ad333d9", "fetched_at": "2026-08-29T08:18:31.422055+00:00", "kind": "homepage", "missing": false, "url": "https://napneko.github.io"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.276064+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ffa6acefd28b1243feb2ef0260089b156de8ce565c844dc0f2e282ca530ca8c", "fetched_at": "2026-08-28T04:10:41.905879+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NapNeko/NapCatQQ"}, {"content_hash": "4fa9adc14068aa2db2fc977a59c73ea9f77215311b7b33000ee124953ad333d9", "fetched_at": "2026-08-29T08:18:31.422055+00:00", "kind": "homepage", "missing": false, "url": "https://napneko.github.io"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.276064+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ffa6acefd28b1243feb2ef0260089b156de8ce565c844dc0f2e282ca530ca8c", "fetched_at": "2026-08-28T04:10:41.905879+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NapNeko/NapCatQQ"}, {"content_hash": "4fa9adc14068aa2db2fc977a59c73ea9f77215311b7b33000ee124953ad333d9", "fetched_at": "2026-08-29T08:18:31.422055+00:00", "kind": "homepage", "missing": false, "url": "https://napneko.github.io"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 63, "rhythm": 86}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 890, "days_push": 7, "days_rel": 19, "gap_med": 0, "n_releases_24m": 408}, "score": 87, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}