AIエージェントがNeovimやシステムを自在に操作するための「Skill(ツール)」を提供する、Rust製のCLIツール集です。 パス指定による単一ファイルの読み書きから、ディレクトリ全体の再帰的な探索まで対応しており、AIエージェントがプロジェクト全体を把握しながらタスクを実行することを支援します。
- パス・ディレクトリ対応: ファイル単体だけでなく、ディレクトリを指定した再帰的な情報の取得が可能です。
- 透過的なデータアクセス: 対象ファイルがNeovimのバッファとして開かれている場合はバッファの最新内容(未保存含む)を、そうでなければ直接ディスク上のファイルを読み書きします。
- AIエージェント最適化:
ai-brain形式のskills/構成を採用しており、AIエージェントが自律的にコマンドを選択できるよう設計されています。 - 軽量・高速: Rust製バイナリ。外部ランタイム(Node.jsやPython等)に依存せず、Msgpack-RPC経由でNeovimと高速に通信します。
cargo build --releaseNeovimとの通信にはソケットパスが必要です。以下の優先順位で参照されます。
--server(-s) 引数:vim.v.servernameを直接渡す場合に使用します。AIエージェントにコンテキストとしてソケットパスを渡している場合に有用です。NVIM_LISTEN_ADDRESS環境変数NVIM環境変数(Neovim内から実行している場合に自動設定されるパス)
AIエージェントは以下のサブコマンドを組み合わせて使用します。
read <path>: 指定したパスの情報を取得します。- ファイルの場合:その内容を返します。
- ディレクトリの場合:配下の全ファイルを再帰的にスキャンして返します。
write <path> [--start n] [--end m] <lines...>: ファイルの書き込み・置換を行います。- 行指定なし:ファイル全体を上書きします。
--start,--end指定:指定範囲の行をピンポイントで置換します(Surgical Edit)。
diagnostics [path]: LSPの診断結果(エラー・警告)を取得します。パス指定で範囲を絞り込めます。cursor: Neovim上の現在のカーソル位置、ファイルパス、周囲のコードを取得します。shell "<cmd>": 任意のシェルコマンドを実行します。diff: カレントプロジェクトのGit差分を取得します。exec "<cmd>": NeovimのExコマンドを直接実行します。
open <files...>: 指定した複数のファイルをNeovimで開きます。close <files...>: 指定した複数のファイルをバッファ名から検索して閉じます。qf-add <files...>: 指定した複数のファイルをQuickfixリストに追加します。qf-remove <files...>: 指定した複数のファイルをQuickfixリストから削除します。
本プロジェクトは skills/nvim-cli/ ディレクトリに、AIエージェント向けの指示書(SKILL.md)とリファレンスを同梱しています。
AIエージェントはこれらを読み取ることで、プロジェクト構造の把握からコードの修正、エラーの解決までを自律的に遂行できるようになります。
- SKILL.md: 全体的な使用指針
- references/content.md: 読み書きと再帰処理の詳細
- references/cursor.md: エディタ状態の把握