{"adoption": {"forks": 73, "observed_at": "2026-08-28T04:03:17.872792+00:00", "stars": 1030}, "canonical_url": "https://ross.abutalabs.com/products/ahk", "card": {"archived": false, "artifact_type": "library", "description": "Python wrapper for AutoHotkey with full type support. Harness the automation power of AutoHotkey with the beauty of Python.", "domain": ["windows", "developer-tools"], "enriched": true, "function": ["workflow-automation", "developer-tools"], "health_score": 91, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["spyoungtech/ahk"], "name": "spyoungtech/ahk", "platform": ["windows", "python"], "pushed_at": "2026-08-17T21:04:54+00:00", "repo": "spyoungtech/ahk", "stars": 1030, "tags": ["autohotkey", "asyncio", "gui-automation", "keyboard-automation", "mouse-automation", "automation"], "topics": ["autohotkey", "automation", "ahk-script", "python", "windows", "asyncio"], "urls": [], "use_cases": ["automate mouse clicks and keyboard input on windows", "control and manipulate windows from python", "replace pyautogui with autohotkey power", "run autohotkey automation from python scripts", "asyncio-based windows automation", "send keystrokes and hotkeys programmatically"], "what_it_is": "A Python wrapper for AutoHotkey that lets you drive Windows automation (mouse, keyboard, windows) from Python with full type support, including asyncio APIs. It requires AutoHotkey installed and bridges Python code to AHK scripts.", "when_to_avoid": ["you need cross-platform automation on macOS or Linux", "you don't want to install AutoHotkey", "you're automating web browsers only"], "when_to_choose": ["you need Windows desktop automation from Python", "you want AutoHotkey capabilities with typed Python APIs", "you need async automation workflows"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ahk", "repo": "spyoungtech/ahk", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.872792+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:07:35.618452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c23d7ec6844c43c8f6697133b60e5e12d3f32f48f869ad390a60bc6e3986cc3", "fetched_at": "2026-08-29T13:07:29.773653+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ahk/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.872792+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:07:35.618452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c23d7ec6844c43c8f6697133b60e5e12d3f32f48f869ad390a60bc6e3986cc3", "fetched_at": "2026-08-29T13:07:29.773653+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ahk/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:07:35.618452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c23d7ec6844c43c8f6697133b60e5e12d3f32f48f869ad390a60bc6e3986cc3", "fetched_at": "2026-08-29T13:07:29.773653+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ahk/json"}], "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:17.872792+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.872792+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.872792+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:07:35.618452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c23d7ec6844c43c8f6697133b60e5e12d3f32f48f869ad390a60bc6e3986cc3", "fetched_at": "2026-08-29T13:07:29.773653+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ahk/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.872792+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.872792+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:07:35.618452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c23d7ec6844c43c8f6697133b60e5e12d3f32f48f869ad390a60bc6e3986cc3", "fetched_at": "2026-08-29T13:07:29.773653+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ahk/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.872792+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.872792+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.872792+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:07:35.618452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c23d7ec6844c43c8f6697133b60e5e12d3f32f48f869ad390a60bc6e3986cc3", "fetched_at": "2026-08-29T13:07:29.773653+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ahk/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.872792+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.872792+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:07:35.618452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c23d7ec6844c43c8f6697133b60e5e12d3f32f48f869ad390a60bc6e3986cc3", "fetched_at": "2026-08-29T13:07:29.773653+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ahk/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:07:35.618452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c23d7ec6844c43c8f6697133b60e5e12d3f32f48f869ad390a60bc6e3986cc3", "fetched_at": "2026-08-29T13:07:29.773653+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ahk/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:07:35.618452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c23d7ec6844c43c8f6697133b60e5e12d3f32f48f869ad390a60bc6e3986cc3", "fetched_at": "2026-08-29T13:07:29.773653+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ahk/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:07:35.618452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c23d7ec6844c43c8f6697133b60e5e12d3f32f48f869ad390a60bc6e3986cc3", "fetched_at": "2026-08-29T13:07:29.773653+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ahk/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 40}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_readme"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2841, "days_push": 16, "days_rel": 518, "gap_med": 25, "n_releases_24m": 4}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}