Claude Media
AiderからClaude Codeへの移行手順 — .aiderignoreの読み替え方

AiderからClaude Codeへの移行手順 — .aiderignoreの読み替え方

Aiderの.aiderignoreやCONVENTIONS.mdをClaude Codeの権限ルール・CLAUDE.mdに移す対応表です。自動コミットの挙動差やチャットモードの読み替えも扱います。

はじめに

AiderとClaude Codeはどちらもターミナルで動くCLI型のコーディングエージェントで、IDE拡張型のツールより設計思想が近い関係にあります。それでも設定ファイルの持ち方はかなり違い、とくに「Claude Codeに.claudeignoreという無視ファイルがある」という前提で調べると空振りします。Claude Codeにその名前のファイルは存在しません.aiderignoreをClaude Codeの権限ルールへ移す手順を軸に、以下では実在する対応関係だけを扱います。

Aiderとの前提の違い — 自動コミットとチャットモード

移行の前に押さえておくべき差が2つあります。1つ目は自動コミットです。Aiderはauto-commitsが既定でtrueになっており、AIが加えた変更は基本的にそのままgitコミットされます。Claude Codeにはこの既定動作がなく、コミットは指示するか、Stopイベントに紐づけたHooksで明示的に組む必要があります。日常的にAiderの自動コミットに頼っていたワークフローは、移行時にコミットを誰が・いつ切るかを決め直す必要があります。

自動コミットが無いなら、AIの変更を巻き戻す手段はどうなるのか。Aiderには直前のAIコミットを取り消す/undoがありますが、Claude Codeにはgitのコミットを取り消す機能はなく、代わりにClaudeが編集したファイルと会話をプロンプト単位で復元する「rewindメニュー」を使います。入力欄が空の状態でEscを2回押すと開き、それ以前の時点までコードと会話をまとめて戻せます。gitのコミット履歴には触れないため、Hookで自動コミットを組んでいた場合、rewindで戻してもすでに切られたコミットはそのまま残ります。コミット自体を取り消したい場合はgit resetなど通常のgit操作が必要です。

2つ目はチャットモードです。Aiderにはcode(既定、編集する)/ ask(読むだけで編集しない)/ architect(提案モデルと編集モデルの2段構成)の3モードがあり、/chat-modeで切り替えます。Claude Codeのplanモードは、コードベースを読み込んで計画を提示し、承認後に実行する点でaskcodeの往復にかなり近い体験です。ただしAiderのarchitectモードのように「提案する側」と「ファイルを編集する側」を別モデルに分ける仕組みはClaude Codeの既定機能にはありません。Aiderでarchitectモードを常用していたワークフローは、Claude Code移行後はplan → 承認 → 実行という1モデル完結のフローに置き換わります。

# planモードで起動(Aiderの/askに近い、読み取り専用の調査から入る)
claude --permission-mode plan

セッション中にShift+Tabを押すか、プロンプトの先頭に/planを付けるとその場でplanモードに切り替わります。Claudeはファイルを読み、シェルコマンドで調査し、計画を提示しますが、承認するまでソースコードは書き換えません。この「提示 → 承認 → 実行」という流れが、Aiderのaskモードで方針を固めてからcodeモードに切り替える運用の置き換え先になります。

.aiderignoreを権限ルールに置き換える

.aiderignoreはgitignoreと同じ書式でAiderの読み書き対象からパスを除外するファイルで、既定ではgit rootの.aiderignoreが使われます(--aiderignoreで変更可)。Claude Codeには専用の無視ファイルが無いため、代わりに.claude/settings.jsonpermissions.denyで同じ効果を作ります。

.claude/settings.json
{
  "permissions": {
    "deny": [
      "Read(./secrets/**)",
      "Read(./.env)",
      "Edit(./vendor/**)"
    ]
  }
}

このpermissions.denyReadEditを別々に拒否できるため、「読むことはできても編集はさせたくない」ケースを.aiderignoreより細かく制御できます。指定したパスはファイル探索・検索結果からも除外されるため、.aiderignoreのインデックス除外と同じ効果を得られます。設定ファイル全体の構造はClaude Code settings.json完全ガイドを参照してください。

注意点として、Claude Codeは.gitignoreに載っているパスを既定では編集対象から外しません。Globツールはgitignore対象のファイルも含めて返すのが既定動作で(環境変数CLAUDE_CODE_GLOB_NO_IGNOREで挙動を変更可能)、.gitignoreを参照する設定は@ファイルピッカー専用のrespectGitignoreだけです。つまり.aiderignoreが持っていた「編集からもインデックスからも外す」効果は.gitignoreだけでは代替できず、除外したいパスは漏れなくpermissions.denyへ書く必要があります。

CONVENTIONS.mdの手動読み込みとCLAUDE.mdの自動読み込み

Aiderには「セッション開始時に自動で読まれる指示ファイル」がありません。コーディング規約を書いたCONVENTIONS.mdのようなファイルを作っても、aider --read CONVENTIONS.mdのように毎回明示するか、.aider.conf.ymlread: CONVENTIONS.mdを書いて常時読み込む設定を足す必要があります。

.aider.conf.yml(Aider側)
read: CONVENTIONS.md

Claude CodeのCLAUDE.mdはこの逆で、プロジェクト直下に置くだけでセッション開始時に自動的に読み込まれます。Aiderのread:設定に相当する手動有効化のステップ自体が不要になる点が最大の違いです。移行の実務としては、CONVENTIONS.mdの中身をそのままCLAUDE.mdにリネーム・コピーするだけで済みます。

cp CONVENTIONS.md CLAUDE.md
git add CLAUDE.md

大きくなってきた規約ファイルを分割したい場合は、Claude Codeの.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: xxxClaude Codesettings.jsonmodel備考どちらもセッション既定モデルを指定
anthropic-api-key: xxxClaude CodeANTHROPIC_API_KEY環境変数備考Claude ConsoleのAPI従量課金を使う場合の認証。Bedrock/VertexはAWS/GCP側の認証情報を使うため対象外
auto-commits: trueClaude Code既定動作なし(Hooksで代替)備考前述のとおり明示的な設計が必要
aiderignore: .aiderignoreClaude Codepermissions.deny備考ファイル単位ではなくルール単位で管理

Aiderの設定ファイルはホームディレクトリ用とプロジェクト用の2箇所に置け、両方見つかった場合は両方が読み込まれます。Claude Codeも~/.claude/settings.json(ユーザー)と.claude/settings.json(プロジェクト)の2階層構造を持ち、どちらも起動時にマージされる点は考え方が共通しています。全設定キーの一覧はClaude Code settings.json完全ガイドを参照してください。

自動lint/testをHooksに置き換える

Aiderには--auto-lint(編集後に--lint-cmdで指定したコマンドを自動実行)と--auto-test(同様に--test-cmdを自動実行)というオプションがあります。ファイルを編集するたびにlintとテストが走る体験は、Claude CodeではPostToolUseイベントのHooksで再現します。

.claude/settings.json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit",
        "hooks": [
          { "type": "command", "command": "npm run lint" }
        ]
      }
    ]
  }
}

Aider側は--lint-cmdにコマンド文字列を渡すだけで済みますが、Claude Code側はイベント名(PostToolUse)とツール名(matcher: "Edit")を組み合わせて指定する分、設定の書き方は一段階細かくなります。テストコマンドも同じ形でtest-cmd相当のコマンドをhooks配列に追加すれば代替できます。詳しい書き方はClaude Code Hooks完全ガイドを参照してください。

APIキー設定の違い

Aiderは.envファイルまたは.aider.conf.ymlにAPIキーを書く運用が基本で、ANTHROPIC_API_KEYのような環境変数名は業界標準に沿っています。Claude Codeも同じ環境変数名を認識しますが、既定の認証経路はPro / Max / Team / Enterpriseいずれかのサブスクリプションログイン(ブラウザ経由)です。ANTHROPIC_API_KEYはClaude Console(API従量課金)で認証する場合に設定するもので、Amazon Bedrock経由はAWSの認証情報、Google Cloud Vertex AI経由はGCPの認証情報をそれぞれ使うため、ANTHROPIC_API_KEYとは別系統です。Aiderで従量課金のAPIキーだけを使ってきた読者は、まずどの認証経路(サブスクリプション/Console/Bedrock/Vertex)を使うのかを選び直すと、想定外の課金体系に迷うことが減ります。

よくあるつまずき

「CONVENTIONS.mdを置いたのに反映されない」

AiderのCONVENTIONS.mdは自動読み込みされないファイルです。--readフラグか.aider.conf.ymlread:設定がなければ、ファイルを置いただけでは反映されません。Claude CodeのCLAUDE.mdと混同しやすいポイントなので、移行時はこの前提の違いを最初に確認してください。

「Aiderと同じように編集ごとにコミットが分かれない」

前述のとおりClaude Codeは既定で自動コミットしません。Aiderのauto-commits相当の挙動が欲しい場合は、PostToolUseHookでEdit後にステージングする、またはStopHookでセッション終了時にまとめてコミットするなど、明示的なHooksの設計が必要です。

.claudeignoreを探しても見つからない」

検索してもClaude Code公式docsに.claudeignoreという名前のファイルは出てきません。これは実装されていない機能で、正しい代替はpermissions.denyです。.gitignoreはGlobツールの既定探索を変えないため、これだけでは.aiderignoreの代わりになりません。

「エディタにAI!コメントを書いてClaude Codeに拾わせたい」

Aiderには--watch-filesでリポジトリ内のファイルを監視し、# 〜 AI!// 〜 AI?のようなワンライナーコメントを検知して自動的に指示として実行する「AIコメント」機能があります。Claude Codeにファイル監視によるトリガーはなく、指示はセッション内のプロンプトとして直接渡す設計です。エディタでコメントを書いてからAiderが拾うのを待つ運用に慣れていた場合、Claude Code移行後はVS Code拡張やターミナルから直接指示を送る形に置き換わります。

「Aiderのリポジトリマップに相当する機能はあるか」

Aiderは起動時にリポジトリ全体のシンボル構造を要約した「repo map」を自動生成し、コンテキストに含めます。この設計は、Aiderで/add/dropによりチャットに含めるファイルを人が明示する運用ともセットです。Claude Codeには同名の自動生成機能や/add/dropに相当する事前登録の手順はなく、代わりにGrep / Globツールで会話の流れに応じてその都度必要な範囲を自分で探索する設計です。大規模リポジトリで探索コストが気になる場合は、CLAUDE.mdにディレクトリ構成やモジュールの役割を書いておくと、毎回の探索範囲を絞り込みやすくなります。

まとめ

AiderからClaude Codeへの移行で押さえるべき対応は次の4点です。.aiderignorepermissions.denyのRead/Editルールに、CONVENTIONS.mdCLAUDE.mdにそのままリネームでき、.aider.conf.ymlのモデル・APIキー設定はsettings.jsonと環境変数に分散します。最も体感差が大きいのは自動コミットの有無で、Aiderの「編集のたびに勝手にコミットされる」感覚は、Claude Codeでは明示的なHooks設計に置き換える前提で移行計画を立てるのが実務的です。同様に、--auto-lint / --auto-testはPostToolUseのHooksへ、リポジトリマップやAI!コメント監視のような自動検知系の機能は、CLAUDE.mdへの事前記述かセッション内の直接プロンプトへと置き換え先が変わります。AIの変更を巻き戻したい場合はgitのコミット履歴ではなくrewindメニュー(Esc2回)を使い、コミット自体の取り消しは別途gitで行う点も含め、これらを押さえておくと、移行後に「同じ動きをする機能が見当たらない」と探し続ける時間を減らせます。

この記事を共有:XはてブLinkedIn