dlants/magenta.nvim
A tool-use-focused LLM plugin for neovim.
magenta.nvim – Neovim 内でのAI強化コーディング
何であるか – Neovim プラグインで、直接エディタから Anthropic の LLM(Claude)と会話できます。このモデルを エージェント として扱い、コマンドを送信し、完全なプロンプトを確認し、出力を編集し、その編集内容をプラグインがモデルにフィードバックします。目的は、馴染み深い Vim ワークフロー内で「開発者 ↔ AI」のスムーズなループを実現することです。
主なアイデア
- 透過的なエージェントインタラクション – すべてのプロンプト、ツール呼び出し、トークン使用量が可視化されます。変更内容を適用する前に編集可能です。
- Edit Description Language (EDL) – 挿入、置換、削除を記述するための小さなDSLで、生テキストのdiffよりもはるかにトークン効率が良いです。
- OSレベルのサンドボックス – Anthropic の
sandbox-runtime(macOSではSeatbelt、Linuxではbubblewrap)を使用して、ファイルシステムやネットワークアクセス権限を設定可能な状態でツールコマンドを実行し、誤った資格情報の漏洩を低減します。 - Dockerサブエージェント – Dockerコンテナ内で隔離されたエージェントを起動し、並列かつ自律的な作業(例:別ブランチでの重いLintやコード生成)を可能にします。
- スレッドごとのバッファ – 各会話スレッドが独自のNeovimバッファに保持され、通常のファイルのようにナビゲート、ジャンプリスト、スレッド選択が可能です。
- 宣言型UI – React風のVDOMシステムにより、バッファ内に豊富なUI(折りたたみ可能セクション、承認ダイアログ、チャイムなど)をレンダリングします。
- カスタマイズ可能なエージェント – システムプロンプトは
~/.magenta/agents/(または.magenta/agents/)下のプレーンなMarkdownファイルで管理され、Lua/TSコードを変更せずに新しい個性を作成できます。 - スマートキャッシュと自動圧縮 – インクリメンタルな要約により、トークン数を正確にカウントし、必要に応じて履歴を圧縮することで、長いスレッドでもコストを抑えます。
使い方
- プラグインをインストール(
lazy.nvimまたは Neovim の組み込みパッケージマネージャー)し、npm run buildを実行してdist/magenta.mjsを生成します。 - Anthropic モデル(例:
claude-opus-4-8)を指す プロファイル を設定します。READMEには最小限のLuasetupコールの例が示されています。 - チャットサイドバー(
<leader>mt)を開き、@で始まるコマンドを入力します(例:@file: src/main.rsでファイルをコンテキストに追加、@forkでスレッドを分岐、@fastで安価なモデルを使用)。 - モデルの返答はバッファに表示されます。提案された変更を編集でき、その編集内容のdiffは次のターンでモデルに送信されます。
- オプションツール:Dockerサブエージェント、サンドボックス制御されたシェルコマンド、PDF読み取り、Web検索などは、
@コマンドまたは組み込みツールメニューから呼び出されます。
インストールスニペット
-- lazy.nvim 例
return {
"dlants/magenta.nvim",
lazy = false,
build = "npm run build",
opts = {},
}
またはREADMEに記載の通り、Neovimのネイティブ pack マネージャーを使用。
設定のハイライト
- プロファイル – モデル、プロバイダー、APIキーの環境変数、およびオプションの高速/思考用モデルを定義。
- プロジェクト設定 – リポジトリごとに
.magenta/options.jsonを設け、プロファイルの上書き、コンテキストファイルの自動追加、スキルディレクトリの設定が可能。 - スキル – プロジェクト固有の知識をエージェントに注入するMarkdownファイル。
- サンドボックスポリシー – エージェントがアクセス可能なファイルシステムパスやネットワークホストを細かく調整;正規表現パターンで承認プロンプトをトリガー(デフォルトでは
git pushをブロック)。 - MCPサーバー – 追加機能を提供するオプションのリモートツールサーバー。
なぜ重要か
- AI支援ワークフロー全体をNeovim内に保ち、外部CLIやWebUIへの切り替えを回避。
- エディタ内AIプラグインの中では稀な、モデルの行動に対する細かい制御を提供。
- EDL DSLによりトークン使用量を削減し、大規模な変更に高価なClaudeモデルをより手頃に利用可能に。
- 透過的なUIとテスト駆動アーキテクチャにより、貢献者にとって使いやすく親しみやすい。
状態 – 活発にメンテナンス中(2026年4月まで更新履歴あり)。主にAnthropicをサポート;他のプロバイダーは一時的に非対応。
さらに読む – Neovim内で :help magenta.nvim、リポジトリの doc/ ファイル、READMEの上部にリンクされた著者のブログ記事。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト