Welcome to CodeCompanion.nvim
AI-powered coding, seamlessly in Neovim
CodeCompanion is a productivity tool which streamlines how you develop with LLMs, in Neovim.
Features
- 💬 Copilot Chat meets Zed AI, in Neovim
- 🔌 Support for Anthropic, Copilot, Gemini, Ollama, OpenAI, Azure OpenAI, HuggingFace and xAI LLMs (or bring your own!)
- 🚀 Inline transformations, code creation and refactoring
- 🤖 Variables, Slash Commands, Agents/Tools and Workflows to improve LLM output
- ✨ Built in prompt library for common tasks like advice on LSP errors and code explanations
- 🏗️ Create your own custom prompts, Variables and Slash Commands
- 📚 Have multiple chats open at the same time
- 💪 Async execution for fast performance
Plugin Overview
The plugin uses adapters to connect to LLMs. Out of the box, the plugin supports:
- Anthropic (
anthropic
) - Requires an API key and supports prompt caching - Copilot (
copilot
) - Requires a token which is created via:Copilot setup
in Copilot.vim - Gemini (
gemini
) - Requires an API key - HuggingFace (
huggingface
) - Requires an API key - Ollama (
ollama
) - Both local and remotely hosted - OpenAI (
openai
) - Requires an API key - Azure OpenAI (
azure_openai
) - Requires an Azure OpenAI service with a model deployment - xAI (
xai
) - Requires an API key
The plugin utilises objects called Strategies. These are the different ways that a user can interact with the plugin. The chat strategy harnesses a buffer to allow direct conversation with the LLM. The inline strategy allows for output from the LLM to be written directly into a pre-existing Neovim buffer.
The plugin allows you to specify adapters for each strategy and also for each prompt library entry.