Smithery Logo
MCPsSkillsDocsPricing
Login
NewFlame, an assistant that learns and improves. Available onTelegramSlack
    yutkat

    suggest-neovim-plugin-alternatives

    yutkat/suggest-neovim-plugin-alternatives
    Coding
    930
    1 installs

    About

    SKILL.md

    Install

    • Telegram
      Telegram
    • Slack
      Slack
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    • Download skill
    ├─
    ├─
    └─
    Smithery Logo

    Give agents more agency

    Resources

    DocumentationPrivacy PolicySystem Status

    Company

    PricingAboutBlog

    Connect

    © 2026 Smithery. All rights reserved.

    About

    Analyze Neovim plugins and suggest modern alternatives...

    SKILL.md

    Neovim Plugin Migration Suggestion Skill

    You are a Neovim plugin expert. Your task is to analyze the user's current Neovim plugins and suggest modern alternatives using the reference plugin list at https://github.com/yutkat/my-neovim-pluginlist.

    Note: This skill requires lazy.nvim as the plugin manager. It will not work with other plugin managers.

    Execution Phases

    Phase 1: Get Current Plugins

    Run the following command to get the list of currently installed plugins:

    nvim --headless -c 'lua vim.defer_fn(function()
      for _, plugin in ipairs(require("lazy").plugins()) do
        io.write(plugin.url .. "\n")
      end
      vim.cmd("qall")
    end, 100)'
    

    This outputs one GitHub URL per line (e.g., https://github.com/folke/lazy.nvim.git) for every plugin managed by lazy.nvim. Parse the output to extract owner/repo slugs.

    Phase 2: Determine Scope

    Based on the user's request, choose one of three modes:

    • Full audit: User asks about all plugins (e.g., "check all my plugins", "audit my neovim plugins"). Scan all active plugins, fetch the 8-10 most impactful category files first.
    • Category-specific: User asks about a specific category (e.g., "check my LSP plugins"). Focus on that category, fetch only the relevant category file(s).
    • Single plugin: User asks about a specific plugin (e.g., "is there a better alternative to nvim-spectre?"). Fetch only the relevant category file and provide a detailed comparison.

    Phase 3: Fetch Category Index (SECTION.md)

    First, fetch the category index file to understand the full structure of the reference plugin list:

    https://raw.githubusercontent.com/yutkat/my-neovim-pluginlist/main/.codex/skills/add/references/SECTION.md
    

    This file contains the complete hierarchy of all category files and their sections. The format is:

    # filename.md
    
    ## Top-level section
    
    ### Subsection
    
    #### Sub-subsection
    

    Each # filename.md heading corresponds to a category file in the repository root. Use this index to:

    1. Map each plugin from pluginlist.lua to the appropriate category file by matching the plugin's section header or functionality against the SECTION.md hierarchy
    2. Identify which category files need to be fetched for the current scope

    Phase 4: Fetch Category Files

    For each relevant category identified from SECTION.md, fetch the corresponding markdown file:

    https://raw.githubusercontent.com/yutkat/my-neovim-pluginlist/main/{filename}
    

    Parse the fetched markdown to extract:

    • Plugin name and GitHub URL (format: [plugin-name](https://github.com/owner/repo))
    • Subcategory headings for context
    • Any descriptive text about the plugin

    Important: Do NOT try to parse shields.io badge URLs for star counts or activity data. These are image references that only render in a browser.

    Scope control:

    • For a full audit, fetch the 8-10 most impactful category files first (e.g., completion.md, lsp.md, fuzzy-finder.md, treesitter.md, git-github.md, comment.md, search_replace_grep_select.md, test.md)
    • For category-specific requests, fetch only the relevant category file(s)
    • For single plugin requests, fetch only the one relevant category file

    Phase 5: Health Check via GitHub API

    For plugins where a migration might be warranted (suspected issues, known alternatives, or low activity), check their health using the gh CLI:

    gh api repos/{owner}/{repo} --jq '{stars: .stargazers_count, archived: .archived, pushed_at: .pushed_at, description: .description}'
    

    Do the same for their potential alternatives to enable comparison.

    Constraints:

    • Only check health for plugins where there is a suspected issue or a known alternative
    • Limit to ~20 API calls per invocation to avoid rate limiting
    • Prioritize the most critical/impactful plugins first

    Phase 6: Generate Report

    Output a structured markdown report organized into these sections:

    1. Urgent Migrations

    Plugins that are archived, deprecated, or using outdated versions.

    2. Recommended Upgrades

    Active plugins that have a clearly better or more modern alternative.

    3. Consider Reviewing

    Plugins that are less active but still functional; alternatives exist but migration is not urgent.

    4. Up to Date

    Plugins that are already the best or among the best in their category (brief summary only).

    Table format for sections 1-3:

    Current Plugin Category Status Suggested Alternative(s) Reason
    plugin-name Category Active/Stale/Archived alternative-name (stars) Why migrate

    Well-Known Migration Paths

    These are established community migration paths. Check these first before doing expensive lookups:

    Current Suggested Alternative Notes
    fidget.nvim (tag=legacy) fidget.nvim (main branch, v2) Remove tag = "legacy" to use the rewritten version
    popup.nvim Remove (redundant) nui.nvim is already installed and provides all needed functionality. Neovim built-in vim.ui also covers basics.
    Comment.nvim Built-in gc/gcc (Neovim 0.10+) or ts-comments.nvim Neovim now has native commenting support
    nvim-spectre grug-far.nvim More actively maintained with better UX
    nvim-web-devicons mini.icons Lighter, faster, part of mini.nvim ecosystem
    nvim-test neotest De facto standard for testing in Neovim
    ChatGPT.nvim CopilotChat.nvim (already installed) or codecompanion.nvim ChatGPT.nvim requires separate API key; CopilotChat is already in the config
    telescope.nvim snacks.nvim picker or fzf-lua Growing trend; snacks.nvim is already installed. Consider for future migration.
    plenary.nvim Neovim built-ins (vim.uv, vim.system, etc.) Being gradually replaced; still needed by some plugins as dependency
    nvim-cmp blink.cmp Already migrated in this config
    null-ls.nvim conform.nvim + nvim-lint Already migrated in this config
    packer.nvim lazy.nvim Already migrated in this config
    neodev.nvim lazydev.nvim Already migrated in this config
    nvim-surround mini.surround Already migrated in this config

    Output Language

    Respond in the same language as the user's request. If the user asks in Japanese, respond in Japanese.

    Recommended Servers
    ThinAir Data
    ThinAir Data
    GroundRoute: Web Search for AI Agents across 6 Engines ($10 free credit)
    GroundRoute: Web Search for AI Agents across 6 Engines ($10 free credit)
    Context7
    Context7
    Repository
    yutkat/dotfiles
    Files