Skip to content

✨ AI-powered coding, seamlessly in Neovim. Supports Anthropic, Copilot, Gemini, Ollama, OpenAI and xAI LLMs

License

Notifications You must be signed in to change notification settings

tatianakuznetsova2/codecompanion.nvim

 
 

Repository files navigation

CodeCompanion.nvim

Code with any LLM via the in-built adapters, the community adapters or by building your own

New features are always announced here

💜 Sponsors

Thank you to the following people:

Bassam DataIvo TobyKTS CodeLuxusUser avatar: Carlos FlorêncioUser avatar: Jeff GordonUser avatar: Vít ObrusníkUser avatar: Linfeng LiUser avatar: JAWUser avatar: Bryce NealUser avatar: kohane27User avatar: Michał KiełbowiczUser avatar: Muhammad Hanif

✨ Features

📸 In Action

WelcomeToCodeCompanion.mp4

ToolsandAgenticWorkflows.mp4

InlineAssistant.mp4

🚀 Getting Started

Everything you need to know about CodeCompanion (installation, configuration and usage) is within the docs.

🧰 Troubleshooting

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.

🎁 Contributing

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.

👏 Acknowledgements

  • 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 inline assistant 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
  • Saghen for the fantastic docs inspiration from blink.cmp and continued PRs to the project
  • Catwell for the queue inspiration that I use to stack agents and tools
  • ravitemer for the fantastic extensions API

About

✨ AI-powered coding, seamlessly in Neovim. Supports Anthropic, Copilot, Gemini, Ollama, OpenAI and xAI LLMs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 98.4%
  • Tree-sitter Query 1.1%
  • Other 0.5%