GitHunt

README

CodeCompanion.nvim

Code with LLMs and Agents 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:

User avatar: Qiu YuUser avatar: Jeff GordonUser avatar: Pratyush MittalUser avatar: Juan Carlos RuizUser avatar: Alexander GarciaUser avatar: Lumen YangUser avatar: JPFrancoiaUser avatar: Christian GrΓΆberUser avatar: KyedoUser avatar: Jay SitterUser avatar: Harrison (Harry) Cramer

If you love CodeCompanion and use it in your workflow, please consider sponsoring me

✨ Features

πŸ“Έ In Action

The Chat Buffer

WelcomeToCodeCompanion.mp4

Tools + Agentic Workflows

ToolsAndAgenticWorkflows.mp4

Inline Assistant

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:

-- lazy.nvim
{
  "olimorris/codecompanion.nvim",
  dependencies = {
    "nvim-lua/plenary.nvim",
    "nvim-treesitter/nvim-treesitter",
  },
  opts = {
    -- NOTE: The log_level is in `opts.opts`
    opts = {
      log_level = "DEBUG", -- or "TRACE"
    },
  },
},

-- Other package managers
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
  • 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
  • bassamsdata for the amazing insert_edit_into_file tool (the list is endless) and ongoing contributions to this project
  • ravitemer for the fantastic extensions API
  • Davidyz for his continued, excellent contributions that keep CodeCompanion going
  • Conrad Irwin, Agus Zubiaga and Morgan Krey from Zed Industries for their support in implementing ACP

Languages

Lua99.1%Tree-sitter Query0.6%PowerShell0.1%Makefile0.1%Shell0.1%Dockerfile0.0%Python0.0%Go0.0%
Apache License 2.0
Created December 27, 2023
Updated March 8, 2026