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 は以下のいずれかで処理できます:
    1. Neovim 内でマークダウンとして表示し、
    2. ファイルに自動的に適用(差分ベース、変更されていない行を最小限に抑えるオプションあり)。
  • 特別な Zen モード では、Avante をスタンドアロン CLI(avante)として実行できますが、裏では Neovim の全機能を活用します。

主な機能

  • AI ベースのコード補助 – 編集中のファイルについて質問し、具体的な提案を受けることができます。
  • ワンクリック適用 – 提案を受け入れると、Avante がバッファを自動的に書き換えます。
  • プロジェクト固有の指示ファイル (avante.md) – AI のキャラクター、ミッション、スタック、コーディング規約などを定義し、モデルがコードベースに合わせたアドバイスを提供できるようにします。
  • 複数プロバイダー対応 & ダブルブーストモード – 複数のバックエンドを設定可能。実験的モードでは、2 つのプロバイダーを照合して出力を統合できます。
  • 自動提案(オプション) – 入力中にバックグラウンドで提案をリクエストできます。
  • ACP(AI-Code-Planner)サポート – ツールがファイルを自動編集し、場所を追跡し、権限を承認できます。
  • プロンプトログ – すべてのリクエスト/レスポンスをディスクに保存し、再実行やデバッグに利用可能。
  • 拡張可能な UIAvante ファイルタイプを認識する任意のマークダウンレンダラと連携可能。オプションの UI ヘルパー(snacks.nvimnui.nvimrender-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)もドキュメント化されています。

基本的な使い方

  1. require('avante').setup{ … } – オプションで設定を渡す。
  2. :Avante(または mappings.suggestion で定義されたキーマップ)でチャットを開く。
  3. 質問やリクエストを入力(例:「この関数を async/await でリファクタリングして」)。Avante がモデルの応答をストリーミングで表示。
  4. <M-l>(デフォルト)で提案を承認、<C-]> で却下。
  5. 変更は差分として適用され、]x / [x で差分をナビゲート可能。
  6. Zen モードを有効にするには、./contrib/avante からヘルパー スクリプトをインストールし、ターミナルで avante を実行。Neovim をレンダリングに使用する CLI が提供されます。

カスタマイズポイント

  • プロバイダー設定 – 任意の対応モデルを選択し、温度、最大トークン数、タイムアウトなどを設定可能。
  • 動作フラグ – 自動提案、差分の自動適用、トークン数カウント、自動ファイル追加などを切り替え可能。
  • キーマッピング – 主な操作(承認、次/前提案、差分ナビゲーション、送信、キャンセル)はすべてリマップ可能。
  • プロンプトロガー – 有効/無効、ログディレクトリの変更、前/次のログを閲覧するキーバインドの設定。
  • ダブルブースト – 2 つのプロバイダーの出力を統合する実験的モード。

エコシステムと依存関係

  • コア Lua コード:plenary.nvimnui.nvim
  • オプションの UI ヘルパー:render-markdown.nvimnvim-cmpimg-clip.nvimcopilot.luasnacks.nvimmini.picktelescope.nvimfzf-lua
  • 小さな Rust バイナリ(Cargo でビルド)が LLM API との通信の重い処理を担当します。

成熟度

  • 活発にメンテナンス中(Lua および Rust のテスト CI バッジ、README に迅速なイテレーションの記載)。
  • Neovim 0.11+ を必要とします(完全な機能には 0.12+ を推奨)。
  • 一部の機能は 実験的(自動提案、ダブルブースト、ACP 自動承認)。

誰に役立つか

  • Neovim で大部分の時間を過ごし、エディタから離れずにインライン AI 補助を望む開発者。
  • プロジェクト固有のコーディングガイドラインを LLM で強制したいチーム(avante.md を活用)。
  • Cursor AI IDE の体験が好きだが、完全にオープンソースで自己ホスト可能なワークフローを好むユーザー。

上記のすべての情報は、リポジトリの README から直接取得しています。

これを取り上げた記事

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト