{"adoption": {"forks": 154, "observed_at": "2026-08-28T04:08:49.185620+00:00", "stars": 4432}, "canonical_url": "https://ross.abutalabs.com/products/zsh-vi-mode", "card": {"archived": false, "artifact_type": "plugin", "description": "💻 A better and friendly vi(vim) mode plugin for ZSH.", "domain": ["developer-tools", "text-editors"], "enriched": true, "function": ["developer-tools", "cli"], "health_score": 91, "homepage": null, "language": "Shell", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["jeffreytse/zsh-vi-mode"], "name": "jeffreytse/zsh-vi-mode", "platform": ["cli", "cross-platform"], "pushed_at": "2026-07-19T15:19:45+00:00", "repo": "jeffreytse/zsh-vi-mode", "stars": 4432, "tags": ["zsh", "zsh-plugin", "vi-mode", "vim-keybindings", "shell", "terminal", "oh-my-zsh", "command-line", "linux", "macos"], "topics": ["zsh", "zsh-plugin", "awesome", "oh-my-zsh", "shell-scripts", "zsh-plugins", "vi-keybinds", "vim", "terminal", "shell", "zplug", "antigen", "zgen", "surround", "command-line-tool", "clipboard", "zinit", "like", "keybinding", "productivity"], "urls": [], "use_cases": ["use vim keybindings in my zsh terminal", "fix zsh's broken default vi mode", "edit shell commands with modal editing like vim", "add surround and text object support to zsh command line", "switch between normal and insert mode in the terminal", "get vim-style cursor and mode indicators in zsh"], "what_it_is": "A ZSH plugin that provides a full, faithful vi/vim modal editing experience in the shell command line, improving on Zsh's built-in vi mode. It supports modal keybindings, surround operations, text objects, cursor styling, and works with popular plugin managers.", "when_to_avoid": ["you use bash or another shell instead of zsh", "you prefer emacs-style or default zsh keybindings", "you use fish, which has its own vi mode"], "when_to_choose": ["you are a vim user who wants modal editing in the zsh command line", "you found zsh's built-in vi mode incomplete or buggy", "you want surround, text objects, and other vim features in your shell"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/zsh-vi-mode", "repo": "jeffreytse/zsh-vi-mode", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.185620+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:54.031171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f13e4129c13f9e6695a3937e5a2e0cd6eb23bfe24489ce183110b5ac18301c08", "fetched_at": "2026-08-28T04:08:49.185620+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jeffreytse/zsh-vi-mode"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.185620+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:54.031171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f13e4129c13f9e6695a3937e5a2e0cd6eb23bfe24489ce183110b5ac18301c08", "fetched_at": "2026-08-28T04:08:49.185620+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jeffreytse/zsh-vi-mode"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:54.031171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f13e4129c13f9e6695a3937e5a2e0cd6eb23bfe24489ce183110b5ac18301c08", "fetched_at": "2026-08-28T04:08:49.185620+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jeffreytse/zsh-vi-mode"}], "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:49.185620+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.185620+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.185620+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:54.031171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f13e4129c13f9e6695a3937e5a2e0cd6eb23bfe24489ce183110b5ac18301c08", "fetched_at": "2026-08-28T04:08:49.185620+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jeffreytse/zsh-vi-mode"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.185620+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.185620+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:54.031171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f13e4129c13f9e6695a3937e5a2e0cd6eb23bfe24489ce183110b5ac18301c08", "fetched_at": "2026-08-28T04:08:49.185620+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jeffreytse/zsh-vi-mode"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.185620+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.185620+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.185620+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:54.031171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f13e4129c13f9e6695a3937e5a2e0cd6eb23bfe24489ce183110b5ac18301c08", "fetched_at": "2026-08-28T04:08:49.185620+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jeffreytse/zsh-vi-mode"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.185620+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:49.185620+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:54.031171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f13e4129c13f9e6695a3937e5a2e0cd6eb23bfe24489ce183110b5ac18301c08", "fetched_at": "2026-08-28T04:08:49.185620+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jeffreytse/zsh-vi-mode"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:54.031171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f13e4129c13f9e6695a3937e5a2e0cd6eb23bfe24489ce183110b5ac18301c08", "fetched_at": "2026-08-28T04:08:49.185620+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jeffreytse/zsh-vi-mode"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:54.031171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f13e4129c13f9e6695a3937e5a2e0cd6eb23bfe24489ce183110b5ac18301c08", "fetched_at": "2026-08-28T04:08:49.185620+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jeffreytse/zsh-vi-mode"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:54.031171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f13e4129c13f9e6695a3937e5a2e0cd6eb23bfe24489ce183110b5ac18301c08", "fetched_at": "2026-08-28T04:08:49.185620+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jeffreytse/zsh-vi-mode"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 100, "rhythm": 16}, "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": 2091, "days_push": 45, "days_rel": 351, "gap_med": null, "n_releases_24m": 1}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}