🤖

Aider:ターミナルで動作するAIペアプログラミングツール

に公開

1. はじめに ✨

近年、AI技術の発展により、開発現場でのAIツールの活用が一般的になってきています。その中でも注目を集めているのが、ターミナル上でAIとペアプログラミングができる「Aider」です。

このツールの革新的な点は、gitをcloneしてくると、ソースコードを読ませて「これにこういう機能を追加しろ」と言うと勝手に追加してgit commitしてしまうことです。良いタイミングで/git push origin mainとやれば、pushまでやってくれます。

本記事は、ターミナルでAIとペアプログラミングができる「AIder」を試す のスクラップを元にまとめています。

2. Aiderの特徴 🔍

Aiderの最大の特徴は、ユーザー(開発者)が完全に受け身になれることです。

これまでのAI支援開発ツールは、あくまでも「支援」にとどまっていました。作りたいものをどう作るかイメージするのはプログラマで、AIはそれをサポートする役でした。

しかしAiderによる開発は、支援ではありません。むしろ開発請負ツールと言えます。

主な特徴:

  • GitリポジトリのコードをAIが直接編集可能
  • 変更を自動的にGitコミット
  • GPT-4oとClaude 3.5 Sonnetで最適に動作
  • 多言語対応(Python、JavaScript、TypeScript、PHP、HTMLなど)
  • チャットベースのインターフェース

3. 基本機能 🚀

コマンド一覧

  • /help - ヘルプの表示
  • /add - ファイルをチャットに追加して、そのファイルを編集出来るようにする
  • /ask - コードベースについて質問(編集しない)
  • /chat-mode - チャットモードの切り替え
  • /clear - チャット履歴の消去
  • /commit - チャット外での編集をコミット
  • /diff - 最後のコミットのdiff表示
  • /drop - ファイルをチャットから削除
  • /exit - アプリケーションの終了
  • /git - gitコマンドの実行
  • /aider - aiderに関する質問をする
  • /lint - コードのlintと修正
  • /ls - ファイル一覧の表示
  • /model - LLMの切り替え
  • /models - 利用可能なモデルの検索
  • /quit - アプリケーションの終了
  • /run - シェルコマンドを実行し、オプションで出力をチャットに追加する (エイリアス: !)
  • /test - テストの実行
  • /tokens - トークン使用量の表示
  • /undo - 最後のコミットの取り消し
  • /voice - 音声入力の利用
  • /web - Webページの内容をseleniumを使って取得

4. インストールと設定 📥

  1. Pythonパッケージとしてインストール:
pip install aider-chat
  1. OpenAI APIキーの設定:
export OPENAI_API_KEY=XXXXXXXXX
  1. 基本的な起動:
aider
  1. GUIモードでの起動:
aider --gui

5. 実践的な使用例 💻

基本的な使い方

  1. ファイルの追加:
/add filename.py
  1. ファイル一覧の確認:
/ls
  1. コードの修正依頼:
このファイルについて説明して
説明を日本語に書き換えて

6. メリットとデメリット 📊

メリット

  • 開発者が受け身で開発を進められる
  • Gitとの緊密な統合
  • 複数ファイルの同時編集が可能
  • CLIとGUIの両対応
  • テストとデバッグ支援機能

デメリット

  • APIコストの発生
  • AIに完全依存できない
  • ローカルLLMでの動作は不安定
  • CUI操作の習熟が必要

7. おすすめの使用シーン 🌟

  1. VSCode or Cursorのターミナルと組み合わせた開発
  2. devcontainer環境での利用
  3. テストコードの自動生成・メンテナンス
  4. ドキュメント更新の自動化

8. まとめ 📝

Aiderは、従来の「支援」ツールの枠を超えた、真のAIペアプログラミングツールです。特にGitとの統合や、複数ファイルの同時編集能力は、実践的な開発現場での活用が期待できます。

VSCodeのターミナル内で使用するのが現実的で、devcontainerの設定とセットで用意しておくと効果的です。コードも見たい場合は、この方法が最適でしょう。

詳細なドキュメントは以下で確認できます:

Discussion