avante.nvimとCodeCompanionの違い Neovim用AIプラグインの選び方
NeovimでAIを使うプラグインを探すと、最後に残るのはavante.nvimとCodeCompanion.nvimの2本です。星の数はavanteが18,100に対してCodeCompanionが6,800で、数だけ見ると勝負がついているように見えます。ところが実際に両方入れてみると、そもそも用途が違うので数の比較にあまり意味がありませんでした。隔離環境に入れて確かめた結果を、選ぶときに効く順で並べます。
検証環境:macOS上のNeovim 0.12.4に、$XDG_CONFIG_HOMEなどを一時ディレクトリへ向けた隔離環境を用意し、vim.packで両方を入れて確認しました。本文のエラーと:checkhealthの出力は実行結果の実物です。APIキーを入れた状態での応答の質や、モデルごとの得手不得手は評価していません。星の数とリリース情報はGitHub APIで2026-08-17に取得した値です。
目次(7項目)
Cursor型とチャット型で、そもそも狙いが違う
2本の性格を一言で言うと、avanteはCursorをNeovimの中に持ち込むもの、CodeCompanionはチャットとインライン変換をNeovimの流儀で置くものです。作者自身の説明もそうなっていて、CodeCompanionのREADMEには「Copilot Chat meets Zed AI, in Neovim」と書かれています。
| 項目 | avante.nvim | CodeCompanion.nvim |
|---|---|---|
| 星 | 18,112 | 6,803 |
| 主なUI | 右のサイドバーに差分 | チャットバッファとインライン変換 |
| 適用 | Aで全部、aでカーソル位置 | quickfixで承認と却下 |
| 実装 | LuaとRustのバイナリ | Luaのみ |
| 最新リリース | release-v0.1 | v19.22.0 |
いちばん下の行は見た目より重い情報です。avanteのタグはv0.1.2までしか進んでおらず、実質はmainを追う運用になります。CodeCompanionは同じ時期に19系のマイナーを積み重ねていて、リリースの刻み方から想定される安定度が違います。新しい機能が早いほうがいいのか、壊れにくいほうがいいのかで、ここは評価が反転します。
avanteはビルド成果物が要る
導入で差が出るのはこの点です。avanteはRustで書かれた部分を持っていて、makeを走らせるとGitHubのリリースからビルド済みのアーカイブを取ってきます。手元で実行したときのログがこれです。
% Total % Received % Xferd Average Speed
100 11.6M 100 11.6M 0 0 9880k 0
x avante_html2md.so
x avante_repo_map.so
x avante_templates.so
x avante_tokenizers.so
11.6MBを落として.soを4つ展開します。ソースからビルドしたい場合はmake BUILD_FROM_SOURCE=trueで、そのときはcargoが必要です。展開後のプラグインのディレクトリは52MBになりました。CodeCompanionのほうは12MBで、こちらはLuaとドキュメントだけです。
問題は、このビルドを忘れたときの症状です。vim.packで入れるとビルドを走らせる仕組みが無いので、READMEにはPackChangedのautocmdを自分で書く例が載っています。書かずに起動するとどうなるかを試したところ、次のようになりました。
-- ビルドしていない状態
require("avante") -- 成功する
require("avante").setup({}) -- これも成功する
require("avante_repo_map") -- module 'avante_repo_map' not found
require("avante_tokenizers")-- module 'avante_tokenizers' not found
setup()まで通ってしまうのが厄介なところで、起動時には何も起きません。実際に使い始めてから、機能によっては動かないという形で表面化します。lazy.nvimの設定例にbuildの指定があり、READMEにも強い調子で注意が書かれているのはこのためです。逆にCodeCompanionはvim.pack.addで入れてrequireが即通り、追加の手順はありませんでした。
入ったかどうかは:checkhealthで確かめられます。CodeCompanionの出力はこうなりました。
codecompanion: 警告2件
- Neovim version: 0.12.4
Dependencies: ~
- OK plenary.nvim installed
Tree-sitter parsers: ~
- OK markdown parser installed
- OK markdown_inline parser installed
- WARNING yaml parser not found
Libraries: ~
- OK curl installed
- OK file installed
- WARNING rg not found
- OK sqlite3 installed
警告の2つはどちらも任意です。yamlのパーサはプロンプトライブラリをmarkdownで書くとき、ripgrepはgrep_searchツールを使うときに要ります。必須なのはcurlとNeovim 0.11.0以上だけです。
動作要件はどちらもNeovim 0.11以上
avanteのREADMEは冒頭のバッジに「Neovim: v0.10+」と出しているのに、インストールの節では「avante.nvim is currently only compatible with Neovim 0.11.0 or later」と書かれています。同じREADMEの中で食い違っているので、厳しいほうの0.11以上で考えるのが安全です。CodeCompanionも公式ドキュメントの要件に「Neovim 0.11.0 or greater」とあり、結果として両者の下限は揃っています。0.10系を使い続けている場合は、どちらを選ぶにしても先にNeovimを上げることになります。
書き換えを取り込む道具立てが違う
AIが出した差分をどう自分のコードに入れるか、という部分は設計思想がはっきり分かれます。
avanteはサイドバーに差分を並べ、Aで全部、aでカーソル位置のものを適用します。rでやり直し、eで依頼文の編集、@でファイルの追加です。Cursorを触ったことがあれば説明が要らないはずで、狙いどおりの体験になっています。さらにFast Applyという仕組みがあり、適用専用のモデルを使って毎秒2,500から4,500トークンで流し込むとドキュメントに書かれています。
CodeCompanionはコードレビューという別の形を採っていて、エージェントの変更をquickfixリストにハンク単位で並べます。
| コマンド | 働き |
|---|---|
:CodeCompanionCodeReview | 変更をquickfixに並べる |
Start | 作業前の基準点を記録する |
Comment | その行にコメントを付ける |
Approve | 受け入れて基準点を進める |
quickfixの中ではaで受け入れ、cでコメント、dで差分、xでファイルごと無視です。[qと]qもそのまま効きます。プルリクエストのレビューをNeovimの中でやる形で、quickfixを使った横断作業に慣れている人ほど手がそのまま乗ります。基準点を進める作りになっているので、2周目のレビューでは指摘に対する差分だけが出ます。
速く当てたいならavante、読んでから通したいならCodeCompanionです。ここは好みではなく、扱っているコードの重さで決めたほうが後悔しません。
ACPとMCPは両方が対応している
「既存のClaude CodeやCodexをそのまま中で動かせるのはCodeCompanionだけ」と思っていたのですが、調べたら違いました。avanteもACP(Agent Client Protocol)に対応していて、acp_providersにcodexやclaude-codeなどの既定のプロバイダを持っています。Zen ModeというCLI風の画面まで用意されていて、READMEには「It looks like a Vibe Coding Agent CLI but it is completely Neovim underneath」と書かれています。
差が残っているのはMCPのほうです。CodeCompanionは公式ドキュメントに「CodeCompanion implements the Model Context Protocol (MCP)」とあり本体に入っています。avanteはmcphub.nvimという別のプラグインを経由する形で、README側もそちらへ案内しています。MCPサーバをいくつも繋ぐ前提なら、依存が1本減るぶんCodeCompanionが素直です。
もう1つ実務で効くのがルールファイルの扱いです。avanteはプロジェクト直下のavante.mdを読みます。CodeCompanionはCLAUDE.mdや.cursor/rulesも読めるので、すでに書いてあるものを流用できます。既存のリポジトリにCLAUDE.mdが置いてあるなら、この差は初日から効きます。
どちらを選ぶか
ここまでを判断の順に並べ直します。
| こういう人 | 選ぶもの | 理由 |
|---|---|---|
| Cursorから来た | avante.nvim | 差分と適用の体験がそのまま |
| 依存を増やしたくない | CodeCompanion | Luaだけ。curlがあれば動く |
| 読んでから通したい | CodeCompanion | quickfixでハンク単位のレビュー |
| MCPを何本も繋ぐ | CodeCompanion | 本体に入っている |
| 壊れにくさを取る | CodeCompanion | リリースの刻み方が細かい |
そのうえで、どちらも要らない場合があることは書いておきます。すでにClaude CodeやCodexをターミナルで動かしていて、Neovimからは開いて渡せれば十分なら、sidekick.nvimで常駐させるほうが軽く済みます。プラグインを増やしたくないなら素の:terminalに置く手もあります。この2本が効いてくるのは、差分の作成そのものをエディタの中でやりたいときです。
最初は星の数だけ見てavanteを入れました。vim.pack.addを書いて起動し、エラーが出ないので入ったと思い込んだのが失敗で、しばらくしてから機能が動かず、ビルドが走っていないことにようやく気づきました。setup()が素通りするので気づきようがない、というのが正直な感想です。もう1つ意外だったのは、CodeCompanionのレビューがquickfixだったことでした。使い慣れたリストがそのまま出てくるので、初見でも]qで次のハンクへ動けます。AI用の新しいUIを覚えるつもりでいたぶん、拍子抜けしつつ気に入りました。ACPの対応はavanteにも入っているので、そこを決め手にしようとしていた自分の前提は取り下げています。
まとめ
avante.nvimとCodeCompanion.nvimは、星の数が3倍近く違いますが競合というより住み分けです。avanteはCursorの体験をNeovimに持ち込むもので、差分をサイドバーに出してAやaで流し込みます。ただしRustのバイナリが必要で、vim.packで入れるならビルドを走らせるautocmdを自分で書く必要があり、忘れてもsetup()は成功してしまいます。CodeCompanionはLuaだけで動き、変更をquickfixに並べてハンク単位で承認する形です。ACPはどちらも持っていて、差が残るのはMCPが本体に入っているかどうかと、CLAUDE.mdのような既存のルールファイルを読めるかどうかでした。動作要件はどちらもNeovim 0.11以上です。エディタ側でどこまでやりたいかが決まっていない段階なら、エディタ自体のVimモードの違いから先に整理したほうが遠回りになりません。