{"adoption": {"forks": 164, "observed_at": "2026-08-28T04:08:52.535533+00:00", "stars": 4508}, "canonical_url": "https://ross.abutalabs.com/products/displayplacer", "card": {"archived": false, "artifact_type": "cli-tool", "description": "macOS command line utility to configure multi-display resolutions and arrangements. Essentially XRandR for macOS.", "domain": ["operating-systems", "developer-tools"], "enriched": true, "function": ["cli", "configuration-management", "developer-tools"], "health_score": 21, "homepage": null, "language": "C", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["jakehilborn/displayplacer"], "name": "jakehilborn/displayplacer", "platform": ["cli"], "pushed_at": "2024-06-05T18:21:33+00:00", "repo": "jakehilborn/displayplacer", "stars": 4508, "tags": ["display-management", "xrandr", "multi-monitor", "screen-resolution", "homebrew", "command-line", "automation", "macos"], "topics": [], "urls": [], "use_cases": ["set screen resolution from the command line on macos", "rotate a macbook display via terminal", "switch between multi-monitor arrangements with a script", "enable or disable an external display without system preferences", "configure mirrored displays from the cli", "save and restore display profiles for hotkeys"], "what_it_is": "displayplacer is a macOS command line utility for configuring multi-display setups, including resolutions, refresh rates, rotations, origins, mirroring, and enabling/disabling screens. It is essentially XRandR for macOS and supports saving and applying display profiles via scripts and hotkeys.", "when_to_avoid": ["you only need a GUI for occasional display changes", "you are on Linux or Windows rather than macOS", "your setup suffers from macOS screenId race conditions you cannot work around"], "when_to_choose": ["you need to script or automate display configuration on macOS", "you want resolutions or rotations not exposed in System Preferences", "you want to toggle displays or mirroring from the terminal or hotkeys"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/displayplacer", "repo": "jakehilborn/displayplacer", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.535533+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:21.988754+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9f22c0b3c2805c08661a425f570ffb263d420c622461be4860bb4f2689b37ed2", "fetched_at": "2026-08-28T04:08:52.535533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jakehilborn/displayplacer"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.535533+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:21.988754+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9f22c0b3c2805c08661a425f570ffb263d420c622461be4860bb4f2689b37ed2", "fetched_at": "2026-08-28T04:08:52.535533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jakehilborn/displayplacer"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:21.988754+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9f22c0b3c2805c08661a425f570ffb263d420c622461be4860bb4f2689b37ed2", "fetched_at": "2026-08-28T04:08:52.535533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jakehilborn/displayplacer"}], "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:52.535533+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.535533+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.535533+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:21.988754+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9f22c0b3c2805c08661a425f570ffb263d420c622461be4860bb4f2689b37ed2", "fetched_at": "2026-08-28T04:08:52.535533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jakehilborn/displayplacer"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.535533+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.535533+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:21.988754+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9f22c0b3c2805c08661a425f570ffb263d420c622461be4860bb4f2689b37ed2", "fetched_at": "2026-08-28T04:08:52.535533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jakehilborn/displayplacer"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.535533+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.535533+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.535533+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:21.988754+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9f22c0b3c2805c08661a425f570ffb263d420c622461be4860bb4f2689b37ed2", "fetched_at": "2026-08-28T04:08:52.535533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jakehilborn/displayplacer"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.535533+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.535533+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:21.988754+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9f22c0b3c2805c08661a425f570ffb263d420c622461be4860bb4f2689b37ed2", "fetched_at": "2026-08-28T04:08:52.535533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jakehilborn/displayplacer"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:21.988754+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9f22c0b3c2805c08661a425f570ffb263d420c622461be4860bb4f2689b37ed2", "fetched_at": "2026-08-28T04:08:52.535533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jakehilborn/displayplacer"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:21.988754+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9f22c0b3c2805c08661a425f570ffb263d420c622461be4860bb4f2689b37ed2", "fetched_at": "2026-08-28T04:08:52.535533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jakehilborn/displayplacer"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:21.988754+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9f22c0b3c2805c08661a425f570ffb263d420c622461be4860bb4f2689b37ed2", "fetched_at": "2026-08-28T04:08:52.535533+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jakehilborn/displayplacer"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "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": 4111, "days_push": 819, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}