Neovim plugin that talks to LLMs, listens to you, and stays out of your way
A Lua plugin bringing multi-provider AI chat, instructable code ops, and voice input into Neovim with minimal dependencies and maximal Vim-native feel.

What it does
Gp.nvim wires LLMs into Neovim through plain old buffers and commands. You get ChatGPT-style markdown chat sessions, templated text/code operations (rewrite, append, explain, generate tests), speech-to-text via SoX, and even image generation — all without leaving your editor. It supports OpenAI, Ollama, Anthropic, Google Gemini, Perplexity, GitHub Copilot, and any OpenAI-compatible endpoint.
The interesting bit
The plugin’s “hooks” system: write Lua functions in your config that get full access to the plugin’s internals and are auto-registered as :Gp* commands. That’s the extension mechanism — no separate plugin API, just functions. Also, streaming responses undo with a single u, which is the kind of Vim-native detail that signals actual daily-driver use.
Key highlights
- Multi-provider setup with per-agent configuration (disable defaults, define custom ones with their own model/system prompt)
- Secret fetching is async if you pass a command table — handy for password managers that lag
.gp.mdfiles in repos for project-specific instructions (coding conventions, library preferences)- Voice commands need SoX; core only needs
curlandgrep - Chat finder popup for searching, previewing, and managing past sessions
Caveats
- Copilot support requires extracting your own OAuth token from Copilot’s internal files (documented but fiddly)
- Google Gemini has “some geo-restrictions (EU)” per the README
- Defaults change over time; the author explicitly recommends minimal config to avoid breakage
Verdict
Worth a look if you want LLM integration that feels like Vim, not like a web app crammed into a split. Skip it if you need a polished GUI or zero configuration — this is a tinkerer’s tool.