{"adoption": {"forks": 214, "observed_at": "2026-08-28T04:06:23.401106+00:00", "stars": 2182}, "canonical_url": "https://ross.abutalabs.com/products/jasonrudolph-keyboard", "card": {"archived": false, "artifact_type": "application", "description": "⌨ Toward a more useful keyboard", "domain": ["developer-tools"], "enriched": true, "function": ["developer-tools", "configuration-management"], "health_score": 48, "homepage": null, "language": "Lua", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["jasonrudolph/keyboard"], "name": "jasonrudolph/keyboard", "platform": [], "pushed_at": "2025-10-13T21:12:10+00:00", "repo": "jasonrudolph/keyboard", "stars": 2182, "tags": ["hammerspoon", "karabiner", "keyboard-remapping", "vim-bindings", "caps-lock", "window-management", "markdown-formatting", "lua", "command-line", "macos", "desktop"], "topics": ["caps-lock", "seil", "sizeup", "hjkl", "vim", "productivity", "markdown", "keyboard", "hammerspoon", "karabiner"], "urls": [], "use_cases": ["remap caps lock to escape and control on mac", "navigate with hjkl everywhere on macOS", "arrange mac windows from the keyboard", "format text as markdown with keyboard shortcuts", "launch apps with a hyper key", "system-wide vim-style keyboard navigation"], "what_it_is": "A collection of Hammerspoon and Karabiner configuration that remaps the keyboard for system-wide productivity on macOS. It repurposes the caps lock key, adds home-row navigation (hjkl), window arrangement, Markdown formatting, and app-launching shortcuts that work in every application.", "when_to_avoid": ["you're on Windows or Linux, since the setup targets macOS tooling", "you prefer stock keyboard behavior or don't want to learn custom modes", "you need a cross-platform or GUI-configurable remapping solution"], "when_to_choose": ["you use macOS and want consistent, editor-agnostic keyboard shortcuts in every app", "you want vim-style home-row navigation and window management without leaving the keyboard", "you already use Hammerspoon or Karabiner and want a proven configuration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jasonrudolph-keyboard", "repo": "jasonrudolph/keyboard", "role": "main", "score": 44}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.401106+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:48:17.110569+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13b0f036b9dfefe375cc84c9b751b49d41bdcb0d9ccea025ea34b7f3898b1d05", "fetched_at": "2026-08-28T04:06:23.401106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jasonrudolph/keyboard"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.401106+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:48:17.110569+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13b0f036b9dfefe375cc84c9b751b49d41bdcb0d9ccea025ea34b7f3898b1d05", "fetched_at": "2026-08-28T04:06:23.401106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jasonrudolph/keyboard"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:48:17.110569+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13b0f036b9dfefe375cc84c9b751b49d41bdcb0d9ccea025ea34b7f3898b1d05", "fetched_at": "2026-08-28T04:06:23.401106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jasonrudolph/keyboard"}], "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:23.401106+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.401106+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.401106+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:48:17.110569+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13b0f036b9dfefe375cc84c9b751b49d41bdcb0d9ccea025ea34b7f3898b1d05", "fetched_at": "2026-08-28T04:06:23.401106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jasonrudolph/keyboard"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.401106+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.401106+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:48:17.110569+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13b0f036b9dfefe375cc84c9b751b49d41bdcb0d9ccea025ea34b7f3898b1d05", "fetched_at": "2026-08-28T04:06:23.401106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jasonrudolph/keyboard"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.401106+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.401106+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.401106+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:48:17.110569+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13b0f036b9dfefe375cc84c9b751b49d41bdcb0d9ccea025ea34b7f3898b1d05", "fetched_at": "2026-08-28T04:06:23.401106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jasonrudolph/keyboard"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.401106+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.401106+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:48:17.110569+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13b0f036b9dfefe375cc84c9b751b49d41bdcb0d9ccea025ea34b7f3898b1d05", "fetched_at": "2026-08-28T04:06:23.401106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jasonrudolph/keyboard"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:48:17.110569+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13b0f036b9dfefe375cc84c9b751b49d41bdcb0d9ccea025ea34b7f3898b1d05", "fetched_at": "2026-08-28T04:06:23.401106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jasonrudolph/keyboard"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:48:17.110569+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13b0f036b9dfefe375cc84c9b751b49d41bdcb0d9ccea025ea34b7f3898b1d05", "fetched_at": "2026-08-28T04:06:23.401106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jasonrudolph/keyboard"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:48:17.110569+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13b0f036b9dfefe375cc84c9b751b49d41bdcb0d9ccea025ea34b7f3898b1d05", "fetched_at": "2026-08-28T04:06:23.401106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jasonrudolph/keyboard"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 46, "longevity": 100, "rhythm": 8}, "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": 4904, "days_push": 324, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 44, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}