Currently supports: Anthropic, Copilot, Gemini, Ollama, OpenAI, Azure OpenAI, HuggingFace and xAI adapters
New features are always announced here
Thank you to the following people:
- 💬 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
What.s.new.in.v9.0.0.mp4
Please visit the documentation site for installation and configuration instructions.
Before raising an issue, there are a number of steps you can take to troubleshoot a problem:
Checkhealth
Run :checkhealth codecompanion
and check all dependencies are installed correctly. Also take note of the log file path.
Turn on logging
Update your config and turn debug logging on:
require("codecompanion").setup({
opts = {
log_level = "DEBUG", -- or "TRACE"
}
})
and inspect the log file as per the location from the checkhealth command.
Try with a minimal.lua
file
A large proportion of issues which are raised in Neovim plugins are to do with a user's own config. That's why I always ask users to fill in a minimal.lua
file when they raise an issue. We can rule out their config being an issue and it allows me to recreate the problem.
For this purpose, I have included a minimal.lua file in the repository for you to test out if you're facing issues. Simply copy the file, edit it and run neovim with nvim --clean -u minimal.lua
.
I am open to contributions but they will be implemented at my discretion. Feel free to open up a discussion before embarking on a PR and please read the contributing.md guide.
- Steven Arcangeli for his genius creation of the chat buffer and his feedback early on
- Manoel Campos for the xml2lua library that's used in the tools implementation
- Dante.nvim for the beautifully simple diff implementation
- Wtf.nvim for the LSP assistant action
- CopilotChat.nvim for the rendering and usability of the chat buffer
- Aerial.nvim for the Tree-sitter parsing which inspired the symbols Slash Command