discover · compare · collections · requirements · contribute · feed · watching · stats · help with your tokens
olimorris/codecompanion.nvim · source
Snapshot 0 · 2026-11-04T12:47:27Z · Lua · Apache-2.0
Content fingerprint
1860e469638de4a40ba4d0fd25dbe6a1643c2e458e62ad7a91685d92f3cfd963GitHub description at capture
✨ AI Coding, Vim Style
README at capture
<!-- panvimdoc-ignore-start -->
<p align="center">
<a href="https://codecompanion.olimorris.dev"><img src="https://github.com/user-attachments/assets/73c5a28b-6110-4136-8bd3-2430a7b648f3" alt="CodeCompanion.nvim" /></a>
</p>
<p align="center">
<a href="https://github.com/olimorris/codecompanion.nvim/stargazers"><img src="https://img.shields.io/github/stars/olimorris/codecompanion.nvim?color=c678dd&logoColor=e06c75&style=for-the-badge"></a>
<a href="https://github.com/olimorris/codecompanion.nvim/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/olimorris/codecompanion.nvim/ci.yml?branch=main&label=tests&style=for-the-badge"></a>
<a href="https://github.com/olimorris/codecompanion.nvim/releases"><img src="https://img.shields.io/github/v/release/olimorris/codecompanion.nvim?style=for-the-badge"></a>
</p>
<p align="center">A Neovim AI coding assistant for coding with LLMs (Anthropic, OpenAI, Gemini, Copilot and <a href="https://codecompanion.olimorris.dev/getting-started.html">more</a>) and AI agents. With built-in support for <a href="https://agentclientprotocol.com">Agent Client Protocol (ACP)</a>, <a href="https://codecompanion.olimorris.dev/model-context-protocol">Model Context Protocol (MCP)</a>, and agents like <a href="https://docs.anthropic.com/en/docs/claude-code/overview">Claude Code</a> and <a href="https://openai.com/codex">Codex</a></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/Alexander-Garcia"><img src="https://github.com/Alexander-Garcia.png" width="60px" alt="User avatar: Alexander Garcia" /></a><a href="https://github.com/pixlmint"><img src="https://github.com/pixlmint.png" width="60px" alt="User avatar: Christian Gröber" /></a><a href="https://github.com/itskyedo"><img src="https://github.com/itskyedo.png" width="60px" alt="User avatar: Kyedo" /></a><a href="https://github.com/jsit"><img src="https://github.com/jsit.png" width="60px" alt="User avatar: Jay Sitter" /></a><a href="https://github.com/harrisoncramer"><img src="https://github.com/harrisoncramer.png" width="60px" alt="User avatar: Harrison (Harry) Cramer" /></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
- :speech_balloon: [Copilot Chat](https://github.com/features/copilot) meets [Zed AI](https://zed.dev/blog/zed-ai), in Neovim
- :zap: Integrates Neovim with LLMs and Agents in the CLI
- :electric_plug: Support for LLMs from [Anthropic](https://platform.claude.com/docs/en/about-claude/models/overview), [DeepSeek](https://www.deepseek.com), [Google Gemini](https://ai.google.dev/gemini-api/docs/models), [GitHub Copilot](https://github.com/features/copilot), [Kimi](https://platform.kimi.ai), [Mistral](https://mistral.ai/), [Novita](https://novita.ai/), [Ollama](https://ollama.com/), [OpenAI](https://developers.openai.com/api/docs/models), Azure OpenAI, [OpenRouter](https://openrouter.ai/), [Hugging Face](https://huggingface.co/) and [xAI](https://docs.x.ai/developers/models) out of the box (or [bring your own](https://codecompanion.olimorris.dev/extending/adapters.html))
- :robot: Support for [Agent Client Protocol](https://agentclientprotocol.com/overview/introduction), enabling coding with agents like [Augment Code](https://docs.augmentcode.com/cli/overview), [Cagent](https://github.com/docker/cagent) from Docker, [Claude Code](https://docs.anthropic.com/en/docs/claude-code/overview), [Codex](https://openai.com/codex), [Copilot CLI](https://github.com/features/copilot/cli), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [Goose](https://block.github.io/goose/), [Cursor CLI](https://cursor.com/docs/cli/overview), [Kimi CLI](https://github.com/MoonshotAI/kimi-cli), [Kiro](https://kiro.dev/docs/cli/), [Mistral Vibe](https://github.com/mistralai/mistral-vibe) and [OpenCode](https://opencode.ai)
- :heart_hands: User contributed and supported [adapters](https://codecompanion.olimorris.dev/configuration/adapters-http#community-adapters)
- :man_technologist: [Code reviews](https://codecompanion.olimorris.dev/usage/code-review) enabling you to comment on and approve/reject agent code
- :battery: Support for [Model Context Protocol (MCP)](https://codecompanion.olimorris.dev/model-context-protocol#model-context-protocol-mcp-support)
- :rocket: [Inline transformations](https://codecompanion.olimorris.dev/usage/inline.html), code creation and refactoring
- :art: [Editor Context](https://codecompanion.olimorris.dev/usage/chat-buffer/editor-context.html), [Slash Commands](https://codecompanion.olimorris.dev/usage/chat-buffer/slash-commands.html), [Agents/Tools](https://codecompanion.olimorris.dev/usage/chat-buffer/agents-tools) and [Workflows](https://codecompanion.olimorris.dev/usage/workflows.html) to improve LLM output
- :brain: Support for [skills](https://codecompanion.olimorris.dev/usage/chat-buffer/skills) and [rules](https://codecompanion.olimorris.dev/usage/chat-buffer/rules.html) (like `CLAUDE.md`, `.cursor/rules` and your own custom ones)
- :sparkles: Built-in [prompt library](https://codecompanion.olimorris.dev/usage/action-palette.html) for common tasks like advice on LSP errors and code explanations
- :building_construction: Create your own [custom prompts](https://codecompanion.olimorris.dev/configuration/prompt-library.html#creating-prompts), Editor Context and Slash Commands
- :inbox_tray: Have [multiple chats](https://codecompanion.olimorris.dev/usage/chat-buffer/#multiple-chats) open at the same time
- :art: Support for [images](https://codecompanion.olimorris.dev/usage/chat-buffer/#images) and PDFs as input
- :muscle: Async execution for fast performance
<!-- panvimdoc-ignore-start -->
## :camera_flash: In Action
<div align="center">
<p>
<h3><a href="https://github.com/user-attachments/assets/3cc83544-2690-49b5-8be6-51e671db52ef">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/362b7cfd-e794-4d9c-9a74-90d5e2a87a32"></video>
</p>
<p>
<h3><a href="https://github.com/user-attachments/assets/942f2868-db57-4a33-86f8-1dbfe904df07">Inline Interaction</a></h3>
<video controls muted src="https://github.com/user-attachments/assets/942f2868-db57-4a33-86f8-1dbfe904df07"></video>
</p>
</div>
<!-- panvimdoc-ignore-end -->
## :rocket: Getting Started
Everything you need to know about CodeCompanion (installation, configuration and usage) is within the [docs](https://codecompanion.olimorris.dev).
You can use the [@{search_help}](https://codecompanion.olimorris.dev/usage/chat-buffer/agents-tools#search-help) tool to ask an LLM to search the CodeCompanion docs for you.
## :toolbox: Troubleshooting
Before raising an [issue](https://github.com/olimorris/codecompanion.nvim/issues), 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](https://github.com/olimorris/codecompanion.nvim/blob/main/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](CONTRIBUTING.md) guide.
## :clap: Acknowledgements
- [Steven Arcangeli](https://github.com/stevearc) for his genius creation of the chat buffer and his feedback early on
- [Wtf.nvim](https://github.com/piersolenski/wtf.nvim) for the LSP assistant action
- [CopilotChat.nvim](https://github.com/CopilotC-Nvim/CopilotChat.nvim) for the rendering and usability of the chat
buffer
- [Aerial.nvim](https://github.com/stevearc/aerial.nvim) for the Tree-sitter parsing which inspired the symbols Slash
Command
- [Saghen](https://github.com/Saghen) for the fantastic docs inspiration from [blink.cmp](https://github.com/Saghen/blink.cmp) and continued PRs to the project
- [Catwell](https://github.com/catwell) for the [queue](https://github.com/catwell/cw-lua/blob/master/deque/deque.lua) inspiration that I use to stack agents and tools
- [bassamsdata](https://github.com/bassamsdata) for the amazing `insert_edit_into_file` tool (the list is endless) and ongoing contributions to this project
- [ravitemer](https://github.com/ravitemer) for the fantastic extensions API
- [Davidyz](https://github.com/Davidyz) for his continued, excellent contributions that keep CodeCompanion going
- [Conrad Irwin](https://github.com/conradirwin), [Agus Zubiaga](https://github.com/agu-z) and Morgan Krey from [Zed Industries](https://github.com/zed-industries) for their support in implementing [ACP](https://agentclientprotocol.com)
- [Sidekick.nvim](https://github.com/folke/sidekick.nvim) for the diff and terminal input inspiration
<!-- panvimdoc-ignore-end -->