local_fire_departmentHoneystax
search⌘K
loginLog Inperson_addSign Up
layers
HONEYSTAX TERMINAL v1.0
HomeNewsSavedSubmit
Back to the live board
C

codecompanion.nvim

Agent

AI Coding, Vim Style

Copy the install, test the workflow, then decide if it earns a permanent slot.

6,325
Why nowMoving now

Fresh repo activity plus visible builder pull. This is the kind of tool people test before it turns obvious.

DecisionHigh-conviction move

Copy the install, test the workflow, then decide if it earns a permanent slot.

Trial costDeep lift

This wants more setup and more teardown. Run it only if the upside is clear.

Risk25/100

GitHub health 71/100. no security policy. Fresh enough repo health and manageable issue load keep the risk controlled.

What You Are Adopting

AI Agent

Universal

Model

Multiple

Build Time

Hours

Test This In Your Stack

One command inClean rollbackLow commitment
shieldSandboxedInstalls to ~/.claude — isolated from your projects. One command to remove.

Fastest way to find out if codecompanion.nvim belongs in your setup.

Copy the install command, run a real test, and back it out cleanly if it slows you down.

Try now
git clone https://github.com/olimorris/codecompanion.nvim ~/.claude/agents/codecompanion-nvim

Run this first. You will know quickly if the workflow earns a permanent slot.

Back out
rm -rf ~/.claude/agents/codecompanion-nvim

No messy cleanup loop. If it misses, remove it and keep moving.

Install Location

~/  └─ .claude/      ├─ commands/      ├─ agents/      │   └─ codecompanion-nvim/ ← installs here      └─ settings.json

About

AI Coding, Vim Style. An open-source agent for the AI coding ecosystem.

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

  • 💬 Copilot Chat meets Zed AI, in Neovim
  • 🔌 Support for LLMs from Anthropic, Copilot, GitHub Models, DeepSeek, Gemini, Mistral AI, Novita, Ollama, OpenAI, Azure OpenAI, HuggingFace and xAI (or bring your own)
  • 🤖 Support for Agent Client Protocol, enabling coding with agents like Augment Code, Cagent from Docker, Claude Code, Codex, Gemini CLI, Goose, Kimi CLI, Kiro, Mistral Vibe and OpenCode
  • 🫶 User contributed and supported adapters
  • 🔋 Support for Model Context Protocol (MCP)
  • 🚀 Inline transformations, code creation and refactoring
  • 🎨 Editor Context, Slash Commands, Agents/Tools and Workflows to improve LLM output
  • 🧠 Support for rules files like CLAUDE.md, .cursor/rules and your own custom ones
  • ✨ Built-in prompt library for common tasks like advice on LSP errors and code explanations
  • 🏗️ Create your own custom prompts, Editor Context and Slash Commands
  • 📚 Have multiple chats open at the same time
  • 🎨 Support for vision and images as input
  • 💪 Async execution for fast performance

📸 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

Tech Stack

GoOpenAIClaudeAnthropicOllamaLLMDocker
Open Live ProjectAudit Repo

Reviews0

Log in to write a review.

ActiveLast commit today
bug_report9open issues
Submitted December 27, 2023

auto_awesomeYour strongest next moves after codecompanion.nvim