Beta
vibing.nvim - NeovimフレンドリーなClaudeCodeプラグインのアイコン

vibing.nvim - NeovimフレンドリーなClaudeCodeプラグイン

Neovimでの操作を妨げずにClaudeCodeを使うためのプラグインを作成しました

Visit Product
プロダクトの感想・意見はこのエリアに表示されます
アイキャッチ画像

Neovimユーザーとして感じていた不満

Neovimユーザーとして、AI補完ツールをどう統合するかは長年の課題でした。
VSCodeやCursorなどのIDEでは、Claude AIとシームレスに対話できる環境が整っている一方、Neovimではその体験がまだ発展途上でした。

最初に試したのは、claudecode.nvimclaude-code.nvimといったプラグインです。
これらはターミナルからClaude Code CLIを叩くだけの仕組みで、キーバインドがバッティングしたり、バッファとしてターミナルが取られ続けたりと、
Neovimの操作感を損なう部分が気になりました。

次にcodecompanion.nvimを試しました。
こちらはバッファでチャットを開いてくれて、inline指示も提供してくれる優れたプラグインでした。
しかし、せっかくバッファでやり取りできるなら会話履歴も保存したいと思いましたし、
Claude Codeを使いたいだけなのにAPIトークンを渡さなければならない点も少し煩わしく感じました。

もちろん、設定方法があったのかもしれませんが、パッと分からなかったので、「どうせなら自分好みに作ろう」と決意しました。

vibing.nvim

こうして生まれたのがvibing.nvimです。
名前の由来は「vibeなNeovim」を目指したく、Neovim内でClaudeと自然に対話できる環境を作りたいという思いを込めました。

vibing.nvimは、Claude CodeユーザーがNeovim内で快適に開発できることを第一に考えたプラグインです。
ターミナルとの移動やファイルパスの指示がやりにくいという問題を、
NeovimフレンドリーなAPIで解決し、VSCodeなどのIDEと同等かそれ以上のAI開発体験を実現します。

主な特徴

vibing.nvimは、以下の3つの価値を提供します

  • セッション永続化: チャット履歴をMarkdown形式で保存し、いつでも過去の会話を再開できます。
  • Neovim完全統合: バッファベースのチャットUIで、通常のファイル編集と同じ感覚で操作できます。
  • Neovimを操作可能 MCP統合により、ClaudeがNeovim APIを直接操作し、バッファの読み書きやLSP機能の活用が可能になります。

こんな方におすすめ

vibing.nvimは、特に以下のような方に最適です:

  • NeovimユーザーでAI補完を求める方: ターミナルを切り替えることなく、Neovim内でClaude AIと自然に対話したい方。エディタとAIをシームレスに統合したワークフローを実現できます。
  • セッション管理を重視する方: チャット履歴を保存・再開でき、プロジェクトごとに整理したい方。過去の会話を資産として蓄積し、チーム開発でのナレッジ共有にも活用できます。

主要機能の詳細

セッション永続化 - 会話を資産として残す

チャットはvibingファイルとして保存できる

vibing.nvimでは、すべてのチャットがYAMLフロントマター付きのMarkdownファイルとして保存されます。
セッションID、実行モード(code/plan/explore)、使用モデル(sonnet/opus/haiku)、権限設定などのメタデータが完全に記録されるため、
ファイルを開くだけで過去の会話をそのまま復元できます。

保存場所は柔軟に設定可能で、プロジェクトルートの.vibing/chat/、ユーザーホームディレクトリの~/.local/share/nvim/vibing/chats/、または任意のカスタムパスを選択できます。
プロジェクトごとにチャット履歴を管理したい場合はプロジェクト保存、個人的なナレッジベースとして蓄積したい場合はユーザー保存を選ぶなど、用途に応じた使い分けが可能です。
ClaudeCodeを生で使うよりも、過去のやり取りを要約させたり課題点を洗い出させたりといった作業が用意になります。

Chat形式とInline形式 - 2つの対話スタイル

Chat形式とInline形式をサポート
Chat形式とInline形式をサポート

vibing.nvimは、用途に応じて2つの対話形式を提供します。

Chat形式では、バッファ上でClaudeと自由に対話できます。
スラッシュコマンド(/contextでファイル追加、/saveで保存、/modeでモード変更、/permissionsで権限設定など)を使って、コンテキスト管理や設定変更を直感的に実行できます。
長い議論や複雑な設計の相談に最適です。
もちろん、カスタムスラッシュコマンドも利用可能で、pickerも提供しています。

Inline形式では、ビジュアル選択したコードに対して素早くアクションを実行できます。
fix(バグ修正)、feat(機能実装)、explain(コード説明)、refactor(リファクタリング)、test(テスト生成)などの定型アクションに加え、
"この関数をTypeScriptに変換"のような自然言語での直接指示も可能です。
アクションメニューと追加指示の入力を対話的に選択でき、キーボードから手を離すことなくスムーズに操作できます。

チャットはvibingファイルとして保存できる
チャットはvibingファイルとして保存できる

Neovim LSP統合 - AIがコードを深く理解する

neovim lspも使ってくれる
neovim lspも使ってくれる

vibing.nvimは、MCP(Model Context Protocol)を通じてNeovimと直接通信します。
Claudeはmcp__vibing-nvim__nvim_lsp_*ツールを使って、
実行中のNeovim LSPサーバーから定義ジャンプ、参照検索、ホバー情報、診断(エラー・警告)、シンボル一覧などの情報を取得できます。
最近はClaudeCode自身がLSP対応されましたが、Neovimユーザーなら自分が設定したLSPを使いたいですよね。

特に強力なのがバックグラウンドLSP解析です。
チャット中でもウィンドウを切り替えることなく、他のファイルをLSP解析できます。
nvim_load_bufferツールで非表示のままファイルをバッファにロードし、そのバッファ番号を指定してLSP操作を実行することで、現在の作業を中断せずに必要な情報を取得できます。
例えば、「このモジュールを呼び出している箇所をすべて教えて」と聞くと、Claudeがバックグラウンドで参照検索を実行し、結果を整理して提示してくれます。

ウィンドウ操作とレイアウト制御 - AIにエディタを操作させる

neovim apiが使えるので幅操作も余裕
neovim apiが使えるので幅操作も余裕

Claudeはmcp__vibing-nvim__nvim_*ツールを使って、Neovim自体を自由に操作できます。
ウィンドウサイズの変更(nvim_set_window_size)、フォーカスの移動(nvim_focus_window)、バッファの切り替え(nvim_win_set_buf)、ファイルのオープン(nvim_win_open_file)など、通常:resize:wincmdで行う操作をすべてAI経由で実行できます。

例えば、「左側にファイルツリー、右側を上下2分割してソースとテストを表示して」と指示すると、Claudeが適切なウィンドウレイアウトを自動構築してくれます。
複雑なマルチペインレイアウトを手動で調整する手間が省け、開発に集中できます。
僕もコマンドやAPIを覚えきれてないので、地味に重宝しています。

Diff PreviewとAccept/Reject UI - 変更を確認してから反映

Gitリポジトリ内でインラインアクションを実行すると、Telescope風の3ペインUIで変更内容をプレビューできます。
Filesペインには変更されたファイルの一覧が表示され、j/kキーで移動、Enterキーで選択できます。
Diffペインには、Deltaと統合された見やすい差分が表示され、どの部分が変更されたかを一目で確認できます。
Responseペイン(インラインモードのみ)には、AIからの応答メッセージが表示されます。

aキーを押すとすべての変更を承認して反映し、rキーを押すとすべての変更を拒否してリバートします。

チャットモードでも、gpキーを押すことで、Claude AIが修正したすべてのファイルをまとめてプレビューできます。
複数ファイルにまたがる変更を一括で確認し、Accept/Rejectを判断できるため、大規模なリファクタリングでも安心して作業を進められます。

他ツールとの比較

なぜvibing.nvimを選ぶのか?

vibing.nvimは、既存のNeovim向けClaude統合プラグインと比較して、以下の3つの点で明確な差別化を実現しています。

1. セッション永続化とメタデータ管理

vibing.nvimでは、すべてのチャット履歴がYAMLフロントマター付きのMarkdownファイルとして保存されます。
セッションID、実行モード、使用モデル、権限設定がすべて記録されるため、ファイルを開くだけで過去の会話を完全に復元できます。
プロジェクトごと、ユーザーごとに保存場所を選べるため、チーム開発でのナレッジ共有や個人的な学習記録として活用できます。

一方、claudecode.nvim / claude-code.nvimは、ターミナルバッファでClaude CLIを実行するだけのため、セッション保存機能がありません。
生のClaudeCodeの機能がそのまま乗っかっているだけなので、/resume を実行すれば遡れますが、扱いやすさはバッファに劣ると思います。

codecompanion.nvimはバッファベースのチャットを提供しますが、セッション永続化の仕組みは明確ではありません。
vibing.nvimのような明示的なメタデータ管理や、プロジェクト単位での履歴管理機能は提供されていません。

2. Neovim APIとLSPの完全統合

vibing.nvimは、MCP(Model Context Protocol)を通じてNeovim RPC server(非同期TCP、libuv)と通信します。
ClaudeはNeovim APIを直接呼び出し、バッファの読み書き、LSP操作(定義・参照・ホバー・診断など)、ウィンドウ制御をすべてネイティブに実行できます。

claudecode.nvim / claude-code.nvimは、ターミナルでClaude CLIを呼び出すだけです。
Neovimと直接通信する仕組みがなく、ファイル編集は外部プロセス経由で間接的に行われます。
LSP統合やウィンドウ制御といった高度な機能は提供されていません。

codecompanion.nvimは、ClaudeCode本体以外のLSP統合は未対応で、コード理解の深さという点ではvibing.nvimに劣ります。

どのツールを選ぶべきか?

各ツールには、それぞれ適した用途があります。以下を参考に、自分のワークフローに最適なプラグインを選んでください。

  • vibing.nvimがおすすめ: Neovim内でClaude Codeをフル活用したい方。セッション管理、LSP統合、権限制御が必要で、チーム開発でナレッジを共有したい方に最適です。長期プロジェクトでAI会話を資産として蓄積したい場合にも向いています。
  • claudecode.nvim / claude-code.nvimがおすすめ: とにかく軽量に、ターミナルでClaudeを呼ぶだけで十分な方。セッション管理や高度な統合機能は不要で、シンプルな使い勝手を優先する場合に適しています。
  • codecompanion.nvimがおすすめ: Claude以外のプロバイダー(OpenAI、Geminiなど)も併用したい方。複数のAIモデルを切り替えながら開発したい場合や、APIトークンを直接管理することに抵抗がない場合に向いています。

よくある質問

vibing.nvimの導入にはどのくらい時間がかかりますか?

基本的な設定であれば約5-10分で完了します。
lazy.nvimを使っている場合、build = "./build.sh"でMCPサーバーが自動ビルドされ、userスコープのMCPとして登録されます。
MCP統合を有効化する場合は、設定にmcp.enabled = trueを追加するだけです。
詳細なインストール手順はREADMEのインストールセクションを参照してください。

Neovim以外でも使えますか?

vibing.nvimはNeovim専用プラグインです。VSCodeやVim、その他のエディタでは動作しません。
ただし、MCPサーバーはスタンドアロンで動作可能なため、Claude Code CLIから~/.claude.json経由でNeovim制御機能を利用することは可能です。

サポート体制はどのようになっていますか?

vibing.nvimはオープンソースプロジェクトで、GitHubのIssue/PRで対応しています。
バグ報告や機能リクエストはGitHub Issuesへ、
質問やディスカッションはGitHub Discussionsをご利用ください。
コミュニティベースのサポートですが、できる限り迅速に対応します。

チャットファイルの保存場所をプロジェクトごとに変えられますか?

はい、save_location_type設定で制御できます。
"project"を選ぶとプロジェクトルートの.vibing/chat/に保存され、
"user"を選ぶと~/.local/share/nvim/vibing/chats/に保存されます。
"custom"を選べば、save_dirで指定した任意のパスに保存できます。
プロジェクトごとにチャット履歴を管理したい場合は"project"、個人的なナレッジベースとして一元管理したい場合は"user"を選ぶと便利です。

今後の予定

vibing.nvimは、Neovim内でのAI開発体験をさらに向上させるため、以下の機能を計画しています。

DAP(Debug Adapter Protocol)統合

現在、LSPを通じてコードの静的解析情報を取得できますが、次のステップとしてデバッグ機能の統合を目指しています。
DAPを通じてClaudeがブレークポイントの設定、変数の監視、スタックトレースの解析を実行できるようになれば、
「このエラーが発生した時の変数の状態を確認して原因を教えて」といった高度なデバッグ支援が可能になります。
実行時の動的な情報まで含めてAIが理解できることで、バグ解決の精度が大幅に向上するでしょう。

Diff UI向上

現在のDiff PreviewはTelescope風の3ペインUIを提供していますが、さらなる改善の余地があります。
codecompanion.nvimでは洗練された差分表示UIが実装されており、視認性の高さが印象的です。
vibing.nvimでも、現在のGit標準出力ベースの表示から、より見やすく直感的な差分UIへと進化させたいと考えています。

AI機能拡充

Claude以外のAIモデルとの統合も視野に入れています。
OpenAI Codex、Google Geminiなどを切り替えて使えるようになれば、タスクごとに最適なモデルを選択できます。
また、ローカルLLM(Ollama、llama.cppなど)との統合も検討中です。
オフライン環境やプライバシー要件が厳しいプロジェクトでも、vibing.nvimの快適な対話体験を享受できるようになります。
さらに、マルチモデル対話(複数AIに同時に質問して結果を比較)や、専門特化モデルの活用(コードレビュー特化、セキュリティ特化など)も実現したいと考えています。

おわりに

ClaudeCodeを利用できるようにするNeovimプラグインは数あれど、Neovimフレンドリーに統合されているものは少ないと思います。
vibing.nvimを是非試してみていただきたいです!導入とスターをお願い致します!

Explore More
関連記事はありません。