1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

herdrでnvimから隣のAIエージェントにファイル参照を送れるプラグインを作った

1
Posted at

やりたかったこと

herdr でNvimとClaude Codeを並べて作業しているとき、「このファイルのこの部分見て」をNvimから直接エージェントのプロンプトに送りたかった。

毎回ファイルパスをコピーして貼り付けて...とやるのが地味に面倒だったので、Neovimプラグインとして作ってみた。

作ったもの

同一herdrワークスペース内のAIエージェントに対して、Nvimからファイル参照やプロンプトを送信するプラグイン。

できること

コマンド 動作
:HerdrSendSelection 選択範囲を @path#L1-5 としてプロンプト欄に入力
:HerdrSendBuffer 現在のファイルを @path としてプロンプト欄に入力
:HerdrSendPrompt 自由入力したテキストをそのままサブミット

Selection/Bufferはプロンプト欄にテキストを入れるだけ(サブミットしない)ので、追加で指示を書いてから送信できる。

エージェントが同一ワークスペースにいなければ、自動でペインを分割してエージェントを起動し、ready後に送信する。

仕組み

herdr CLIを内部で呼んでいるだけ。

  1. 環境変数 $HERDR_WORKSPACE_ID で自分のワークスペースを特定
  2. herdr agent list で同一ワークスペース内のエージェントを取得(自分自身は除外)
  3. エージェントが0件なら herdr pane split + herdr agent start で自動起動し、ready待機
  4. エージェントが1つなら自動、複数なら vim.ui.select で選択
  5. herdr pane send-text でプロンプト欄にテキスト入力 or herdr agent prompt でサブミット

インストール

lazy.nvim の例:

{
  "rytkmt/herdr-send.nvim",
  config = function()
    require("herdr-send").setup({
      agent_cmd = "claude",       -- 起動するエージェント
      split_direction = "right",  -- 分割方向: "right" or "down"
      split_ratio = 0.5,          -- 分割比率
    })

    vim.keymap.set("v", "<leader>hs", "<cmd>HerdrSendSelection<cr>")
    vim.keymap.set("n", "<leader>hb", "<cmd>HerdrSendBuffer<cr>")
    vim.keymap.set("n", "<leader>hp", "<cmd>HerdrSendPrompt<cr>")
  end,
}

対応エージェント

@path ファイル参照構文をサポートしているのは以下のエージェント:

  • Claude Code
  • Gemini CLI

herdr対応エージェント(Codex, Copilot, Devin, Kimi 等)にもテキスト送信自体は動作するが、@ 記法が認識されるかは各エージェントの仕様次第。

要件

  • Neovim >= 0.10
  • herdr >= 0.7.0
  • Nvimがherdrペイン内で動いていること

所感

herdr CLIが agent list でJSONを返してくれるし pane send-text でサブミットなしのテキスト入力ができるので、実装自体は数十行で済んだ。エージェントがいなければ自動起動する仕組みも pane splitagent startagent wait の3ステップで実現できた。Nvim + AIエージェントの並行作業が楽になった。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?