avante-corp/avante.nvim
Use your Neovim like using Cursor AI IDE!
avante.nvim – Neovim 内での AI ベースのコード補助
何ができるか
- Cursor AI IDE の体験をエディタ内に直接持ち込む Neovim プラグインです。LLM とチャットができ、コードの改善をリクエストし、ワンクリックで提案を適用できます。
動作方法
- Anthropic の Claude、OpenAI、Gemini、Moonshot など、1 つまたは複数の LLM プロバイダーと通信します。プロバイダー、モデル、エンドポイント、リクエストパラメータは
setup()呼び出しで設定可能です。 - チャットウィンドウ を開くと、現在のバッファ(または選択範囲)に加え、リポジトリルートに配置した
avante.mdファイルに記載されたプロジェクト固有の指示が送信されます。モデルはコードブロックを返却し、Avante は以下のいずれかで処理できます:- Neovim 内でマークダウンとして表示し、
- ファイルに自動的に適用(差分ベース、変更されていない行を最小限に抑えるオプションあり)。
- 特別な Zen モード では、Avante をスタンドアロン CLI(
avante)として実行できますが、裏では Neovim の全機能を活用します。
主な機能
- AI ベースのコード補助 – 編集中のファイルについて質問し、具体的な提案を受けることができます。
- ワンクリック適用 – 提案を受け入れると、Avante がバッファを自動的に書き換えます。
- プロジェクト固有の指示ファイル (
avante.md) – AI のキャラクター、ミッション、スタック、コーディング規約などを定義し、モデルがコードベースに合わせたアドバイスを提供できるようにします。 - 複数プロバイダー対応 & ダブルブーストモード – 複数のバックエンドを設定可能。実験的モードでは、2 つのプロバイダーを照合して出力を統合できます。
- 自動提案(オプション) – 入力中にバックグラウンドで提案をリクエストできます。
- ACP(AI-Code-Planner)サポート – ツールがファイルを自動編集し、場所を追跡し、権限を承認できます。
- プロンプトログ – すべてのリクエスト/レスポンスをディスクに保存し、再実行やデバッグに利用可能。
- 拡張可能な UI –
Avanteファイルタイプを認識する任意のマークダウンレンダラと連携可能。オプションの UI ヘルパー(snacks.nvim、nui.nvim、render-markdown.nvimなど)もサポートされています。
インストール方法
- 推奨は lazy.nvim(または他のプラグインマネージャ)。
makeステップで小さな Rust バイナリをビルド(または事前ビルド済みをダウンロード)。README からの例:{ "yetone/avante.nvim", build = vim.fn.has("win32") ~= 0 and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" or "make", event = "VeryLazy", version = false, opts = { instructions_file = "avante.md", provider = "claude", providers = { claude = { endpoint = "https://api.anthropic.com", model = "claude-sonnet-4-20250514", timeout = 30000, extra_request_body = { temperature = 0.75, max_tokens = 20480 }, }, }, }, dependencies = { "nvim-lua/plenary.nvim", "MunifTanjim/nui.nvim", ... }, } - その他のマネージャ(Pack、rocks.nvim、vim-plug、mini.deps、Home Manager、Nixvim)もドキュメント化されています。
基本的な使い方
require('avante').setup{ … }– オプションで設定を渡す。:Avante(またはmappings.suggestionで定義されたキーマップ)でチャットを開く。- 質問やリクエストを入力(例:「この関数を async/await でリファクタリングして」)。Avante がモデルの応答をストリーミングで表示。
<M-l>(デフォルト)で提案を承認、<C-]>で却下。- 変更は差分として適用され、
]x/[xで差分をナビゲート可能。 - Zen モードを有効にするには、
./contrib/avanteからヘルパー スクリプトをインストールし、ターミナルでavanteを実行。Neovim をレンダリングに使用する CLI が提供されます。
カスタマイズポイント
- プロバイダー設定 – 任意の対応モデルを選択し、温度、最大トークン数、タイムアウトなどを設定可能。
- 動作フラグ – 自動提案、差分の自動適用、トークン数カウント、自動ファイル追加などを切り替え可能。
- キーマッピング – 主な操作(承認、次/前提案、差分ナビゲーション、送信、キャンセル)はすべてリマップ可能。
- プロンプトロガー – 有効/無効、ログディレクトリの変更、前/次のログを閲覧するキーバインドの設定。
- ダブルブースト – 2 つのプロバイダーの出力を統合する実験的モード。
エコシステムと依存関係
- コア Lua コード:
plenary.nvim、nui.nvim。 - オプションの UI ヘルパー:
render-markdown.nvim、nvim-cmp、img-clip.nvim、copilot.lua、snacks.nvim、mini.pick、telescope.nvim、fzf-lua。 - 小さな Rust バイナリ(Cargo でビルド)が LLM API との通信の重い処理を担当します。
成熟度
- 活発にメンテナンス中(Lua および Rust のテスト CI バッジ、README に迅速なイテレーションの記載)。
- Neovim 0.11+ を必要とします(完全な機能には 0.12+ を推奨)。
- 一部の機能は 実験的(自動提案、ダブルブースト、ACP 自動承認)。
誰に役立つか
- Neovim で大部分の時間を過ごし、エディタから離れずにインライン AI 補助を望む開発者。
- プロジェクト固有のコーディングガイドラインを LLM で強制したいチーム(
avante.mdを活用)。 - Cursor AI IDE の体験が好きだが、完全にオープンソースで自己ホスト可能なワークフローを好むユーザー。
上記のすべての情報は、リポジトリの README から直接取得しています。
これを取り上げた記事
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト