ターミナルにコマンドを1つ打つと、AIがgitリポジトリを読み、ファイルを直接編集し、コミットまで作る。Aider はその体験を2023年から提供してきたPython製のAIペアプログラミングツールで、GitHubスターは 48,794(2026-09-07 時点)に達している。日本語の解説記事も豊富だ。

ところが、それらの記事がどれも触れていない事実がある。Aiderの既定ブランチ main は2026-05-22を最後に動いていない。 本記事執筆時点で108日、pip配布に至っては207日前の版が最新のままだ。

Aiderの現況ダッシュボード。mainの最終コミットから108日、PyPI最新版0.86.2から207日、GitHubリリースv0.86.0から394日が経過し、未リリースのHISTORY項目が11件積まれていることを示す図
本記事の実測(2026-09-07 JST)。GitHub API・PyPI JSON APIから取得した実値。★48,794・Apache-2.0・アーカイブはされていない

30秒でわかる Aider の現在地

実体:ターミナルで動くAIペアプログラミングCLI。gitリポジトリを読み、ファイルを直接編集し、自動コミットまで行うPython製OSS(Apache-2.0・★48,794)
止まっている場所:main の最終コミットは 2026-05-22(108日前)。PyPIの aider-chat 最新は 0.86.2 / 2026-02-12(207日前)。GitHub Releasesは v0.86.0 / 2025-08-09(394日前)で止まっている
止まっていない場所:アーカイブされておらず、Issueは 2026-09-05 にも新規に立っている(オープンIssue 1,368件・オープンPR 485件)
インストールの壁aider-chat 0.86.2 は requires_python = "<3.13,>=3.10"Python 3.13 / 3.14 では入らない(実測で両方とも依存ビルドに失敗)
実測した劣化:配布版のモデル表に無い新しいモデルを指定すると、編集形式が diff から whole(ファイル全文の書き直し) に落ちる

この記事のポイント

・「Aiderは終わったのか」を宣言ではなく配布物で判定する。mainの停止・PyPIの停止・Releasesの停止は、それぞれ止まった時期が違う
・最大の実害は機能ではなくインストール。2026年に普通に入る Python 3.13/3.14 では pip install aider-chat が通らない
・2番目の実害はモデル表の陳腐化。表に載っていないモデルはブロックされないが、編集形式が静かに whole へ落ちてトークン消費が跳ね上がる

AIコーディングツール全体の選択肢と使い分けは Vibe Codingとは?AIコーディングの始め方・ツール比較・実践ワークフロー2026 にまとめてある。本記事はそのうちAider1本を、実際にインストールして動かした結果で掘り下げる。

検証環境は macOS 14(Darwin 23.5.0)/ Apple Silicon (arm64)。Python は Homebrew の 3.12.x / 3.13.x / 3.14.4 を使い分け、いずれもクリーンな venv で測った。

Aiderとは——ターミナルで完結するAIペアプログラミングの実体

Aiderは「エディタの拡張機能」ではない。ターミナルのプロセスとして起動し、カレントのgitリポジトリを作業対象にするという点が、Cline や Copilot のようなIDE統合型と根本的に違う。

動作の流れは4段階に整理できる。

flowchart TD A["ターミナルで aider 起動
カレントのgitリポジトリを検出"] --> B["リポジトリマップを構築
tree-sitterで関数・クラスを抽出し4096トークンに要約"] B --> C["ユーザーの指示+マップ+対象ファイルをLLMへ送信"] C --> D["返ってきた編集をファイルへ適用
diff形式なら変更部分だけを差し替え"] D --> E["gitコミットを自動生成
--no-auto-commits で無効化可"] E --> C

この設計の要が リポジトリマップ(repo map) だ。起動時に「Repo-map: using 4096 tokens, auto refresh」と表示される通り、Aiderはリポジトリ全体をtree-sitterで解析して関数シグネチャやクラス定義だけを抜き出し、4096トークンに収まる要約を作ってLLMに渡す。全ファイルを投げずに「このリポジトリには何があるか」をモデルへ伝えるための仕組みで、Aiderが大規模リポジトリでも動く理由がここにある。

もうひとつの柱が 編集形式(edit format) である。これは後述する実測の核心なので、ここでは違いだけ押さえておく。

編集形式 モデルに要求する出力 トークン消費 適用の確実性
diff 変更する箇所の検索文字列と置換文字列だけ 少ない(変更部分のみ) 検索文字列が一致しないと失敗する
whole 対象ファイルの全文を書き直して返す 多い(ファイルサイズに比例) 一致判定が不要なので失敗しにくい
udiff unified diff 形式 少ない モデルの形式追従に依存

whole は「安全だが高い」形式だ。1,000行のファイルを1行直すために1,000行を再出力させるので、出力トークンも待ち時間も跳ね上がる。Aiderはモデルごとにどちらを使うかを設定ファイルで持っていて、その設定ファイルが古いままであることが本記事の後半の論点になる。

git連携も特徴的だ。Aiderは編集ごとにコミットを自動生成し、/undo でその直前のコミットを取り消せる。AIの編集を「作業ツリーの汚れ」ではなく「取り消せるコミット列」として扱う設計で、暴走したときの巻き戻しがgitの操作に還元される。

Aiderの現在地:mainは108日、pip配布は207日止まっている

「開発が止まっている」という主張は、印象ではなく配布経路ごとに別々に測る必要がある。GitHubリポジトリのpushed_atは既定ブランチ以外のpushでも動くため、それ単体では判定に使えないからだ。実際にAiderのpushed_atは 2026-05-22T14:02:20Z で、これは偶然にもmainの最終コミットと一致していたが、一致しないOSSも珍しくない。

3つの経路を個別に取ると、止まった時期がそれぞれ違う。

Aiderの3つの配布経路が止まった時期を示す図。GitHub Releasesは2025-08-09、PyPIは2026-02-12、mainブランチは2026-05-22で停止し、Issueだけが2026-09-05まで続いている
本記事の実測。GitHub API `/commits`・`/releases`・PyPI JSON API・GitHub Search APIから取得
経路 最終更新 本記事執筆時点での経過 意味
GitHub Releases v0.86.0 / 2025-08-09 394日 リリースノートの発行が最初に止まった
PyPI aider-chat 0.86.2 / 2026-02-12 207日 読者が pip install で得る版はここで止まった
main ブランチ 2026-05-22 108日 開発そのものはPyPIより3か月半長く続いた
Issue 2026-09-05 2日 利用者側は今も動いている

注目すべきは GitHub Releases と PyPI の乖離 だ。GitHub上のリリースタグは v0.86.0(2025-08-09)で止まっているのに、PyPIには 0.86.1(2025-08-13)と 0.86.2(2026-02-12)が上がっている。つまり GitHub Releasesを見て「1年以上更新されていない」と判断するのも、PyPIだけを見て「半年前まで動いていた」と判断するのも、どちらも実態を外す。リリースノートの発行と実際の配布が別々に運用されていたためだ。

そしてmainには、リリースされないまま溜まった改善がある。HISTORY.md の冒頭には「### main branch」という節があり、そこに未リリースの変更が列挙されている。

ANTHROPIC_MODELS へ Claude Opus 4.1 / 4.5 / 4.6 / 4.7 の日付付き版と Claude Sonnet 3.7 を追加
・Claude 4.5 / 4.6 系のサポートとモデルエイリアス(sonnet / haiku / opus)の更新
・Gemini 2.5 Flash・Flash-Lite・Gemini 3 preview の追加と flash エイリアスの更新
・OpenAI GPT-5.1 / 5.2 / GPT-5-pro の設定を OpenAI・Azure・OpenRouter へ追加
・DeepSeek Reasoner の追加、リポジトリマップの Fortran / Haskell / Julia / Zig 対応
・非推奨の google-generativeai 依存の削除、例外マッピングの修正

つまり 「新しいモデルに追随する作業自体はmainで完了している。ただし1度も配布されていない」 という状態だ。mainの最終コミットのメッセージが Expand ANTHROPIC_MODELS list with recent Claude model names であることは、この構図を端的に示している。

Issue側は生きている。オープンIssue 1,368件、オープンPR 485件、最新のIssueは2026-09-05に立った。GitHub APIの open_issues_count は1,853を返すが、これはPull Requestを含む合計値なので、Issueだけの件数として引用すると誤りになる点は補足しておく。

「アーカイブされていない」=「メンテされている」ではない

Aiderはアーカイブフラグが立っておらず、GitHub上では通常のアクティブなリポジトリに見える。★48,794という数字も、リポジトリを訪れた人に「盛んなプロジェクト」という印象を与える。しかしスター数は累積値であり、現在の保守状況を一切示さない。判定に使えるのは、リリース履歴・配布物のタイムスタンプ・既定ブランチのコミット日という観測可能な事実だけである。

Aiderのインストールが失敗する本当の理由——Python 3.13以降では入らない

日本語記事の多くは pip install aider-chat の1行でインストールが終わるように書いている。2026年9月現在、その通りに実行すると多くの環境で失敗する。原因はネットワークでもビルドツールでもなく、パッケージメタデータの宣言である。

aider-chat 0.86.2 のメタデータはこうなっている。

requires_python: <3.13,>=3.10
・配布物: aider_chat-0.86.2-py3-none-any.whl(純Pythonホイール)と sdist

<3.13 という上限が効くため、Python 3.13 以降のインタプリタでは 0.86.2 が候補から外れる。pipは「条件を満たす別のバージョン」を探して過去へ後戻りし、ホイールの無い古い版のsdistをビルドしようとして落ちる。実際にクリーンなvenvで測ると、失敗の仕方はバージョンごとに違った。

Python pip install aider-chat の結果 落ちた場所
3.12.x 成功aider 0.86.2 が入る
3.13.x 失敗 後戻り先の numpy ビルドが AttributeError: module 'pkgutil' has no attribute 'ImpImporter'
3.14.4 失敗 tiktoken のメタデータ生成が ModuleNotFoundError: No module named 'setuptools_rust'
Python 3.12ではaider 0.86.2が成功、3.13ではnumpyのpkgutil.ImpImporterエラー、3.14ではtiktokenのsetuptools_rust不足で失敗することを対比した図
本記事の実測。同一マシン上でHomebrewの各Pythonからクリーンなvenvを作り `pip install aider-chat` を実行した結果

重要なのは、エラーメッセージが原因を指していないことだ。読者が目にするのは「numpyのビルドに失敗しました」「setuptools_rustがありません」であって、「aiderがPython 3.13に対応していません」とはどこにも出ない。そのため「ビルドツールを入れれば直る」と考えて setuptoolswheel を追加インストールする対処に流れやすいが、実測ではそれでも直らなかった(3.13で setuptoolswheel を先に入れてから再実行しても、後戻り先のnumpyで同じエラーになる)。

回避策はPythonのバージョンを下げることに尽きる。3.12系を用意して、そこにvenvを作る。

# Python 3.12 を用意してクリーンなvenvへ入れる(実測で成功した手順)
python3.12 -m venv ~/.venvs/aider
~/.venvs/aider/bin/pip install --upgrade pip
~/.venvs/aider/bin/pip install aider-chat
~/.venvs/aider/bin/aider --version   # => aider 0.86.2

この壁は時間とともに悪化する性質を持つ。Python 3.13は2024年10月、3.14は2025年10月のリリースで、ディストリビューションやHomebrewの既定Pythonは今後さらに新しくなっていく。上限が <3.13 のまま配布が再開されなければ、「既定のPythonでは入らないツール」である期間が延びるだけだ。mainブランチ側でこの上限が緩和されているかどうかにかかわらず、PyPIに新しい版が上がらない限り読者の環境には届かない

実測:モデル表に無いモデルを指定するとAiderは編集形式をwholeに落とす

インストールを越えた先に、もう1つ静かな劣化がある。配布版に同梱されたモデル定義が2026年2月時点のスナップショットで止まっていることによる影響だ。

まず事実確認から。配布版 0.86.2 に含まれる aider/resources/model-settings.yml313件 のモデル定義を持つ。ここに何が入っていて何が入っていないかを実際にgrepすると、境界がはっきり出る。

入っているclaude-sonnet-4-5 / claude-sonnet-4-5-20250929 / claude-haiku-4-5-20251001 / claude-opus-4-6
入っていないclaude-opus-4-7 / claude-sonnet-4-6 / claude-opus-5 / claude-sonnet-5

境界が claude-opus-4-6 にあるのは、0.86.2 の公開日(2026-02-12)と整合する。

ではモデル表に無いモデルを指定するとどうなるか。ブロックはされない。 Aiderはlitellm経由でモデルを呼ぶので、表に無い名前でも起動して通信を試みる。しかし起動時のバナーに出る「編集形式」が変わる。同一環境で、モデル名だけを変えて起動したときの表示を並べる。

指定したモデル model-settings.yml に定義 起動時の表示
anthropic/claude-sonnet-4-5 あり with diff edit format, infinite output
claude-sonnet-4-6 なし with whole edit format, infinite output
claude-opus-4-7 なし with whole edit format
anthropic/claude-opus-4-7-20260416 なし with whole edit format
claude-opus-5 なし with whole edit format
モデル表にあるclaude-sonnet-4-5はdiff編集形式とinfinite outputが有効、表に無いclaude-opus-5やclaude-opus-4-7はwhole編集形式に落ちることを対比した図
本記事の実測。aider 0.86.2 / Python 3.12 で、モデル名以外の条件を揃えて起動し `Model:` 行を比較した

原因はソースを読むと明確だ。aider/models.pyModelSettings は既定値として edit_format: str = "whole" を持ち、model-settings.yml に一致する定義があればそこで上書きされる。定義が無ければ既定の whole がそのまま残る。apply_generic_model_settings() には gpt-4.1o3-mini などの名前パターンに反応して diff を設定する分岐があるが、Claude系の新モデル名に反応する分岐は無い。

自分の環境がどちらに転ぶかは、起動する前に確認できる。インストール済みのAiderに同梱された定義を直接引くだけだ。

# 使いたいモデルが同梱の定義表にあるか確認する(実測で動作を確認したコマンド)
cat > check_model.py <<'EOF'
import sys, os, yaml, aider
target = sys.argv[1]
p = os.path.join(os.path.dirname(aider.__file__), "resources", "model-settings.yml")
names = {m["name"] for m in yaml.safe_load(open(p))}
hit = target in names or target.split("/")[-1] in names
print(target, "定義あり" if hit else "定義なし -> whole edit format にフォールバック")
EOF
~/.venvs/aider/bin/python check_model.py claude-opus-5

手元の 0.86.2 でこれを走らせると、claude-sonnet-4-5 は「定義あり」、claude-opus-5anthropic/claude-opus-4-7-20260416 は「定義なし」と出た。起動時のバナー表示と一致する。

この劣化が厄介なのは、警告が一切出ないことだ。「このモデルは未知なので既定設定を使います」といったメッセージは表示されず、バナーの whole edit format という1語だけが違う。見落とせば、変更1行のたびにファイル全文を再生成させ続けることになる。

なお、モデル名の解決自体には別の表も関わる。aider/models.py 冒頭の ANTHROPIC_MODELS リストは、配布版で 15件、mainでは 24件 に増えている。ただしこのリストが使われるのは fast_validate_environment() ——モデル名から必要なAPIキーの環境変数名を高速に引き当てる経路——だけで、ここに無くても validate_environment() 側のlitellm経由の解決にフォールバックする。編集形式を決めているのは ANTHROPIC_MODELS ではなく model-settings.yml のほうなので、この2つは分けて理解しておく必要がある。

回避策はある。ユーザー側の設定ファイルでモデル定義を自分で足せばよい。

# ~/.aider.model.settings.yml に置くと同梱の定義を補える
- name: claude-opus-5
  edit_format: diff
  use_repo_map: true
  weak_model_name: claude-haiku-4-5
  editor_model_name: claude-sonnet-4-5
  editor_edit_format: editor-diff

ただしこれは利用者が上流の保守を肩代わりするという意味であり、新しいモデルが出るたびに手で足し続ける前提になる。ここが「今からAiderを選ぶか」の分かれ目になる。

Aiderの使い方——今も動く最小構成と、動かない部分の見分け方

止まっているとはいえ、0.86.2 が壊れているわけではない。実際にPython 3.12環境で起動し、リポジトリ検出・リポジトリマップ構築・gitignoreへの追記・モデル解決までは正常に動いた。基本の流れは変わっていない。

起動:作業したいgitリポジトリのルートで aider を実行する。APIキーは ANTHROPIC_API_KEY / OPENAI_API_KEY などの環境変数から自動検出される
ファイルを渡すaider path/to/file.py のように引数で渡すか、対話中に /add path/to/file.py で追加する。渡していないファイルはリポジトリマップ経由で存在だけが伝わる
編集を指示する:自然言語でそのまま書く。Aiderが編集を適用し、既定では自動でコミットされる
取り消す/undo で直前のAiderのコミットを取り消す
自動コミットを止める--no-auto-commits を付けて起動する
差分を見る/diff で直前の変更を確認する

起動時に確認すべき行は2つある。1つは Model: 行で、ここに diff edit format と出ているか whole edit format と出ているかで前節の劣化が判定できる。もう1つは Repo-map: using 4096 tokens の行で、これが出ていればリポジトリマップが構築されている。

Aiderを今から使う際の確認手順を5段階で示した図。Python 3.12の用意、venvでのインストール、バージョン確認、Model行の編集形式確認、必要ならモデル設定の追加という流れ
本記事の実測手順を図にしたもの。3〜4段目の確認を省くと、編集形式の劣化に気づかないまま使い続けることになる

一方で、今後古くなっていく部分もはっきりしている。モデル価格・コンテキスト長・新モデルの設定は同梱データに依存しており、上流の配布が再開されない限り更新されない。ベンチマークやリーダーボードを掲載している公式サイトの数値も、同じ理由で2026年前半のスナップショットとして読む必要がある。

Aiderを使い続けるか、乗り換えるか——代替ツールとの比較

判断材料として、同じ「AIにコードを編集させる」領域のOSSを、保守状況の実測値で並べる。すべて2026-09-07 時点のGitHub APIの値だ。

ツール ライセンス 最終push 形態 保守状況
Aider 48,794 Apache-2.0 2026-05-22 ターミナルCLI mainが108日停止・PyPIは207日停止
Cline 67,584 Apache-2.0 2026-09-05 VS Code拡張 継続中
Kilo Code 27,201 MIT 2026-09-06 VS Code / JetBrains拡張 継続中
Roo Code 24,309 Apache-2.0 2026-05-15 VS Code拡張 アーカイブ済み
Aider・Cline・Kilo Code・Roo Codeのスター数と最終push日を並べた棒グラフ。ClineとKilo Codeは2026年9月まで更新が続き、AiderとRoo Codeは5月で止まっている
本記事の実測(2026-09-07 JST・GitHub API)。スター数の大きさと保守の継続は一致しない

この表から読めるのは、スター数の順序と保守継続の順序が一致しないということだ。Aiderは4本中2位のスター数を持ちながら配布が止まっており、Roo Codeに至ってはアーカイブ済みである。スター数は累積の人気指標であって、現在の保守状況を示すものではない。

判断は用途で分かれる。

Aiderを使い続けてよいケース:既存のワークフローがAider前提で組まれている/Python 3.12を固定できる/~/.aider.model.settings.yml を自分で書ける。この3つが揃うなら、0.86.2は今も実用の範囲にある
乗り換えを検討すべきケース:新規に導入する/チームで配る/モデル更新の追随を自分で背負いたくない。この場合は更新が続いているツールのほうが総コストが低い

IDE統合型に移るなら、同じ「エージェントがファイルを編集する」体験を持つ Clineの使い方2026|VSCode拡張の導入からPlan/Actモード・無料枠・Ollama連携まで が最も近い。ターミナル志向を保ちたい場合や、メンテナンス終了後のツールをどう扱うかという同種の判断は Continue.dev とは|メンテ終了後も使えるか・CLIとVS Code拡張をCursorと比較 が参考になる。有償IDEを含めて比較したい場合は cursor 料金(Cursor pricing)2026|Hobby・Pro・Pro+・Ultraの違いと選び方 を見てほしい。

止まったOSSを評価するときの3つの物差し

Aiderに限らず、「このOSSはまだ生きているか」を判断するときに使える実測項目を挙げておく。

配布経路ごとに見る:GitHub Releases・パッケージレジストリ・既定ブランチは別々に止まる。1つだけ見ると誤判定する
requires_python などの上限宣言を見る:処理系の新バージョンに対する上限は、配布が止まった瞬間から「入らない期間」を生み続ける
同梱データのカットオフを見る:モデル定義・価格表・ベンチマークなど、外部の変化に追随すべきデータは配布日で凍結される

まとめ——Aiderは「終わって」はいないが「届いて」いない

事実を整理する。Aiderはアーカイブされておらず、Issueは今も立ち、mainには新しいモデルへの対応が実装済みで積まれている。開発が終わったわけではない。 しかし、その成果が読者の手元に届く経路——PyPIの配布——は207日止まっており、GitHub Releasesは394日止まっている。

そのため利用者が実際に触るのは 0.86.2 であり、そこには2つの実測できる制約がある。1つは requires_python = "<3.13,>=3.10" によるインストールの壁で、2026年に一般的なPython 3.13/3.14では入らない。もう1つはモデル定義のカットオフで、claude-opus-4-6 より新しいモデルを指定すると編集形式が警告なく whole に落ちる。

どちらも回避策がある(Python 3.12を固定する、モデル設定を自分で書く)。その回避策を自分で維持する気があるかどうかが、Aiderを使い続けるかの実質的な判断基準になる。

参照ソース

Aider-AI/aider(GitHub 公式リポジトリ) — スター数・ライセンス・既定ブランチのコミット履歴・Issue/PR件数の一次ソース
aider-chat(PyPI) — 配布版のバージョン・公開日時・requires_python の一次ソース
Aider 公式ドキュメント(aider.chat) — リポジトリマップ・編集形式・設定ファイルの仕様
HISTORY.md(main ブランチ) — 未リリースの変更が積まれている「main branch」節