github.com/StefanBartl · 38 repositories

38 plugins.
One family.

Neovim plugins that share one rule — one command, one concern — and one tested foundation. This site is generated from the repositories themselves: every tagline, status and commit below is read from the source.

plugins
38
features
1,000+
help topics
1,700+
test files
1,100+
live
View

Esc back to grid

Filter plugins by category
01 AI ai.nvim A provider-agnostic ask/stream layer for talking to an AI from inside Neovim A provider-agnostic ask/stream layer for talking to an AI from inside Neovim -- context assembly (buffer/selection/diagnostics), a streaming answer panel, and one :Ai command, instead of every plugin hand-rolling its own curl calls. 02 AI buffer-ctx.nvim Everything the current buffer already knows about itself, as text you can insert or copy Everything the current buffer already knows about itself, as text you can insert or copy: its path, its Lua module name, the line you are on, a timestamp, a UUID, an annotation, a boilerplate header. 03 Editing cascade.nvim One plugin, one pattern: detect the context under the cursor → advance it one step → otherwise fall back to native behavior. One plugin, one pattern: detect the context under the cursor → advance it one step → otherwise fall back to native behavior. That holds for Markdown lists just as much as for true/false toggles in code, which is why both live here instead of in two plugins that would each reimplement the same "what am I looking at" question. 04 Debug & inspect cmdlog.nvim Interactively view, search and reuse your Neovim command-line (:) history and your shell history, through Telescope or fzf-lua. Interactively view, search and reuse your Neovim command-line (:) history and your shell history, through Telescope or fzf-lua. Commands are inserted into the command-line, never executed for you — this is recall, not automation. 05 View & render color_my_ascii.nvim Colorful highlighting for ASCII art in Markdown code blocks, with automatic language detection, custom highlights and predefined color… Colorful highlighting for ASCII art in Markdown code blocks, with automatic language detection, custom highlights and predefined color schemes — a fenced block full of box-drawing characters is, to every other tool, one undifferentiated grey wall; this one reads it and gives you a small literate-programming toolkit over the same blocks. 06 Debug & inspect dap.nvim A config layer on top of nvim-dap that registers adapters and launch configurations for eleven targets, so that opts = {} is a working… A config layer on top of nvim-dap that registers adapters and launch configurations for eleven targets, so that opts = {} is a working debugger rather than the start of an afternoon. 07 Editing data.nvim Format and filter structured data (JSON, YAML, XML) in place, in the buffer or a visual selection Format and filter structured data (JSON, YAML, XML) in place, in the buffer or a visual selection — pretty, compact (JSON/XML), lines to flatten nested keys onto one path: value per line, keys for just the paths. 08 Debug & inspect debugging.nvim One :Debug {category} {action} command for every Neovim debugging tool. 09 Debug & inspect diff.nvim Flexible diffing for Neovim: one :Diff command compares arbitrary sources — buffers, files, git revisions, URLs, whole directories Flexible diffing for Neovim: one :Diff command compares arbitrary sources — buffers, files, git revisions, URLs, whole directories — against each other and delivers the result however you like: split, inline, prompt, file, clipboard, or a one-line stat summary. 10 Desktop docmap-desktop A desktop workspace for the module maps documentation.nvim generates A desktop workspace for the module maps documentation.nvim generates: add several projects, look at any of them, switch between them quickly. The kind of shell Tosca Commander or Blender put in front of a project — a list you load from, not one window per thing. 11 Project & repos documentation.nvim Point it at a repository and it produces a module map Point it at a repository and it produces a module map: an interactive HTML page, a Markdown overview, a deterministic JSON artifact, and a set of drift checks that fail CI when the documentation and the code stop agreeing. 12 Editing emojis.nvim One :Emojis command that removes, counts, lists, replaces, wraps and inserts emojis One :Emojis command that removes, counts, lists, replaces, wraps and inserts emojis — across a line, a selection, a buffer, or a whole project. The same command also carries a small Unicode toolkit (:Emojis unicode name|search |table|digraphs) for any character, not just emoji. 13 Files & navigation fileops.nvim File operations for Neovim — one command, all operations. File operations for Neovim — one command, all operations. :File creates, navigates, renames, duplicates and deletes files, keeping the buffer and the disk in agreement, with all I/O going through libuv directly rather than a shell. 14 Files & navigation filetree.nvim Adapter-agnostic filetree features for Neovim. Adapter-agnostic filetree features for Neovim. Works with neo-tree.nvim, nvim-tree.lua, netrw, oil.nvim and mini.files through one adapter interface, so changing tree plugins costs you the plugin, not the workflow you built on top of it. 15 Project & repos github_stats.nvim GitHub keeps clones, views, referrers and paths for fourteen days and then throws them away. GitHub keeps clones, views, referrers and paths for fourteen days and then throws them away. This plugin collects them in the background before that happens, analyses the history it builds, and exports it — all from inside Neovim. 16 Project & repos gitsuite.nvim One :Git <scope> <action> command tree for everything git in Neovim One :Git <scope> <action> command tree for everything git in Neovim — own implementation where that pays off (merge-conflict resolution, blame, browse), thin adapters where it does not (gitsigns' hunk engine, neogit's staging UI, diffview, the real lazygit TUI in a float). Plus :Git dashboard, the one deliberate multi-repo exception: a git-status panel across a whole folder of clones, with push/pull/fetch per row, per marked set, or for the whole folder — moved here from reposcope.nvim, which stays scoped to GitHub/GitLab/Codeberg discovery. 17 Files & navigation gopath.nvim One key, and you are at the file the cursor is pointing at — however that reference happens to be written. One key, and you are at the file the cursor is pointing at — however that reference happens to be written. gopath.nvim resolves symbols, require() paths and arbitrary file references under the cursor through a multi-phase pipeline, so a require("a.b"), a bare path, a :help tag and a stack-trace line all end in the same place: the right file, at the right line. 18 Files & navigation hover.nvim Rest the cursor on something that points at a file — a markdown link, or a path written as plain text Rest the cursor on something that points at a file — a markdown link, or a path written as plain text — and a small float shows what it points at. 19 View & render images.nvim images.nvim shows images in the terminal without leaving Neovim images.nvim shows images in the terminal without leaving Neovim: hover a markdown link, double-click it, or paste a screenshot straight from the clipboard into the document. It draws through the iTerm2 inline-image protocol (OSC 1337) instead of the Kitty graphics protocol the alternatives rely on, which is what makes it work on native Windows Neovim in WezTerm, where they do not. 20 Debug & inspect insights.nvim Static analysis of the project you are in, from inside Neovim. Static analysis of the project you are in, from inside Neovim. One :Insights command over symbol indexing, multi-language import analysis, Lua code metrics, annotation comments (TODO, FIX, … listed project-wide and coloured in the buffer), file-tree utilities, and automatic checks for git conflicts, unused imports and stray dev servers. 21 Editing language.nvim Spelling, grammar, translation and synonyms in one plugin, all of it asynchronous and all of it acting on the buffer you are already in. Spelling, grammar, translation and synonyms in one plugin, all of it asynchronous and all of it acting on the buffer you are already in. Translation needs no external Neovim plugin — curl and the keyless Google endpoint work with zero configuration. 22 Foundation lib.nvim Reusable Lua and Neovim helpers — one tested base under a whole set of plugins. Reusable Lua and Neovim helpers — one tested base under a whole set of plugins. Extracted from a private Neovim configuration so that personal plugins can share a single set of helpers as a dependency instead of each carrying its own copy. It has no third-party dependencies — only vim and itself. 23 Debug & inspect lsp.nvim The umbrella for everything LSP in a Neovim config, behind one :Lsp command. The umbrella for everything LSP in a Neovim config, behind one :Lsp command. A config's lua/lsp/** is usually a pile of settings with the ecosystem left behind when it gets extracted — this one takes the ecosystem with it. 24 Editing markdown.nvim A self-contained Markdown toolkit for Neovim, behind one :Markdown command. A self-contained Markdown toolkit for Neovim, behind one :Markdown command. Headings and folding, GFM tables, links and references, and a cursor-action dispatcher that opens whatever is under the cursor — all of it FileType-scoped, with no side effects on any buffer that is not Markdown. 25 View & render mdview.nvim A browser-based Markdown preview for Neovim that renders nothing on the server. A browser-based Markdown preview for Neovim that renders nothing on the server. Buffer text is streamed to a browser tab and rendered client-side by a Rust/WASM module with sanitization built in — no toolchain needed to run it. 26 View & render media.nvim What is in this media file, one picture of it, and — a video or an audio file's speech, turned into text. What is in this media file, one picture of it, and — a video or an audio file's speech, turned into text. ffprobe says how long, how big and in which codec; ffmpeg produces a poster frame, a contact sheet or a waveform as a PNG on disk; a local transcription engine turns the speech in it into a buffer, a .transcript.md sidecar, or SRT/VTT subtitles. :Media text turns any of the four into text with one verb — an image through images.nvim's OCR, a PDF through pdfport, audio and video through the transcription engine. Anything that can draw a picture can then show a video — which was, until now, everywhere just a size in bytes and the word "binary". 27 Files & navigation open.nvim Open files, URLs and paths from anywhere in Neovim, with one command. Open files, URLs and paths from anywhere in Neovim, with one command. :Open [target] [scope] routes the thing under your cursor — a path, a URL, or plain text — to the right destination, and it goes the other way too: :Open viewer lists every link in a buffer, a selection or the whole project and hands you a picker. 28 View & render pdfport.nvim PDFs in Neovim, in both directions: reading them and writing them. PDFs in Neovim, in both directions: reading them and writing them. Reading means extracting and displaying a PDF's content through a pluggable backend; writing means creating one — from an image, Markdown, text, HTML or an Office file, or merging several — through a pluggable producer. Both sides degrade to a clear message rather than an error when a tool is not there. 29 Files & navigation pickers.nvim One :Pickers command over telescope.nvim, fzf-lua and snacks.nvim. One :Pickers command over telescope.nvim, fzf-lua and snacks.nvim. Seven separate picker modules consolidated into one grammar — :Pickers <scope> <action> — with the engine auto-detected and every scope, action and native picker completing with <Tab>. 30 Debug & inspect recommender.nvim Finds the repetition in your code and offers to do something about it. Finds the repetition in your code and offers to do something about it. It reads a buffer — or a wider scope — for dotted chains repeated often enough to be worth aliasing, and puts the suggestions in a float you can act on without leaving it. Pure Neovim, no external tooling. 31 Editing replacer.nvim Project-wide search-and-replace where every occurrence is its own decision. Project-wide search-and-replace where every occurrence is its own decision. ripgrep finds the matches, a picker — fzf-lua or Telescope — lets you select them one by one with the hit highlighted in the preview, and nothing is written before you have had the chance to look at a diff. 32 Project & repos reposcope.nvim Search, preview and clone repositories from GitHub, GitLab or Codeberg without leaving Neovim Search, preview and clone repositories from GitHub, GitLab or Codeberg without leaving Neovim — plus filtering, sorting, favorites and session persistence for your searches. Maintaining what you've already cloned (a multi-repo git dashboard, bulk fetch/pull) is gitsuite.nvim's :Git dashboard. 33 Debug & inspect rules.nvim A rule/checklist engine for Neovim. A rule/checklist engine for Neovim. rules.nvim reads a set of rules you point it at, runs whichever of them can be checked mechanically against a repo, and reports the rest as a worklist — it never pretends to give an automatic verdict on a rule that actually needs human or agent judgment. 34 Debug & inspect runtime-analysis.nvim Runtime truth for a Neovim project: what actually ran, not what the source says. Runtime truth for a Neovim project: what actually ran, not what the source says. An in-editor HTTP request runner, opt-in call counting for any Lua plugin, a live read of what is really in package.loaded, stall detection that finds what blocks the main loop — including during startup, where --startuptime and :profile both give up — and a startup profiler that runs --startuptime enough times for its numbers to survive being read. 35 Project & repos sandbox.nvim Manage Podman, Docker and nerdctl containers from inside Neovim. Manage Podman, Docker and nerdctl containers from inside Neovim. Containers, images, volumes, networks, compose projects, registry auth, devcontainers and — on Windows — WSL distros all hang off one command tree, :Sandbox, with <Tab> completion that resolves live against the running engine. 36 Files & navigation sessions.nvim Branch- and project-aware Neovim sessions. Branch- and project-aware Neovim sessions. The session name resolves from the project root and the current git branch, so switching branches restores a different workspace and you never have to name anything. Built on Neovim's own :mksession and :source, not around them. Optionally also a mark list — files jumped to by number, with pins and remembered cursor positions — for the handful of files you want one keypress away in every project. 37 Debug & inspect spotlight.nvim Mark any number of tokens in a log at once, in colors you can tell apart, and keep them there. Mark any number of tokens in a log at once, in colors you can tell apart, and keep them there. You are reading a log. You spot a request id, a PID, an IP, an error code — and you want to see every other occurrence, right now. Several tokens at once, and they have to stay put: through searches, through scrolling, through a :split. 38 View & render ui.nvim The frame around the window: statusline, tabline, theme assembly — standing on Neovim's own APIs rather than a distribution's. The frame around the window: statusline, tabline, theme assembly — standing on Neovim's own APIs rather than a distribution's. Started from roughly 4,500 lines of working statusline, tabline and theme code extracted out of a NvChad-based config, and replaced the coupling to NvChad and base46 symbol by symbol from there.
lib.nvim -- Foundation lib.nvim buffer-ctx.nvim -- AI buffer-ctx.nvim cascade.nvim -- Editing cascade.nvim cmdlog.nvim -- Debug & inspect cmdlog.nvim color_my_ascii.nvim -- View & render color_my_ascii.nvim data.nvim -- Editing data.nvim debugging.nvim -- Debug & inspect debugging.nvim emojis.nvim -- Editing emojis.nvim gopath.nvim -- Files & navigation gopath.nvim hover.nvim -- Files & navigation hover.nvim mdview.nvim -- View & render mdview.nvim open.nvim -- Files & navigation open.nvim rules.nvim -- Debug & inspect rules.nvim sessions.nvim -- Files & navigation sessions.nvim ui.nvim -- View & render ui.nvim ai.nvim -- AI ai.nvim dap.nvim -- Debug & inspect dap.nvim diff.nvim -- Debug & inspect diff.nvim documentation.nvim -- Project & repos documentation.nvim fileops.nvim -- Files & navigation fileops.nvim github_stats.nvim -- Project & repos github_stats.nvim insights.nvim -- Debug & inspect insights.nvim language.nvim -- Editing language.nvim lsp.nvim -- Debug & inspect lsp.nvim pickers.nvim -- Files & navigation pickers.nvim recommender.nvim -- Debug & inspect recommender.nvim replacer.nvim -- Editing replacer.nvim reposcope.nvim -- Project & repos reposcope.nvim runtime-analysis.nvim -- Debug & inspect runtime-analysis.nvim sandbox.nvim -- Project & repos sandbox.nvim spotlight.nvim -- Debug & inspect spotlight.nvim gitsuite.nvim -- Project & repos gitsuite.nvim pdfport.nvim -- View & render pdfport.nvim filetree.nvim -- Files & navigation filetree.nvim images.nvim -- View & render images.nvim markdown.nvim -- Editing markdown.nvim media.nvim -- View & render media.nvim

1 further plugin has no require() edge to a sibling and isn't shown here — see /stack for the full breakdown.

38 ai.nvim -- AI ai.nvim buffer-ctx.nvim -- AI buffer-ctx.nvim cascade.nvim -- Editing cascade.nvim data.nvim -- Editing data.nvim emojis.nvim -- Editing emojis.nvim language.nvim -- Editing language.nvim markdown.nvim -- Editing markdown.nvim replacer.nvim -- Editing replacer.nvim fileops.nvim -- Files & navigation fileops.nvim filetree.nvim -- Files & navigation filetree.nvim gopath.nvim -- Files & navigation gopath.nvim hover.nvim -- Files & navigation hover.nvim open.nvim -- Files & navigation open.nvim pickers.nvim -- Files & navigation pickers.nvim sessions.nvim -- Files & navigation sessions.nvim cmdlog.nvim -- Debug & inspect cmdlog.nvim dap.nvim -- Debug & inspect dap.nvim debugging.nvim -- Debug & inspect debugging.nvim diff.nvim -- Debug & inspect diff.nvim insights.nvim -- Debug & inspect insights.nvim lsp.nvim -- Debug & inspect lsp.nvim recommender.nvim -- Debug & inspect recommender.nvim rules.nvim -- Debug & inspect rules.nvim runtime-analysis.nvim -- Debug & inspect runtime-analysis.nvim spotlight.nvim -- Debug & inspect spotlight.nvim documentation.nvim -- Project & repos documentation.nvim github_stats.nvim -- Project & repos github_stats.nvim gitsuite.nvim -- Project & repos gitsuite.nvim reposcope.nvim -- Project & repos reposcope.nvim sandbox.nvim -- Project & repos sandbox.nvim color_my_ascii.nvim -- View & render color_my_ascii.nvim images.nvim -- View & render images.nvim mdview.nvim -- View & render mdview.nvim media.nvim -- View & render media.nvim pdfport.nvim -- View & render pdfport.nvim ui.nvim -- View & render ui.nvim lib.nvim -- Foundation lib.nvim docmap-desktop -- Desktop docmap-desktop
  • AI
  • Editing
  • Files & navigation
  • Debug & inspect
  • Project & repos
  • View & render
  • Foundation
  • Desktop

Pick your fighter. The arena is picked for you.

Opponent

Recent activity

  1. lsp.nvim test env-links: do not assume a Neovim config directory in the completion spec
  2. lsp.nvim feat env-links: complete the directories of $VAR/ and ~/ link targets
  3. lsp.nvim fix env-links: make the network-path specs platform independent
  4. lsp.nvim fix env-links: close the gaps of the fourth review
  5. lsp.nvim fix env-links: close the gaps of the third review (fences in quotes, budgets, paths)
  6. lib.nvim fix markdown.frontmatter: quote number-like strings in numbers mode, refuse prose blocks, unique temp name
  7. lsp.nvim fix env-links: close the gaps the review found in the anchor rework
  8. lsp.nvim fix env-links: close the gaps the review of the fixes found (diagnostics, scanner)
  9. lib.nvim feat markdown.frontmatter: flat-YAML frontmatter parse/patch with byte-exact roundtrip
  10. lsp.nvim fix env-links: give headings the anchors GitHub gives (review round)

Full stream