{"adoption": {"forks": 55, "observed_at": "2026-08-28T04:03:46.794116+00:00", "stars": 1151}, "canonical_url": "https://ross.abutalabs.com/products/vy", "card": {"archived": true, "artifact_type": "application", "description": "A vim-like in Python.", "domain": ["text-editors", "developer-tools", "programming-languages"], "enriched": true, "function": ["editor", "plugin-system", "cli"], "health_score": 10, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["vyapp/vy"], "name": "vyapp/vy", "platform": ["python", "cross-platform"], "pushed_at": "2026-01-15T03:12:07+00:00", "repo": "vyapp/vy", "stars": 1151, "tags": ["modal-editor", "vim-like", "tkinter", "extensible", "syntax-highlighting", "debugger-integration", "desktop"], "topics": [], "urls": [], "use_cases": ["edit code with vim-style modal keybindings", "write editor plugins in Python instead of vimscript", "debug Python code with breakpoints inside the editor", "syntax highlight many languages with pygments themes", "run code snippets through an interpreter from the editor", "edit multiple files with tabs and split panes"], "what_it_is": "vy is a modal, vim-like text editor written in Python and built on Tkinter. It features a highly modular plugin architecture where plugins and configuration are written in Python, including debuggers, syntax highlighting via pygments, and terminal-like interpreter integration.", "when_to_avoid": ["you need a polished, mainstream editor with a large ecosystem", "you require LSP support and modern IDE features out of the box", "you want a terminal-only editor without GUI dependencies"], "when_to_choose": ["you want a hackable modal editor fully scriptable in Python", "you prefer Python over vimscript or Emacs Lisp for editor customization", "you need integrated debuggers (pdb, delve, gdb, node inspect) in a lightweight editor"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/vy", "repo": "vyapp/vy", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.794116+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:33:38.116561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36ac6073c1e02ae5a7efbbe3ebd3388112829cc81937f03dcfe71233f3f7de14", "fetched_at": "2026-08-28T04:03:46.794116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vyapp/vy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.794116+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:33:38.116561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36ac6073c1e02ae5a7efbbe3ebd3388112829cc81937f03dcfe71233f3f7de14", "fetched_at": "2026-08-28T04:03:46.794116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vyapp/vy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:33:38.116561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36ac6073c1e02ae5a7efbbe3ebd3388112829cc81937f03dcfe71233f3f7de14", "fetched_at": "2026-08-28T04:03:46.794116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vyapp/vy"}], "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:46.794116+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.794116+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.794116+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:33:38.116561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36ac6073c1e02ae5a7efbbe3ebd3388112829cc81937f03dcfe71233f3f7de14", "fetched_at": "2026-08-28T04:03:46.794116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vyapp/vy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.794116+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.794116+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:33:38.116561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36ac6073c1e02ae5a7efbbe3ebd3388112829cc81937f03dcfe71233f3f7de14", "fetched_at": "2026-08-28T04:03:46.794116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vyapp/vy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.794116+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.794116+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.794116+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:33:38.116561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36ac6073c1e02ae5a7efbbe3ebd3388112829cc81937f03dcfe71233f3f7de14", "fetched_at": "2026-08-28T04:03:46.794116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vyapp/vy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.794116+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.794116+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:33:38.116561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36ac6073c1e02ae5a7efbbe3ebd3388112829cc81937f03dcfe71233f3f7de14", "fetched_at": "2026-08-28T04:03:46.794116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vyapp/vy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:33:38.116561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36ac6073c1e02ae5a7efbbe3ebd3388112829cc81937f03dcfe71233f3f7de14", "fetched_at": "2026-08-28T04:03:46.794116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vyapp/vy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:33:38.116561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36ac6073c1e02ae5a7efbbe3ebd3388112829cc81937f03dcfe71233f3f7de14", "fetched_at": "2026-08-28T04:03:46.794116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vyapp/vy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:33:38.116561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "36ac6073c1e02ae5a7efbbe3ebd3388112829cc81937f03dcfe71233f3f7de14", "fetched_at": "2026-08-28T04:03:46.794116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vyapp/vy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 62, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4317, "days_push": 230, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}