Back to Codecompanion Nvim

README

README.md

19.13.010.2 KB
Original Source
<!-- panvimdoc-ignore-start --> <p align="center"> <a href="https://codecompanion.olimorris.dev"></a> </p> <p align="center"> <a href="https://github.com/olimorris/codecompanion.nvim/stargazers"></a> <a href="https://github.com/olimorris/codecompanion.nvim/actions/workflows/ci.yml"></a> <a href="https://github.com/olimorris/codecompanion.nvim/releases"></a> </p> <p align="center">Code with LLMs and Agents via the <a href="https://codecompanion.olimorris.dev/getting-started.html">in-built</a> adapters, the <a href="https://codecompanion.olimorris.dev/configuration/adapters#community-adapters">community</a> adapters or by <a href="https://codecompanion.olimorris.dev/extending/adapters.html">building</a> your own</p> <p align="center">New features are always announced <a href="https://github.com/olimorris/codecompanion.nvim/discussions/categories/announcements">here</a></p>

:purple_heart: Sponsors

Thank you to the following people:

<p align="center"> <!-- sponsors --><a href="https://github.com/unicell"></a><a href="https://github.com/jfgordon2"></a><a href="https://github.com/JuanCrg90"></a><a href="https://github.com/Alexander-Garcia"></a><a href="https://github.com/LumenYoung"></a><a href="https://github.com/alzwded"></a><a href="https://github.com/JPFrancoia"></a><a href="https://github.com/pixlmint"></a><a href="https://github.com/itskyedo"></a><a href="https://github.com/jsit"></a><a href="https://github.com/harrisoncramer"></a><!-- sponsors --> </p> <p align="center">If <i>you</i> love CodeCompanion and use it in your workflow, please consider <a href="https://github.com/sponsors/olimorris">sponsoring me</a></p> <!-- panvimdoc-ignore-end -->

:sparkles: Features

<!-- panvimdoc-ignore-start -->

:camera_flash: In Action

<div align="center"> <p> <h3><a href="https://github.com/user-attachments/assets/aa109f1d-0ec9-4f08-bd9a-df99da03b9a4">The Chat Buffer</a></h3> <video controls muted src="https://github.com/user-attachments/assets/3cc83544-2690-49b5-8be6-51e671db52ef"></video> </p> <p> <h3><a href="https://github.com/user-attachments/assets/362b7cfd-e794-4d9c-9a74-90d5e2a87a32">Tools + Agentic Workflows</a></h3> <video controls muted src="https://github.com/user-attachments/assets/59efa262-e768-4f36-9901-9d02b018fcf0"></video> </p> <p> <h3><a href="https://github.com/user-attachments/assets/dcddcb85-cba0-4017-9723-6e6b7f080fee">Inline Interaction</a></h3> <video controls muted src="https://github.com/user-attachments/assets/11a42705-d9de-4eb5-a9ab-c8a2772fb4d4"></video> </p> </div> <!-- panvimdoc-ignore-end -->

:rocket: Getting Started

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

:toolbox: 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:

lua
-- 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.

<!-- panvimdoc-ignore-start -->

:gift: 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.

:clap: 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
  • Sidekick.nvim for the diff and terminal input inspiration
<!-- panvimdoc-ignore-end -->