Zenn
💚

Vimmer にお勧めしたい AI エージェント「Aider」

2025/03/19に公開
30

現在、AI ブームが巻き起こり、プログラミングのやり方も大きく変わってきています。私も AI を活用して仕事を効率化したく、 Cursor や Cline を試してみたことはあるのですが、10年以上使っている Vim (Neovim) を乗り換えられず波に乗り遅れていました。そんな中、「Aider」という AI エージェントを導入してめちゃ感動したので、紹介したいと思います。

https://github.com/Aider-AI/aider

初期の感想↓

https://x.com/miyakojima_dev/status/1894462311483805758

⚠️ ご注意 ⚠️

  • 本記事は Aider の使い勝手の良さを共有するものであり、特定のエディタを貶めたり、宗教戦争を仕掛けるつもりはありません。
  • Aider はコードやチャット履歴を収集することはないと 表明 していますが、本記事はそれを保証するものではありません。
  • 本記事は個人の見解であり、所属する組織を代表するものではありません。

はじめに

数年前、登場したての GitHub Copilot を使っていたことがありますが、正直なところ体験はあまり良いものではありませんでした。確かにタブ補完の機能は便利でしたが、微妙にちらついたり、補完の表示を待つことで逆に作業効率が下がったりすることがあり、私には合いませんでした。

そのため、しばらく AI コーディングツールには距離を置いていましたが、近年の AI エージェントの進化を見て、さすがに無視できなくなり導入を検討しました。

前提とする開発環境ですが、私は Arch Linux のデスクトップ環境を使用し、ターミナルには Alacritty、エディターには Neovim を採用しています。ウィンドウマネージャーはタイル型の Sway を使用し、ウィンドウの切り替えや操作はほぼキーボードで行っています。Git のコミットやファイルの移動、定型タスクの処理もすべてコマンドで完結し、基本的にターミナルから出ることなく作業を進めたいと考えています。

AI エージェントとテキストエディタ

近年の AI コーディングツールは、従来のコード補完機能を超え、人間の抽象的な指示に基づいて AI が自律的に作業を進める「AI エージェント」という形へ進化しています。更に、テキストエディタと高度に統合され、最小限のコンテキストの共有で AI に指示を出せるようになってきています。

例えば、ChatGPT のようなWebの対話型 AI を使ってコードを生成する際、まずエディタから関連するコードをコピペしてコンテキストを ChatGPT に与えてコードを生成し、チャット UI でコードの差分を取得し、エディターに貼り付け、保存し、テストを実行する……といった手順が必要になります。しかし、AI エージェントが該当ファイルを探し、直接編集してくれるようになれば、開発者は指示をするだけで済み、作業効率が大幅に向上します。

さらに、必要なファイルを自動生成したり、シェルコマンドを(確認付きで)実行してくれたりするため、開発がよりスムーズになります。

Cursor の登場

AI 搭載エディタの先駆けとして登場したのが、 Cursor です。高度なタブ補完やリライトにとどまらず、 Composer Agent モードはエディターと AI エージェントを統合し、AI が主体的にコードを書くという体験を作り出しました。

その後、Cline や Windsurf など、Cursor と同様 Visual Studio Code (以下 VS Code) をベースとして AI と統合されたツールが登場し、世間を賑わせているのはご周知のとおりです。

Vimmerの課題

先に挙げたエディタは全て VS Code ベースです。「(みんな使ってる)VS Code ベースだから既存の操作性を維持できるよ」というのがウリの一つになっているわけです。
しかし、VS Code に移行できない事情を持つ開発者も多くいます。Cursor や Cline を使うことで AI の恩恵を最大限に受けられることは分かっていても、重度の Neovim 中毒者にとっては馴染みのある環境を離れることが難しいという課題があります。もちろん Emacs, Helix, 秀丸エディタ等でも同様です。

私自身も Neovim を使っており、AI の進化についていきたい一方で、エディターを変えることには強い抵抗がありました。そこで、 Neovim の LLM 拡張を漁り始めました。

Neovim で Cursor みたいなことがしたい...が

Neovim で Cursor みたいなことをする試みはすでに行われており、例えば下記のようなプロジェクトが存在しています。

上記は全て試してみたものの、少なくとも私の環境ではまともに動きませんでした。アイデア自体は素晴らしいのですが、 Cursor 等の AI 前提のエディターと比べると、やはり操作性に難があったり、細かいバグが取りきれていないという結論になってしまいました。

Aider

そんな中、私は Aider というツールに出会いました。

Aider は、エディターと AI を統合するのではなく、ターミナル内で独立して動作するツールです。そのため、どのエディターを使用していても導入することが可能です。

特に魅力的なのは、既存のエディター設定を変更する必要がない点です。例えば、tmux のペインを左右に分割し、一方に Aider を起動することで、Cursor や Cline に近い体験を実現できます。

動き方のイメージは以下の動画をご覧ください。

https://www.youtube.com/watch?v=fPFm9N0xYos

公式サイト の動画の方がわかりやすいかもです。

このように、ターミナル上の対話型UIで、開発者は指示を出します。必要に応じて、ファイルを追加・編集したり、シェルコマンドの実行を提案してくれます。ちなみに aider.nvim 等のプラグインもあるようですが、個人的にはターミナルで Neovim とは独立して動いてほしいので使っていません。

Neovim と併用できるのが私にとって一番のメリットですが、それ以外にも色々あるので紹介いたします。「それ、〇〇でもできるよ」というのもあると思いますがご了承ください。

単一障害点がない

Aider は OpenAI や Claude の API に直接接続するため、特定のサービスがダウンしても他のサービスに切り替えることが可能です。

一方、Cursor は独自のサーバーを介して LLM と通信するため、Cursor のサーバーがダウンすると(理論上は)利用できなくなります。また、Cursor は使用量が増えると通信速度が制限されることがあり、LLM の API に直接課金する方が安定して使える点も Aider の利点ではあります。

ただし、裏を返せば Cursor 経由だからこその料金体系や安定性、キャッシュを利用した速度と体験の良さもあるはずなので、その仕組みが悪いわけでは全くないないです。

コスト・時間効率が良い

Aider は完全な自動化ではなく、適切な指示を与える必要がありますが、その分アウトプットが安定しており、高速に処理が進んでいる感じがします。 Cursor や Cline の方が抽象的な指示から何度も反復思考し、自律的に進めてくれる(時に暴走するらしい)ので、一長一短ですね。 Aider でも同じようなことはできそうですが、まだそこまで使いこなせていないです。

また、 Aider は行うタスクに応じてモデルを自動的に選択してくれます。具体的には、通常モデルと Weak モデルを指定でき、コードを書くのは通常モデルですがコミットメッセージの生成には Weak モデルが使われます。比較的コストが抑えられるのは、こういったチューニングがされているというのもあると思われます。

柔軟な設定

設定項目が豊富で、細かいところに手が届きます。私は以下を設定しています。

特にコーディング規約に関しては設定するのとしないのでは精度が全然違いました。この辺は他のエディタの知識も大いに参考にできそう。

オープンソースである

Aider はオープンソース(Apache-2.0 license)であり、透明性が確保されています。 ただし Aider LLC があるので、今後どこかで商用ライセンスを出してくると思いますが、とりあえず現状のソースコードは全て確認できます。

比較すると、 Cursor はクローズドソースであるため、内部の処理が不透明であり、突然の価格変更などのリスクがあるのかなと思います。違ったらごめんなさい。
Cline や Roo Code は OSS かつ Apache-2.0 license なので、この点に関しては Aider とほぼ変わらないかと思います。これも違ったらごめんなさい。

他の AI エージェントとの比較

エディタを移行せずに使えるツールは他にもあるので紹介します。

Claude Code

私が Aider を使い始めて数週間後、Anthropic が「Claude Code」という Aider に似たツールを発表しました。もちろん試しましたが、現時点では Aider の方が安定しており、使いやすいと感じています。Claude Code は機能面では十分ですが、Cursor や Cline のように全自動で動くため、トークン消費が激しくコストがかかり、時間もかかる点が課題だと思っています。Claude の API が単一障害点になってしまうというのもあります。

ただし、その分自動化の度合いが高いため、抽象的に指示を出してあとは丸投げ...みたいな処理にはたまに使ってます。クローズドソースですが、 Anthropic が出しているという安心感もあり、今後の改善に大いに期待しています。

Devin

Devin (the Developer) は革新的なコンセプトを持つ AI エージェントで、 Slack 経由で指示を出すとプルリクを作成してくれるという近未来的な体験ができます。が、実際に試してみたところ、現在は処理速度が遅く、価格も比較的高いため、個人的にはローカルで動作するツールの方が使いやすいと思いました。日常的なコーディングというより、エディタ開くのすら面倒なちょっとしたタスクや、非エンジニアが指示を出すのには向いてそうです。今後の改善を引き続き注視していきたいです。

まとめ

ひたすらAider愛を語る記事になってしまいました。エディタをどうしても変えたくないユーザーにとっては、有力な選択肢だと思いますので、是非試してみていただけたら幸いです。

今後も AI コーディングツールの進化を注視しながら、より効率的な開発環境を模索していきたいと思います。

30

Discussion

ログインするとコメントできます