{"adoption": {"forks": 1003, "observed_at": "2026-08-28T04:10:59.738422+00:00", "stars": 12770}, "canonical_url": "https://ross.abutalabs.com/products/robotjs", "card": {"archived": false, "artifact_type": "library", "description": "Node.js Desktop Automation. ", "domain": ["desktop-applications", "cross-platform", "developer-tools"], "enriched": true, "function": ["workflow-automation", "gui", "image-processing", "computer-vision", "developer-tools"], "health_score": 98, "homepage": "http://robotjs.dev", "language": "C", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["octalmage/robotjs"], "name": "octalmage/robotjs", "platform": ["windows", "cross-platform"], "pushed_at": "2026-08-07T09:32:11+00:00", "repo": "octalmage/robotjs", "stars": 12770, "tags": ["desktop-automation", "mouse-control", "keyboard-control", "screen-capture", "image-search", "rpa", "native-addon", "automation", "nodejs", "macos", "linux", "electron"], "topics": [], "urls": [], "use_cases": ["automate mouse clicks and keyboard input from node", "write desktop ui automation scripts", "capture the screen and find images or colors", "build a bot that types strings and presses keys", "automate repetitive tasks on mac windows and linux", "read pixel colors under the mouse", "create electron apps that control the desktop"], "what_it_is": "RobotJS is a Node.js desktop automation library for controlling the mouse and keyboard and reading the screen, with native prebuilt binaries for Mac, Windows, and Linux. Version 0.8 adds image and color search, BMP/PNG handling, and multi-monitor display-aware capture.", "when_to_avoid": ["you need browser-only automation (use Puppeteer or Playwright)", "you need a stable 1.0 API - the project is still pre-1.0 and APIs may change", "you need mobile or headless-server automation"], "when_to_choose": ["you need cross-platform desktop automation from Node.js or Electron", "you want prebuilt binaries without compiling native code", "you need screen capture with image or color matching for UI automation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/robotjs", "repo": "octalmage/robotjs", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.738422+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:13:48.539986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1603449d9e243b74e6c94d56143164614ec629386d2a139bc47d58440351292", "fetched_at": "2026-08-28T04:10:59.738422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/octalmage/robotjs"}, {"content_hash": "81dc38ac956ef6566f623ead8a60cacad4dc1849b50f4f5b6677853dda74d953", "fetched_at": "2026-08-29T08:09:57.110563+00:00", "kind": "homepage", "missing": false, "url": "http://robotjs.dev"}, {"content_hash": "7e31c233bdc682f0ae03e808c48ee110291e86a862373ded503e0c4ec6b0ed58", "fetched_at": "2026-08-29T08:09:57.117192+00:00", "kind": "site_page", "missing": false, "url": "http://robotjs.dev/docs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.738422+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:13:48.539986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1603449d9e243b74e6c94d56143164614ec629386d2a139bc47d58440351292", "fetched_at": "2026-08-28T04:10:59.738422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/octalmage/robotjs"}, {"content_hash": "81dc38ac956ef6566f623ead8a60cacad4dc1849b50f4f5b6677853dda74d953", "fetched_at": "2026-08-29T08:09:57.110563+00:00", "kind": "homepage", "missing": false, "url": "http://robotjs.dev"}, {"content_hash": "7e31c233bdc682f0ae03e808c48ee110291e86a862373ded503e0c4ec6b0ed58", "fetched_at": "2026-08-29T08:09:57.117192+00:00", "kind": "site_page", "missing": false, "url": "http://robotjs.dev/docs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:13:48.539986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1603449d9e243b74e6c94d56143164614ec629386d2a139bc47d58440351292", "fetched_at": "2026-08-28T04:10:59.738422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/octalmage/robotjs"}, {"content_hash": "81dc38ac956ef6566f623ead8a60cacad4dc1849b50f4f5b6677853dda74d953", "fetched_at": "2026-08-29T08:09:57.110563+00:00", "kind": "homepage", "missing": false, "url": "http://robotjs.dev"}, {"content_hash": "7e31c233bdc682f0ae03e808c48ee110291e86a862373ded503e0c4ec6b0ed58", "fetched_at": "2026-08-29T08:09:57.117192+00:00", "kind": "site_page", "missing": false, "url": "http://robotjs.dev/docs"}], "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:59.738422+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.738422+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.738422+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:13:48.539986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1603449d9e243b74e6c94d56143164614ec629386d2a139bc47d58440351292", "fetched_at": "2026-08-28T04:10:59.738422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/octalmage/robotjs"}, {"content_hash": "81dc38ac956ef6566f623ead8a60cacad4dc1849b50f4f5b6677853dda74d953", "fetched_at": "2026-08-29T08:09:57.110563+00:00", "kind": "homepage", "missing": false, "url": "http://robotjs.dev"}, {"content_hash": "7e31c233bdc682f0ae03e808c48ee110291e86a862373ded503e0c4ec6b0ed58", "fetched_at": "2026-08-29T08:09:57.117192+00:00", "kind": "site_page", "missing": false, "url": "http://robotjs.dev/docs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.738422+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.738422+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:13:48.539986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1603449d9e243b74e6c94d56143164614ec629386d2a139bc47d58440351292", "fetched_at": "2026-08-28T04:10:59.738422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/octalmage/robotjs"}, {"content_hash": "81dc38ac956ef6566f623ead8a60cacad4dc1849b50f4f5b6677853dda74d953", "fetched_at": "2026-08-29T08:09:57.110563+00:00", "kind": "homepage", "missing": false, "url": "http://robotjs.dev"}, {"content_hash": "7e31c233bdc682f0ae03e808c48ee110291e86a862373ded503e0c4ec6b0ed58", "fetched_at": "2026-08-29T08:09:57.117192+00:00", "kind": "site_page", "missing": false, "url": "http://robotjs.dev/docs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.738422+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.738422+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.738422+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:13:48.539986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1603449d9e243b74e6c94d56143164614ec629386d2a139bc47d58440351292", "fetched_at": "2026-08-28T04:10:59.738422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/octalmage/robotjs"}, {"content_hash": "81dc38ac956ef6566f623ead8a60cacad4dc1849b50f4f5b6677853dda74d953", "fetched_at": "2026-08-29T08:09:57.110563+00:00", "kind": "homepage", "missing": false, "url": "http://robotjs.dev"}, {"content_hash": "7e31c233bdc682f0ae03e808c48ee110291e86a862373ded503e0c4ec6b0ed58", "fetched_at": "2026-08-29T08:09:57.117192+00:00", "kind": "site_page", "missing": false, "url": "http://robotjs.dev/docs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.738422+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.738422+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:13:48.539986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1603449d9e243b74e6c94d56143164614ec629386d2a139bc47d58440351292", "fetched_at": "2026-08-28T04:10:59.738422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/octalmage/robotjs"}, {"content_hash": "81dc38ac956ef6566f623ead8a60cacad4dc1849b50f4f5b6677853dda74d953", "fetched_at": "2026-08-29T08:09:57.110563+00:00", "kind": "homepage", "missing": false, "url": "http://robotjs.dev"}, {"content_hash": "7e31c233bdc682f0ae03e808c48ee110291e86a862373ded503e0c4ec6b0ed58", "fetched_at": "2026-08-29T08:09:57.117192+00:00", "kind": "site_page", "missing": false, "url": "http://robotjs.dev/docs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:13:48.539986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1603449d9e243b74e6c94d56143164614ec629386d2a139bc47d58440351292", "fetched_at": "2026-08-28T04:10:59.738422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/octalmage/robotjs"}, {"content_hash": "81dc38ac956ef6566f623ead8a60cacad4dc1849b50f4f5b6677853dda74d953", "fetched_at": "2026-08-29T08:09:57.110563+00:00", "kind": "homepage", "missing": false, "url": "http://robotjs.dev"}, {"content_hash": "7e31c233bdc682f0ae03e808c48ee110291e86a862373ded503e0c4ec6b0ed58", "fetched_at": "2026-08-29T08:09:57.117192+00:00", "kind": "site_page", "missing": false, "url": "http://robotjs.dev/docs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:13:48.539986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1603449d9e243b74e6c94d56143164614ec629386d2a139bc47d58440351292", "fetched_at": "2026-08-28T04:10:59.738422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/octalmage/robotjs"}, {"content_hash": "81dc38ac956ef6566f623ead8a60cacad4dc1849b50f4f5b6677853dda74d953", "fetched_at": "2026-08-29T08:09:57.110563+00:00", "kind": "homepage", "missing": false, "url": "http://robotjs.dev"}, {"content_hash": "7e31c233bdc682f0ae03e808c48ee110291e86a862373ded503e0c4ec6b0ed58", "fetched_at": "2026-08-29T08:09:57.117192+00:00", "kind": "site_page", "missing": false, "url": "http://robotjs.dev/docs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:13:48.539986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1603449d9e243b74e6c94d56143164614ec629386d2a139bc47d58440351292", "fetched_at": "2026-08-28T04:10:59.738422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/octalmage/robotjs"}, {"content_hash": "81dc38ac956ef6566f623ead8a60cacad4dc1849b50f4f5b6677853dda74d953", "fetched_at": "2026-08-29T08:09:57.110563+00:00", "kind": "homepage", "missing": false, "url": "http://robotjs.dev"}, {"content_hash": "7e31c233bdc682f0ae03e808c48ee110291e86a862373ded503e0c4ec6b0ed58", "fetched_at": "2026-08-29T08:09:57.117192+00:00", "kind": "site_page", "missing": false, "url": "http://robotjs.dev/docs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 84}, "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": 4385, "days_push": 26, "days_rel": 26, "gap_med": 35.5, "n_releases_24m": 5}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}