Skip to content

aikawa9376/nvim-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nvim-cli

AIエージェントがNeovimやシステムを自在に操作するための「Skill(ツール)」を提供する、Rust製のCLIツール集です。 パス指定による単一ファイルの読み書きから、ディレクトリ全体の再帰的な探索まで対応しており、AIエージェントがプロジェクト全体を把握しながらタスクを実行することを支援します。

特徴

  • パス・ディレクトリ対応: ファイル単体だけでなく、ディレクトリを指定した再帰的な情報の取得が可能です。
  • 透過的なデータアクセス: 対象ファイルがNeovimのバッファとして開かれている場合はバッファの最新内容(未保存含む)を、そうでなければ直接ディスク上のファイルを読み書きします。
  • AIエージェント最適化: ai-brain 形式の skills/ 構成を採用しており、AIエージェントが自律的にコマンドを選択できるよう設計されています。
  • 軽量・高速: Rust製バイナリ。外部ランタイム(Node.jsやPython等)に依存せず、Msgpack-RPC経由でNeovimと高速に通信します。

セットアップ

ビルド

cargo build --release

接続設定

Neovimとの通信にはソケットパスが必要です。以下の優先順位で参照されます。

  1. --server (-s) 引数: vim.v.servername を直接渡す場合に使用します。AIエージェントにコンテキストとしてソケットパスを渡している場合に有用です。
  2. NVIM_LISTEN_ADDRESS 環境変数
  3. NVIM 環境変数(Neovim内から実行している場合に自動設定されるパス)

コマンド構成

AIエージェントは以下のサブコマンドを組み合わせて使用します。

1. コンテンツ操作 (read, write)

  • read <path>: 指定したパスの情報を取得します。
    • ファイルの場合:その内容を返します。
    • ディレクトリの場合:配下の全ファイルを再帰的にスキャンして返します。
  • write <path> [--start n] [--end m] <lines...>: ファイルの書き込み・置換を行います。
    • 行指定なし:ファイル全体を上書きします。
    • --start, --end 指定:指定範囲の行をピンポイントで置換します(Surgical Edit)。

2. エディタ・システム情報

  • diagnostics [path]: LSPの診断結果(エラー・警告)を取得します。パス指定で範囲を絞り込めます。
  • cursor: Neovim上の現在のカーソル位置、ファイルパス、周囲のコードを取得します。
  • shell "<cmd>": 任意のシェルコマンドを実行します。
  • diff: カレントプロジェクトのGit差分を取得します。
  • exec "<cmd>": NeovimのExコマンドを直接実行します。

3. バッファ・リスト操作 (open, close, qf-add, qf-remove)

  • open <files...>: 指定した複数のファイルをNeovimで開きます。
  • close <files...>: 指定した複数のファイルをバッファ名から検索して閉じます。
  • qf-add <files...>: 指定した複数のファイルをQuickfixリストに追加します。
  • qf-remove <files...>: 指定した複数のファイルをQuickfixリストから削除します。

AI Skills

本プロジェクトは skills/nvim-cli/ ディレクトリに、AIエージェント向けの指示書(SKILL.md)とリファレンスを同梱しています。 AIエージェントはこれらを読み取ることで、プロジェクト構造の把握からコードの修正、エラーの解決までを自律的に遂行できるようになります。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages