{"adoption": {"forks": 344, "observed_at": "2026-08-28T04:08:23.953524+00:00", "stars": 3840}, "canonical_url": "https://ross.abutalabs.com/products/xdotool", "card": {"archived": false, "artifact_type": "cli-tool", "description": "fake keyboard/mouse input, window management, and more ", "domain": ["desktop-applications", "developer-tools"], "enriched": true, "function": ["workflow-automation", "developer-tools", "gui"], "health_score": 91, "homepage": null, "language": "C", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["jordansissel/xdotool"], "name": "jordansissel/xdotool", "platform": ["bsd", "cli"], "pushed_at": "2026-06-30T00:32:20+00:00", "repo": "jordansissel/xdotool", "stars": 3840, "tags": ["x11", "xtest", "input-simulation", "window-management", "gui-automation", "libxdo", "automation", "command-line", "linux", "macos", "desktop"], "topics": [], "urls": [], "use_cases": ["simulate keyboard typing and hotkeys from the command line", "automate gui interactions in scripts or tests on X11", "find and activate windows by name or class", "move, resize, or close windows programmatically", "switch virtual desktops and move windows between them", "fake mouse clicks and movement"], "what_it_is": "xdotool is an X11 automation tool that simulates keyboard and mouse input and manages windows (search, move, resize, activate, switch desktops) via the XTEST extension and Xlib. It also ships libxdo, a C library providing the same functionality programmatically.", "when_to_avoid": ["you are on Wayland, where xdotool does not work correctly (consider ydotool or dotool)", "you need cross-platform GUI automation on Windows or macOS native apps", "you need high-level image-based UI testing rather than synthetic input"], "when_to_choose": ["you need to script input or window control on X11/Linux", "you want a lightweight C tool available in most distro package managers", "you need a C library (libxdo) to embed input simulation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/xdotool", "repo": "jordansissel/xdotool", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:23.953524+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:26:13.838716+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "994883a5a60604936b9a8731e21410033a173d695458d8747476357881d5e9d6", "fetched_at": "2026-08-28T04:08:23.953524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jordansissel/xdotool"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:23.953524+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:26:13.838716+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "994883a5a60604936b9a8731e21410033a173d695458d8747476357881d5e9d6", "fetched_at": "2026-08-28T04:08:23.953524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jordansissel/xdotool"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:26:13.838716+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "994883a5a60604936b9a8731e21410033a173d695458d8747476357881d5e9d6", "fetched_at": "2026-08-28T04:08:23.953524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jordansissel/xdotool"}], "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:08:23.953524+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:23.953524+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:23.953524+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:26:13.838716+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "994883a5a60604936b9a8731e21410033a173d695458d8747476357881d5e9d6", "fetched_at": "2026-08-28T04:08:23.953524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jordansissel/xdotool"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:23.953524+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:23.953524+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:26:13.838716+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "994883a5a60604936b9a8731e21410033a173d695458d8747476357881d5e9d6", "fetched_at": "2026-08-28T04:08:23.953524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jordansissel/xdotool"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:23.953524+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:23.953524+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:23.953524+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:26:13.838716+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "994883a5a60604936b9a8731e21410033a173d695458d8747476357881d5e9d6", "fetched_at": "2026-08-28T04:08:23.953524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jordansissel/xdotool"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:23.953524+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:23.953524+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:26:13.838716+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "994883a5a60604936b9a8731e21410033a173d695458d8747476357881d5e9d6", "fetched_at": "2026-08-28T04:08:23.953524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jordansissel/xdotool"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:26:13.838716+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "994883a5a60604936b9a8731e21410033a173d695458d8747476357881d5e9d6", "fetched_at": "2026-08-28T04:08:23.953524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jordansissel/xdotool"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:26:13.838716+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "994883a5a60604936b9a8731e21410033a173d695458d8747476357881d5e9d6", "fetched_at": "2026-08-28T04:08:23.953524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jordansissel/xdotool"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:26:13.838716+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "994883a5a60604936b9a8731e21410033a173d695458d8747476357881d5e9d6", "fetched_at": "2026-08-28T04:08:23.953524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jordansissel/xdotool"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 90, "longevity": 100, "rhythm": 49}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5677, "days_push": 65, "days_rel": 183, "gap_med": 92, "n_releases_24m": 2}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}