AiderからClaude Codeへの移行手順 — .aiderignoreの読み替え方
Aiderの.aiderignoreやCONVENTIONS.mdをClaude Codeの権限ルール・CLAUDE.mdに移す対応表です。自動コミットの挙動差やチャットモードの読み替えも扱います。
はじめに
AiderとClaude Codeはどちらもターミナルで動くCLI型のコーディングエージェントで、IDE拡張型のツールより設計思想が近い関係にあります。それでも設定ファイルの持ち方はかなり違います。
とくに引っかかるのが無視ファイルです。.claudeignoreを作っても、Claude Codeはそのファイルを読みません。権限の公式ページにも「.claudeignoreは効果がないので、中身をReadのdenyルールへ移す」と書かれています。.aiderignoreの行き先は.claude/settings.jsonのpermissions.denyです。
移行の手を動かす順番
- 1
コミットの担当を決める
Aiderの
auto-commitsに頼っていたなら、Claude Code側では「依頼して切る」か「Hookで切る」かを先に選びます。 - 2
CONVENTIONS.mdをCLAUDE.mdにする
cp CONVENTIONS.md CLAUDE.mdで、読み込みの設定そのものが要らなくなります。 - 3
.aiderignoreをdenyルールにする
除外したいパスを
.claude/settings.jsonのpermissions.denyへ書き写します。 - 4
lint・testをHookにする
--auto-lintと--auto-testは、PostToolUseのHookに置き換えます。 - 5
認証の経路を選び直す
ANTHROPIC_API_KEYを環境変数に入れたままだと、Claude Codeはそちらを優先します。
コミットと巻き戻しはどう変わるか
移行前に押さえたい差のうち、最も体感が大きいのは自動コミットです。Aiderはauto-commitsが既定でTrueで、ファイルを編集するたびに説明付きのコミットを作ります。Claude Codeにはこの既定動作がなく、コミットは依頼するか、Stopイベントに結んだHookで組みます。
AIの変更を取り消す手段
Aider
編集のたびにコミットが残り、/undoで直前のAIの変更を取り消します。/diffは直前のメッセージ以降の差分を見せます。作業ツリーに未コミットの変更があると、Aiderは先にそれをコミットして自分の編集と分けます(--dirty-commits、既定はTrue)。
Claude Code
入力欄が空の状態でEscを2回押すか/rewindを実行すると、送ったプロンプトの一覧が開きます。選んだ時点まで、コードと会話をまとめて、または片方だけ戻せます。gitのコミット履歴は対象外で、長期の履歴はgitで持つ前提です。
rewindには範囲の限界があります。Claudeのファイル編集ツールによる変更だけが記録され、Bashのrm・mv・cpで動かしたファイルは戻りません。サブエージェントの編集も、フォアグラウンドで動くforkスキルを除いて戻りません。スナップショットは、最後の保存からおよそ30日で掃除されます。
Hookで自動コミットを組んでいた場合、rewindで戻してもすでに切られたコミットは残ります。取り消すときはgit resetなど通常のgit操作を使います。
コミットの署名も食い違います。Aiderは既定でCo-authored-byトレーラーを付けます(--attribute-co-authored-by)。Claude Codeも、自分でコミットするときは既定でCo-Authored-Byトレーラーを付け、settings.jsonのattributionで文面を変えられます。falseにすると非表示になり、v2.1.281以降が必要です。
Aiderのチャットモードはplanモードに近い
Aiderにはcode(既定、編集する)・ask(議論だけで編集しない)・architect(提案役と編集役の2段構成)・helpの4モードがあり、/chat-modeで切り替えます。このうちaskからcodeへの往復は、Claude Codeのplanモードに近い体験です。コードベースを読んで計画を示し、承認するまでソースを書き換えません。
planモードはclaude --permission-mode planで起動できます。セッション中はShift+Tabでモードを順に切り替えるか、プロンプトの先頭に/planを付けます。実機(v2.1.289)で指定できる値を出すと次のとおりです。
claude --version
claude --help | grep -A3 -e "--permission-mode"2.1.289 (Claude Code)
--permission-mode <mode> Permission mode to use for the session
(choices: "acceptEdits", "auto",
"bypassPermissions", "manual",
"dontAsk", "plan")Aiderの4モードと違い、Claude Codeのモードは「編集の確認をどこまで省くか」の段階です。計画を承認するときも、承認後の動かし方を「自動モード」か「編集を1件ずつ確認」から選びます。
.aiderignoreを権限ルールに置き換える
.aiderignoreはgitignoreと同じ書式でAiderの対象からパスを外すファイルで、既定ではgit rootのものが使われます(--aiderignoreで変更可)。Claude Codeではpermissions.denyが同じ役目を担います。
{
"permissions": {
"deny": [
"Read(./secrets/**)",
"Read(./.env)",
"Edit(./vendor/**)"
]
}
}Readのdenyは読み取りを止めるだけでなく、同じパスへのEditツールとWriteツールも止めます。新しいファイルを作る操作も含みます。編集側の検査はv2.1.208以降、書き込み側はv2.1.228以降です。つまり.aiderignoreの「読ませず・書かせない」はReadの1行で足ります。
Edit(./vendor/**)のようにEditだけを拒否すると、読ませて書かせない設定になり、.aiderignoreにはない細かい制御です。ルール全体の構造はClaude Code settings.json完全ガイドにまとめています。
.gitignoreはこの代わりになりません。Globツールは既定で、gitignore対象のファイルも返します。Grepはgitignore対象を飛ばします。Globにも従わせたいときは、起動前に環境変数CLAUDE_CODE_GLOB_NO_IGNORE=falseを設定します。settings.jsonのrespectGitignoreは@ファイルピッカー専用です。読み書きを禁じる手段は、あくまでdenyルールです。
CONVENTIONS.mdの手動読み込みとCLAUDE.mdの自動読み込み
Aiderには、セッション開始時に自動で読まれる指示ファイルがありません。規約を書いたCONVENTIONS.mdは、aider --read CONVENTIONS.mdと毎回指定するか、.aider.conf.ymlに常時読み込みを書いて使います。
read: CONVENTIONS.mdClaude CodeのCLAUDE.mdはプロジェクト直下に置くだけで、セッション開始時に読み込まれます。read:にあたる有効化の手順が要りません。中身はそのままコピーできます。
cp CONVENTIONS.md CLAUDE.md
git add CLAUDE.md規約が育って長くなったら、.claude/rules/にトピック別のファイルを置けます。ファイルの先頭にpathsを書けば、該当するファイルを触るときだけ読み込まれます。書き方の実例はCLAUDE.mdを実用に引き上げる10のパターンにあります。
.aider.conf.ymlとsettings.jsonの対応
.aider.conf.ymlは、ホームディレクトリまたはgitリポジトリのルートに置くYAMLで、モデル・APIキー・編集フォーマットなどを1ファイルにまとめます。Claude Codeでは役割ごとにキーが分かれます。
Aider(.aider.conf.yml) | Claude Code | 備考 |
|---|---|---|
model: xxx | Claude Codesettings.jsonのmodel | 備考どちらもセッション既定モデルを指定 |
anthropic-api-key: xxx | Claude CodeANTHROPIC_API_KEY環境変数 | 備考Claude ConsoleのAPI従量課金で認証する場合 |
auto-commits: true | Claude Code既定動作なし(Hookで代替) | 備考コミットの担当を決め直す |
aiderignore: .aiderignore | Claude Codepermissions.deny | 備考ファイル単位ではなくルール単位 |
attribute-co-authored-by: true | Claude Codeattribution | 備考署名の文面を変えられる |
Aiderの設定ファイルはホーム用とプロジェクト用の2か所に置け、両方見つかれば両方が読み込まれます。Claude Codeにも、ユーザー用の~/.claude/settings.jsonとプロジェクト用の.claude/settings.jsonを含む複数の階層があり、起動時にマージされる点は考え方が共通です。
自動lint/testをHookに置き換える
Aiderの--auto-lintは編集後に--lint-cmdのコマンドを、--auto-testは--test-cmdのコマンドを自動実行します。Claude CodeではPostToolUseイベントのHookが同じ役目を担います。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": "npm run lint" }
]
}
]
}
}Aider側はコマンド文字列を1つ渡せば済みますが、Claude Code側はイベント名とツール名の組で指定します。テストも同じ形で、hooks配列にコマンドを足します。書き方の詳細はClaude Code Hooks完全ガイドを参照してください。
置き換え先が別の形になる3つの機能
Aiderで当たり前に使っていた機能のうち、Claude Codeに同名の機能がないものがあります。探し続けるより、置き換え先の考え方を先に知っておくと早く済みます。
同名の機能がないAiderの習慣
architectモード
提案役と編集役を別モデルに分ける構成に近いのは、
/modelで選ぶopusplanです。planモードではOpus、実行ではSonnetが使われます。planモードで計画を作り、承認して同じセッションで実行する流れは同じです。Aiderは2つのモデルを自由に指定できますが、opusplanはopusとsonnetの組に固定された別物です。AI!コメント
Aiderは
--watch-filesで、# 〜 AI!のようなコメントを検知して指示として実行します。AI?なら質問として答えます。Claude Code側にコメントを指示として実行する機能はなく、指示はセッションのプロンプトで渡します。ファイル変更を契機にコマンドを走らせたいときは、FileChangedのHookがあります。リポジトリマップ
Aiderは全体のシンボル構造を要約した「repo map」を自動で作り、
/add・/dropで対象ファイルを人が選びます。Claude CodeはGrepとGlobで必要な範囲をその都度探す設計で、事前登録の手順がありません。
大きなリポジトリで探索が重いときは、CLAUDE.mdにディレクトリ構成とモジュールの役割を書いておくと、探索の範囲を絞りやすくなります。
よくあるつまずき
denyルールを書いたのにgrepで中身が見える
ReadとEditのdenyルールが効くのは、Claudeの組み込みファイルツールと、cat・head・sed・teeのようにファイルを名指しするBashコマンドです。リダイレクトの対象にも効きます。
一方、grep -r pattern .のようにファイルを名指ししないコマンドや、PythonやNodeのスクリプトがファイルを開く操作には効きません。GrepとGlobへの適用はベストエフォートとされています。プロセス全体をOSの水準で止めたいなら、サンドボックスを有効にします。
編集のたびにlintが走らない
PostToolUseのmatcherを"Edit"だけにすると、新しいファイルを作るWriteでは動きません。上の例のようにEdit|Writeと書きます。
ANTHROPIC_API_KEYを入れたまま、サブスクリプションが使われない
Aiderの運用でANTHROPIC_API_KEYをシェルに入れていると、Claude Codeはログイン済みのサブスクリプションよりそのキーを優先します。対話モードでは、最初に一度キーを使うかどうかを尋ねられます。-pによる非対話実行では、キーがあれば常にそちらが使われます。サブスクリプションの枠で使いたいなら、unset ANTHROPIC_API_KEYが必要です。
Bedrockを使うならAWSの認証情報、Vertex AIならGCPの認証情報を使い、ANTHROPIC_API_KEYとは別の経路です。従量課金のキーだけを使ってきた人は、サブスクリプション・Console・Bedrock・Vertexのどれで認証するかを、移行時に選び直すことになります。
まとめ
移行で最初に決めるのは、コミットを誰がいつ切るかです。1対1で移らないのはarchitect・AI!コメント・repo mapの3つで、ここは機能探しより運用の組み直しになります。
関連する記事
Claude Code をもっと見る →Claude Codeとは — できること・料金・始め方と使い方の全体像
WindsurfからClaude Codeへの移行手順 — Devin Desktop化後の設定引き継ぎ
Claude CodeでSlack Botを作る — Bolt for JavaScriptとSocket Mode
Claude Codeでruffとmypyの検証ループを組む — CLAUDE.mdで品質ゲートを固定
適格請求書発行事業者のWeb-APIをClaude Codeで呼ぶ — 登録番号を一括照合
Claude CodeでAWS Lambda(SAM)を開発 — local invokeで検証しdeployは承認制に