Installation
IMPORTANT
The plugin requires the markdown Tree-sitter parser to be installed with :TSInstall markdown
Requirements
- The
curl
library - Neovim 0.10.0 or greater
- (Optional) An API key for your chosen LLM
Installation
The plugin can be installed with the plugin manager of your choice:
Lazy.nvim
{
"olimorris/codecompanion.nvim",
opts = {},
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
},
},
Packer
use({
"olimorris/codecompanion.nvim",
config = function()
require("codecompanion").setup()
end,
requires = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
}
}),
vim-plug
call plug#begin()
Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-treesitter/nvim-treesitter'
Plug 'olimorris/codecompanion.nvim'
call plug#end()
lua << EOF
require("codecompanion").setup()
EOF
Pinned plugins
As per #377, if you pin your plugins to the latest releases, ensure you set plenary.nvim to follow the master branch:
{ "nvim-lua/plenary.nvim", branch = "master" },
Installing Extensions
CodeCompanion supports extensions that add additional functionality to the plugin. For example, to install and set up the mcphub extension using lazy.nvim:
- Install the extension:
{
"olimorris/codecompanion.nvim",
dependencies = {
-- Add mcphub.nvim as a dependency
"ravitemer/mcphub.nvim"
}
}
- Add extension to your config with additional options:
-- Configure in your setup
require("codecompanion").setup({
extensions = {
mcphub = {
callback = "mcphub.extensions.codecompanion",
opts = {
make_vars = true,
make_slash_commands = true,
show_result_in_chat = true
}
}
}
})
Visit the extensions documentation to learn more about available extensions and how to create your own.
Completion
Out of the box, the plugin supports completion with both nvim-cmp and blink.cmp. For the latter, on version <= 0.10.0, ensure that you've added codecompanion
as a source:
sources = {
per_filetype = {
codecompanion = { "codecompanion" },
}
},
The plugin also supports native completion.
Help
If you're having trouble installing the plugin, as a first step, run :checkhealth codecompanion
to check that plugin is installed correctly. After that, consider using the minimal.lua file to troubleshoot, running it with nvim --clean -u minimal.lua
.