Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Plugin Development

A plugin is pure Lua over the btv.* API — a lua/<name>/init.lua module that exposes setup(opts) and wires keymaps, commands, autocmds, and UI through btv.*. The server owns the UI surfaces; the plugin supplies data and behavior.

Install one by declaring it with the built-in manager and running :PluginSync:

btv.plugins({
  { "bemtvi/bemtvi-keys-helper",
    config = function() require("bemtvi-keys-helper").setup({}) end },
})

Where to go next

  • Writing plugins — the full authoring guide: anatomy, loading, the btv.* surfaces you’ll use, a worked example, and testing.
  • btv.* API Reference — every public function in the btv.* namespace, generated from the prelude source.
  • bemtvi-plugin-skills — agent skills that teach a coding agent the btv.* model, one skill per surface. The model is not in any agent’s training data, so without them an agent writes neovim plugins that do not run here.