{"adoption": {"forks": 215, "observed_at": "2026-08-28T04:06:16.655858+00:00", "stars": 2123}, "canonical_url": "https://ross.abutalabs.com/products/dingtalk-openclaw-connector", "card": {"archived": false, "artifact_type": "plugin", "description": "Official OpenClaw DingTalk channel plugin | 钉钉官方 OpenClaw 插件", "domain": ["chatbots", "messaging-platforms", "developer-tools"], "enriched": true, "function": ["chatbot", "agent-framework", "chat-interface", "webhook", "middleware"], "health_score": 99, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["DingTalk-Real-AI/dingtalk-openclaw-connector"], "name": "DingTalk-Real-AI/dingtalk-openclaw-connector", "platform": ["cli", "self-hosted"], "pushed_at": "2026-08-20T08:02:13+00:00", "repo": "DingTalk-Real-AI/dingtalk-openclaw-connector", "stars": 2123, "tags": ["dingtalk", "openclaw", "channel-plugin", "ai-assistant", "streaming-cards", "multi-agent-routing", "ai-agents", "automation", "nodejs", "typescript"], "topics": [], "urls": [], "use_cases": ["connect my OpenClaw agent to DingTalk", "build a DingTalk chatbot that replies with AI", "send DING alerts and manage DingTalk todos from an agent", "stream AI responses into DingTalk message cards", "route multiple DingTalk bots to different AI agents", "let an AI agent create DingTalk docs and calendar events"], "what_it_is": "The official DingTalk channel plugin for OpenClaw, connecting an OpenClaw AI agent to DingTalk for messaging, documents, calendars, todos, AI tables, and work logs. It supports streaming AI card responses, interactive cards, permission policies, multi-agent routing, and rich media handling.", "when_to_avoid": ["you need a production enterprise deployment - the maintainers warn against it due to prompt-injection and over-privilege risks", "you use a chat platform other than DingTalk", "you don't use OpenClaw as your agent runtime"], "when_to_choose": ["you already run OpenClaw and want official DingTalk integration", "you need a personal AI assistant inside DingTalk with document/calendar/todo access", "you want quick setup via QR-code authorization"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dingtalk-openclaw-connector", "repo": "DingTalk-Real-AI/dingtalk-openclaw-connector", "role": "main", "score": 81}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.655858+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:52:49.473403+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6ca6d17317fb6be7ed52f0994388c77062ca67a3cb3c80c8e696a61c0bf34e7", "fetched_at": "2026-08-28T04:06:16.655858+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.655858+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:52:49.473403+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6ca6d17317fb6be7ed52f0994388c77062ca67a3cb3c80c8e696a61c0bf34e7", "fetched_at": "2026-08-28T04:06:16.655858+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:52:49.473403+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6ca6d17317fb6be7ed52f0994388c77062ca67a3cb3c80c8e696a61c0bf34e7", "fetched_at": "2026-08-28T04:06:16.655858+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector"}], "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:16.655858+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.655858+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.655858+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:52:49.473403+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6ca6d17317fb6be7ed52f0994388c77062ca67a3cb3c80c8e696a61c0bf34e7", "fetched_at": "2026-08-28T04:06:16.655858+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.655858+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.655858+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:52:49.473403+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6ca6d17317fb6be7ed52f0994388c77062ca67a3cb3c80c8e696a61c0bf34e7", "fetched_at": "2026-08-28T04:06:16.655858+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.655858+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.655858+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.655858+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:52:49.473403+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6ca6d17317fb6be7ed52f0994388c77062ca67a3cb3c80c8e696a61c0bf34e7", "fetched_at": "2026-08-28T04:06:16.655858+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.655858+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.655858+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:52:49.473403+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6ca6d17317fb6be7ed52f0994388c77062ca67a3cb3c80c8e696a61c0bf34e7", "fetched_at": "2026-08-28T04:06:16.655858+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:52:49.473403+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6ca6d17317fb6be7ed52f0994388c77062ca67a3cb3c80c8e696a61c0bf34e7", "fetched_at": "2026-08-28T04:06:16.655858+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:52:49.473403+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6ca6d17317fb6be7ed52f0994388c77062ca67a3cb3c80c8e696a61c0bf34e7", "fetched_at": "2026-08-28T04:06:16.655858+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:52:49.473403+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6ca6d17317fb6be7ed52f0994388c77062ca67a3cb3c80c8e696a61c0bf34e7", "fetched_at": "2026-08-28T04:06:16.655858+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 15, "rhythm": 98}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 217, "days_push": 13, "days_rel": 13, "gap_med": 1.0, "n_releases_24m": 29}, "score": 81, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}