← all repositories
frankroeder/parrot.nvim

Neovim's LLM plugin for the paranoid and the precise

A Lua plugin that wires LLMs into Neovim without agents, autocompletion, or background snooping—just explicit commands and markdown chat buffers.

parrot.nvim
Velocity · 7d
+0.8
★ / day
Trend
steady
star history

What it does

parrot.nvim lets you rewrite, append, or prepend text via LLM commands (:PrtRewrite, :PrtAppend, :PrtPrepend) on visual selections, and hold persistent chat sessions in plain Markdown buffers. It supports OpenAI, Anthropic, Gemini, xAI, Ollama, and a long tail of OpenAI-compatible endpoints through a unified provider system.

The interesting bit

The plugin’s entire identity is a reaction against agentic tools like Claude Code or Codex. No autocompletion, no hidden file analysis, no “helpful” background requests—every API call is explicit and user-triggered. The author even named it after the “stochastic parrot” critique of LLMs, which is either self-awareness or preemptive irony.

Key highlights

  • Two independent model selections: one for chat, one for inline commands, so you can use a cheap model for quick edits and a capable one for deep discussion
  • Chats persist as .md files; context can be scoped per-repository via .parrot.md
  • API keys load lazily from env vars, bash commands, or password manager CLIs
  • Hooks system for custom prompts and predefined workflows
  • Retry and edit commands (:PrtRetry, :PrtEdit) for iterating on LLM outputs without retyping prompts

Caveats

  • Requires Neovim 0.10+ and leans on plenary.nvim plus optional fzf/telescope/ripgrep
  • Chat model switching only works from inside a chat buffer; command model switching works elsewhere—this split is documented but easy to trip over
  • Based on an early fork of gp.nvim, so some architectural debt may linger

Verdict

Worth a look if you want LLM assistance in Neovim but find agentic tools too eager or opaque. Skip it if you want Copilot-style ghost text or hands-off automation; this plugin makes you drive stick.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.