{"adoption": {"forks": 196, "observed_at": "2026-08-28T04:05:01.436362+00:00", "stars": 1544}, "canonical_url": "https://ross.abutalabs.com/products/yi-editor-yi", "card": {"archived": false, "artifact_type": "library", "description": "The Haskell-Scriptable Editor", "domain": ["text-editors", "developer-tools", "programming-languages"], "enriched": true, "function": ["editor", "plugin-system", "cli", "gui", "terminal-ui"], "health_score": 20, "homepage": null, "language": "Haskell", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["yi-editor/yi"], "name": "yi-editor/yi", "platform": ["windows", "cross-platform", "cli"], "pushed_at": "2024-11-01T13:05:53+00:00", "repo": "yi-editor/yi", "stars": 1544, "tags": ["haskell", "scriptable-editor", "vim-emulation", "emacs-emulation", "extensible-editor", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["build a custom text editor in Haskell", "script my editor's behavior in Haskell", "get vim keybindings with a programmable editor", "get emacs-like extensibility in a terminal editor", "create an editor with custom keymaps and modes", "embed an editor core into my own Haskell application"], "what_it_is": "Yi is a collection of Haskell libraries for building your own scriptable text editor, with configurable frontends, keymaps, and core editing components. Users assemble a personalized editor from example configurations or write their own configuration in Haskell.", "when_to_avoid": ["you want an out-of-the-box editor with plugins, not a build-your-own toolkit", "you don't know Haskell or don't want to compile your configuration", "you need a large plugin ecosystem or modern GUI features"], "when_to_choose": ["you want deep, code-level customization of your editor in Haskell", "you want to reuse editor building blocks (frontends, keymaps, modes) in your own project", "you like vim or emacs workflows but want to hack on the editor itself"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/yi-editor-yi", "repo": "yi-editor/yi", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.436362+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:30:39.519578+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8aea7cc5244ff343d00f3f171987baad51f060702acee11072e636e7c67fba23", "fetched_at": "2026-08-28T04:05:01.436362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yi-editor/yi"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.436362+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:30:39.519578+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8aea7cc5244ff343d00f3f171987baad51f060702acee11072e636e7c67fba23", "fetched_at": "2026-08-28T04:05:01.436362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yi-editor/yi"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:30:39.519578+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8aea7cc5244ff343d00f3f171987baad51f060702acee11072e636e7c67fba23", "fetched_at": "2026-08-28T04:05:01.436362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yi-editor/yi"}], "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:05:01.436362+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.436362+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.436362+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:30:39.519578+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8aea7cc5244ff343d00f3f171987baad51f060702acee11072e636e7c67fba23", "fetched_at": "2026-08-28T04:05:01.436362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yi-editor/yi"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.436362+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.436362+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:30:39.519578+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8aea7cc5244ff343d00f3f171987baad51f060702acee11072e636e7c67fba23", "fetched_at": "2026-08-28T04:05:01.436362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yi-editor/yi"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.436362+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.436362+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.436362+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:30:39.519578+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8aea7cc5244ff343d00f3f171987baad51f060702acee11072e636e7c67fba23", "fetched_at": "2026-08-28T04:05:01.436362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yi-editor/yi"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.436362+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.436362+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:30:39.519578+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8aea7cc5244ff343d00f3f171987baad51f060702acee11072e636e7c67fba23", "fetched_at": "2026-08-28T04:05:01.436362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yi-editor/yi"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:30:39.519578+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8aea7cc5244ff343d00f3f171987baad51f060702acee11072e636e7c67fba23", "fetched_at": "2026-08-28T04:05:01.436362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yi-editor/yi"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:30:39.519578+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8aea7cc5244ff343d00f3f171987baad51f060702acee11072e636e7c67fba23", "fetched_at": "2026-08-28T04:05:01.436362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yi-editor/yi"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:30:39.519578+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8aea7cc5244ff343d00f3f171987baad51f060702acee11072e636e7c67fba23", "fetched_at": "2026-08-28T04:05:01.436362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yi-editor/yi"}], "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": 5687, "days_push": 670, "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}}