{"adoption": {"forks": 91, "observed_at": "2026-08-28T04:04:28.117104+00:00", "stars": 1350}, "canonical_url": "https://ross.abutalabs.com/products/sminez-penrose", "card": {"archived": false, "artifact_type": "library", "description": "A library for writing an X11 tiling window manager", "domain": ["desktop-applications", "developer-tools", "operating-systems"], "enriched": true, "function": ["gui", "developer-tools", "plugin-system"], "health_score": 73, "homepage": "https://sminez.github.io/penrose/", "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["sminez/penrose"], "name": "sminez/penrose", "platform": ["rust"], "pushed_at": "2026-02-10T07:57:08+00:00", "repo": "sminez/penrose", "stars": 1350, "tags": ["x11", "window-manager", "tiling-wm", "dwm-inspired", "xmonad-inspired", "xcb", "linux"], "topics": ["window", "manager", "wm", "x11", "x11-wm", "xcb", "rust", "xcb-api"], "urls": [], "use_cases": ["write a custom tiling window manager in Rust", "configure my own X11 window manager without editing C code", "replace dwm or xmonad with a hackable Rust-based WM", "build a minimal tiling WM tailored to my workflow", "learn how window managers work by extending a library", "customize keybindings, layouts, and hooks programmatically"], "what_it_is": "Penrose is a modular Rust library for building your own X11 tiling window manager, inspired by dwm and xmonad. Rather than being an installable binary, it is used as a dependency in your own crate so you can configure and extend window management behavior in code.", "when_to_avoid": ["you want an out-of-the-box window manager with a simple config file", "you need Wayland support - penrose is X11 only", "you are not comfortable writing Rust or maintaining a compiled binary", "you want a drop-in replacement for an existing WM without coding"], "when_to_choose": ["you want a tiling window manager configured in Rust code rather than a config file", "you like the dwm/xmonad model but want a modern, typed, extensible codebase", "you need fine-grained control over layouts, hooks, and window management behavior", "you are comfortable writing and compiling your own binary crate"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sminez-penrose", "repo": "sminez/penrose", "role": "main", "score": 52}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.117104+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:42:18.766576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76de64a7553e54f3d77ab401546357272eca44f72a0fdf66bb50644ece0d0fb7", "fetched_at": "2026-08-28T04:04:28.117104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sminez/penrose"}, {"content_hash": "61582525f68b7d1f061ae7221e8632fc8ff82aee7e233ef18a9b05dc7b03d46a", "fetched_at": "2026-08-29T12:01:11.432449+00:00", "kind": "homepage", "missing": false, "url": "https://sminez.github.io/penrose/"}, {"content_hash": "79a052c9429a9aaa03e37c65b57168f4da3021f76646a9b1e2f9b81e134ab663", "fetched_at": "2026-08-29T12:01:11.442086+00:00", "kind": "site_page", "missing": false, "url": "https://www.sminez.dev/penrose/getting-started.html"}, {"content_hash": "f4b76890df97dc88f9c61c21d3c4c83c44d388ceac383c09653d6bd2e59dec2f", "fetched_at": "2026-08-29T12:01:11.444543+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/penrose"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.117104+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:42:18.766576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76de64a7553e54f3d77ab401546357272eca44f72a0fdf66bb50644ece0d0fb7", "fetched_at": "2026-08-28T04:04:28.117104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sminez/penrose"}, {"content_hash": "61582525f68b7d1f061ae7221e8632fc8ff82aee7e233ef18a9b05dc7b03d46a", "fetched_at": "2026-08-29T12:01:11.432449+00:00", "kind": "homepage", "missing": false, "url": "https://sminez.github.io/penrose/"}, {"content_hash": "79a052c9429a9aaa03e37c65b57168f4da3021f76646a9b1e2f9b81e134ab663", "fetched_at": "2026-08-29T12:01:11.442086+00:00", "kind": "site_page", "missing": false, "url": "https://www.sminez.dev/penrose/getting-started.html"}, {"content_hash": "f4b76890df97dc88f9c61c21d3c4c83c44d388ceac383c09653d6bd2e59dec2f", "fetched_at": "2026-08-29T12:01:11.444543+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/penrose"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:42:18.766576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76de64a7553e54f3d77ab401546357272eca44f72a0fdf66bb50644ece0d0fb7", "fetched_at": "2026-08-28T04:04:28.117104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sminez/penrose"}, {"content_hash": "61582525f68b7d1f061ae7221e8632fc8ff82aee7e233ef18a9b05dc7b03d46a", "fetched_at": "2026-08-29T12:01:11.432449+00:00", "kind": "homepage", "missing": false, "url": "https://sminez.github.io/penrose/"}, {"content_hash": "79a052c9429a9aaa03e37c65b57168f4da3021f76646a9b1e2f9b81e134ab663", "fetched_at": "2026-08-29T12:01:11.442086+00:00", "kind": "site_page", "missing": false, "url": "https://www.sminez.dev/penrose/getting-started.html"}, {"content_hash": "f4b76890df97dc88f9c61c21d3c4c83c44d388ceac383c09653d6bd2e59dec2f", "fetched_at": "2026-08-29T12:01:11.444543+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/penrose"}], "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:04:28.117104+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.117104+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.117104+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:42:18.766576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76de64a7553e54f3d77ab401546357272eca44f72a0fdf66bb50644ece0d0fb7", "fetched_at": "2026-08-28T04:04:28.117104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sminez/penrose"}, {"content_hash": "61582525f68b7d1f061ae7221e8632fc8ff82aee7e233ef18a9b05dc7b03d46a", "fetched_at": "2026-08-29T12:01:11.432449+00:00", "kind": "homepage", "missing": false, "url": "https://sminez.github.io/penrose/"}, {"content_hash": "79a052c9429a9aaa03e37c65b57168f4da3021f76646a9b1e2f9b81e134ab663", "fetched_at": "2026-08-29T12:01:11.442086+00:00", "kind": "site_page", "missing": false, "url": "https://www.sminez.dev/penrose/getting-started.html"}, {"content_hash": "f4b76890df97dc88f9c61c21d3c4c83c44d388ceac383c09653d6bd2e59dec2f", "fetched_at": "2026-08-29T12:01:11.444543+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/penrose"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.117104+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.117104+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:42:18.766576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76de64a7553e54f3d77ab401546357272eca44f72a0fdf66bb50644ece0d0fb7", "fetched_at": "2026-08-28T04:04:28.117104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sminez/penrose"}, {"content_hash": "61582525f68b7d1f061ae7221e8632fc8ff82aee7e233ef18a9b05dc7b03d46a", "fetched_at": "2026-08-29T12:01:11.432449+00:00", "kind": "homepage", "missing": false, "url": "https://sminez.github.io/penrose/"}, {"content_hash": "79a052c9429a9aaa03e37c65b57168f4da3021f76646a9b1e2f9b81e134ab663", "fetched_at": "2026-08-29T12:01:11.442086+00:00", "kind": "site_page", "missing": false, "url": "https://www.sminez.dev/penrose/getting-started.html"}, {"content_hash": "f4b76890df97dc88f9c61c21d3c4c83c44d388ceac383c09653d6bd2e59dec2f", "fetched_at": "2026-08-29T12:01:11.444543+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/penrose"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.117104+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.117104+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.117104+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:42:18.766576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76de64a7553e54f3d77ab401546357272eca44f72a0fdf66bb50644ece0d0fb7", "fetched_at": "2026-08-28T04:04:28.117104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sminez/penrose"}, {"content_hash": "61582525f68b7d1f061ae7221e8632fc8ff82aee7e233ef18a9b05dc7b03d46a", "fetched_at": "2026-08-29T12:01:11.432449+00:00", "kind": "homepage", "missing": false, "url": "https://sminez.github.io/penrose/"}, {"content_hash": "79a052c9429a9aaa03e37c65b57168f4da3021f76646a9b1e2f9b81e134ab663", "fetched_at": "2026-08-29T12:01:11.442086+00:00", "kind": "site_page", "missing": false, "url": "https://www.sminez.dev/penrose/getting-started.html"}, {"content_hash": "f4b76890df97dc88f9c61c21d3c4c83c44d388ceac383c09653d6bd2e59dec2f", "fetched_at": "2026-08-29T12:01:11.444543+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/penrose"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.117104+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.117104+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:42:18.766576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76de64a7553e54f3d77ab401546357272eca44f72a0fdf66bb50644ece0d0fb7", "fetched_at": "2026-08-28T04:04:28.117104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sminez/penrose"}, {"content_hash": "61582525f68b7d1f061ae7221e8632fc8ff82aee7e233ef18a9b05dc7b03d46a", "fetched_at": "2026-08-29T12:01:11.432449+00:00", "kind": "homepage", "missing": false, "url": "https://sminez.github.io/penrose/"}, {"content_hash": "79a052c9429a9aaa03e37c65b57168f4da3021f76646a9b1e2f9b81e134ab663", "fetched_at": "2026-08-29T12:01:11.442086+00:00", "kind": "site_page", "missing": false, "url": "https://www.sminez.dev/penrose/getting-started.html"}, {"content_hash": "f4b76890df97dc88f9c61c21d3c4c83c44d388ceac383c09653d6bd2e59dec2f", "fetched_at": "2026-08-29T12:01:11.444543+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/penrose"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:42:18.766576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76de64a7553e54f3d77ab401546357272eca44f72a0fdf66bb50644ece0d0fb7", "fetched_at": "2026-08-28T04:04:28.117104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sminez/penrose"}, {"content_hash": "61582525f68b7d1f061ae7221e8632fc8ff82aee7e233ef18a9b05dc7b03d46a", "fetched_at": "2026-08-29T12:01:11.432449+00:00", "kind": "homepage", "missing": false, "url": "https://sminez.github.io/penrose/"}, {"content_hash": "79a052c9429a9aaa03e37c65b57168f4da3021f76646a9b1e2f9b81e134ab663", "fetched_at": "2026-08-29T12:01:11.442086+00:00", "kind": "site_page", "missing": false, "url": "https://www.sminez.dev/penrose/getting-started.html"}, {"content_hash": "f4b76890df97dc88f9c61c21d3c4c83c44d388ceac383c09653d6bd2e59dec2f", "fetched_at": "2026-08-29T12:01:11.444543+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/penrose"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:42:18.766576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76de64a7553e54f3d77ab401546357272eca44f72a0fdf66bb50644ece0d0fb7", "fetched_at": "2026-08-28T04:04:28.117104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sminez/penrose"}, {"content_hash": "61582525f68b7d1f061ae7221e8632fc8ff82aee7e233ef18a9b05dc7b03d46a", "fetched_at": "2026-08-29T12:01:11.432449+00:00", "kind": "homepage", "missing": false, "url": "https://sminez.github.io/penrose/"}, {"content_hash": "79a052c9429a9aaa03e37c65b57168f4da3021f76646a9b1e2f9b81e134ab663", "fetched_at": "2026-08-29T12:01:11.442086+00:00", "kind": "site_page", "missing": false, "url": "https://www.sminez.dev/penrose/getting-started.html"}, {"content_hash": "f4b76890df97dc88f9c61c21d3c4c83c44d388ceac383c09653d6bd2e59dec2f", "fetched_at": "2026-08-29T12:01:11.444543+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/penrose"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:42:18.766576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76de64a7553e54f3d77ab401546357272eca44f72a0fdf66bb50644ece0d0fb7", "fetched_at": "2026-08-28T04:04:28.117104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sminez/penrose"}, {"content_hash": "61582525f68b7d1f061ae7221e8632fc8ff82aee7e233ef18a9b05dc7b03d46a", "fetched_at": "2026-08-29T12:01:11.432449+00:00", "kind": "homepage", "missing": false, "url": "https://sminez.github.io/penrose/"}, {"content_hash": "79a052c9429a9aaa03e37c65b57168f4da3021f76646a9b1e2f9b81e134ab663", "fetched_at": "2026-08-29T12:01:11.442086+00:00", "kind": "site_page", "missing": false, "url": "https://www.sminez.dev/penrose/getting-started.html"}, {"content_hash": "f4b76890df97dc88f9c61c21d3c4c83c44d388ceac383c09653d6bd2e59dec2f", "fetched_at": "2026-08-29T12:01:11.444543+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/penrose"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 66, "longevity": 100, "rhythm": 8}, "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": 3125, "days_push": 204, "days_rel": 469, "gap_med": null, "n_releases_24m": 1}, "score": 52, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}