MemoryLake
すべての記事に戻る
Tutorial2026年8月3日·7 分で読了

コンテキストを失わずに Replit から Claude Code へ移行する方法 (2026)

プロトタイプはうまく機能しました。Replit でアプリの要件を説明し、エージェントが構築してデプロイするのを見守り、3人の人に見せました。そして今、それを本番用のソフトウェアにする必要があります。テスト、CI、チームがレビューできるリポジトリ、自分が制御できるターミナル。そこで、Claude Code への移行を決めます。

コードの移行自体は10分ほどで終わります。しかし、構築中に得た知見はそうはいきません。

結論から言うと、Replit の Git 連携を使えば、ファイルは GitHub にきれいに移行でき、Claude Code はそこからファイルを取り込むことができます。しかし、エクスポートする手段がないのは「推論」です。なぜウェブフックが3回リトライするのか、どのスキーマ変更が本番環境を壊したのか、リリースされたアプローチの前にエージェントが試した2つの方法は何だったのか。これらはすべて Replit のチャット内に存在しており、チャットはポータブルな成果物ではありません。このガイドでは、機械的な移行、知識の移行、そしてツールを変更するたびに知識の移行を繰り返すのを防ぐ方法について解説します。

なぜこの移行でコンテキストが失われるのか

Replit の価値は環境であり、その環境は置き去りにされる

Replit の最大の強みは、アイデアからデプロイされた URL までの距離を縮めることです。ランタイム、データベース、シークレット、デプロイ先、これらすべてが管理されています。ローカルリポジトリとターミナルエージェントに移行することで、コントロールを手に入れる代わりに、まさにこれらを放棄することになります。しかし、プロジェクトの実際の挙動の多くは、その管理された環境によって定義されており、それらの前提条件はエクスポートするコードのどこにも明記されていません。

意思決定はリポジトリではなくチャットにある

プロトタイプがどのように構築されたかを振り返ってみてください。あなたが意図を入力し、エージェントがコードを生成し、あなたがそれを修正し、その修正がメッセージになりました。リポジトリは「最終状態」を記録します。チャットは「なぜそうなったか」を記録します。リポジトリだけを移行すると、「何(what)」は維持されますが、「なぜ(why)」はログアウトしようとしているプラットフォームに残されたままになります。

Claude Code も最初はまっさらな状態から始まる

これは、ほとんどの移行ガイドが省略している部分です。Claude Code は、各セッションを履歴なしで開始します。プロジェクトのルートにある CLAUDE.md と、ユーザーレベルの ~/.claude/CLAUDE.md を読み込み、MCP 経由で接続したものにはアクセスできますが、セッションが終了すると何も残りません。これについては、why Claude Code forgets project context で説明されています。コンテキストの保存場所を変えずにツールだけを切り替えても、問題の場所が変わるだけです。

手動での移行手順

ステップ 1: コードを取り出す

可能であれば、zip ファイルではなく Replit 独自の Git 経路を使用してください。

  1. Repl 内の Version Control (Git) パネルを開きます。
  2. GitHub アカウントを連携し、リモートリポジトリを作成します。
  3. プッシュします。これ以降、双方向の同期が可能になります。Replit での変更をプッシュしたり、GitHub での変更をプルしたりできます。

接続がうまく機能しない場合は、Repl を .zip としてダウンロードし、手動で新しいリポジトリにプッシュしてください。その後、ローカルにクローンし、そのディレクトリで Claude Code を実行します。プロジェクトの履歴を移行するための Anthropic 公式の移行コマンドはありません。Claude Code プロジェクトを再配置するためのコミュニティツールはいくつか存在しますが、Replit からのエクスポートに関しては、通常の Git を使用するのがすべてです。

タブを閉じる前に、環境が何を行っていたかを把握しておきましょう。環境変数とシークレット名(値自体ではなく名前)、データベースとその接続パターン、デプロイ先、スケジュールされたジョブ、そして Replit が暗黙的に処理していたポートやビルドの設定などです。これらは、ローカルマシンで最初に壊れる前提条件です。

ステップ 2: CLAUDE.md でコンテキストを再構築する

ここからが、移行が本当に報われるかどうかを左右する部分です。Replit のチャット履歴を開き、過去2週間分を読み返しながら、次の質問を自分に投げかけてみてください。「2回以上説明しなければならなかったことは何か?」その繰り返しこそが、あなたの知識のインベントリ(目録)です。

それを CLAUDE.md に以下の3つのグループに分けて書き出します。

  • プロジェクトの全体像 (Project shape) — どのようなサービスがあるか、データモデルはどのようになっているか、何が非推奨か、Replit が行わなくなった現在のデプロイフローはどうなっているか。
  • 理由を伴う意思決定 (Decisions with reasons) — 単に「べき等キーを使用する」ではなく、「プロバイダーがリトライし、テスト中に2回二重課金が発生したため、ウェブフックにべき等キーを導入する」のように記述します。
  • 罠 (Traps) — バックフィルの前に実行しなければならないマイグレーション、失敗時に 200 を返すエンドポイント、負荷がかかると不安定になるテストなど。

個人の好みは ~/.claude/CLAUDE.md に、プロジェクトの事実はリポジトリ内のファイルに分けて保存することで、チームメンバーがあなたの個人的な習慣を引き継ぐことなく、プロジェクトに関する情報だけを継承できるようにします。

これは、何も情報がない状態から始めるよりも確実に改善されています。しかし、これには限界もあります。マークダウンファイルは「ブリーフィング(事前説明)」であり、「記憶」ではありません。大変なデバッグセッションの後にそれを更新する人はいませんし、ファイルが肥大化すると毎セッションでトークンを消費するようになります。また、その中の情報は、インシデントレビューに使用するアシスタントや、来月より安価なモデルにルーティングする予定のエージェントには届きません。

より良い方法:ツールに依存しない単一のメモリレイヤー

今回の移行で実際に生き残ったものに注目してください。それは「ファイル」です。CLAUDE.md は次の移行でも生き残ります。そして、ツールの外部に保持している他のすべてのものも同様です。これこそが、プロジェクトの知識を現在使用しているエージェントではなく、メモリレイヤーに置くべき理由です。MemoryLake はそれを一度保持すれば、Claude Code は MCP 経由でそれを読み込むことができ、将来採用する他のツールでも同様に読み込むことができます。

ステップ 1: API キーを作成する

キーを生成し、約30秒で最初のリクエストを送信します。

MemoryLake API キーの作成
MemoryLake API キーの作成

ステップ 2: 最初のメモリをアップロードする

プロジェクトのコンテキストを保持するドキュメント、画像、ファイルを投入します。先ほど作成した CLAUDE.md、ステップ1の環境インベントリ、アーキテクチャのメモ、プロトタイプ段階でのインシデント報告書、API 仕様書などです。

MemoryLake に最初のメモリをアップロードする
MemoryLake に最初のメモリをアップロードする

ステップ 3: AI とエージェントを接続する

Claude、Codex、OpenClaw、およびその他のエージェントに、MCP または API を介してそのメモリへのアクセスを許可します。クライアント固有の手順については、how to add memory to Claude Code を参照してください。これにより、新しいセッションはプロジェクトがすでにロードされた状態で開始され、次のツール変更の際には再構築ではなく、単なる接続の切り替えだけで済みます。同じパターンは、他のコーディングエージェントの移行にも適用されます:Cursor to Claude Code および GitHub Copilot to Claude Code

MCP 経由で AI とエージェントを接続する
MCP 経由で AI とエージェントを接続する

移行にかかるコストと削減できるコスト

コストを正直に見積もってみましょう。Git のエクスポートとローカルのセットアップ:1時間未満。Replit が処理していた環境の前提条件の復元:半日(そのほとんどは、エラーが発生したときに何かが足りないことに気づくプロセスに費やされます)。知識のインベントリを CLAUDE.md に書き出す:さらに半日(そして、これが唯一、将来にわたって効果が蓄積される部分です)。

次に、回避できる継続的なコストについてです。もし、あなたのプロジェクトの常時コンテキストが 2,000 トークンあり、セッションやエージェント全体で1日に20回再提示されるとすると、同じことを繰り返すために月に約 1.2M トークンを消費していることになります。さらに、セッションごとに4〜5分の再説明の時間がかかります。移行は、これを解決する最も安価なタイミングです。なぜなら、すでに一度再構築のコストを支払っているからです。選択肢は、次のツールで使えなくなるファイルに再構築するか、そうではないレイヤーに再構築するか、それだけです。

移行のためのベストプラクティス

コードだけでなく環境もエクスポートする

プロトタイプは管理された環境で動作していました。移行する前に、シークレットの名前、データベースのトポロジー、cron ジョブ、ビルド手順を書き留めておきましょう。これは「Replit では動いたのに」というバグの最も一般的な原因であり、20分あれば完全に防ぐことができます。

チャットログではなく「結論」を移行する

Replit の履歴をそのまま CLAUDE.md に貼り付けないでください。決定事項(選択肢、理由、日付)を抽出し、それらを保存します。結論は検索しやすく、書き起こし(トランスクリプト)は重要な情報を埋もれさせ、トークンを無駄に消費します。

うまくいっているなら、Replit でのプロトタイピングを続ける

多くのチームが、アイデアを迅速に検証するために Replit を使い続け、本番環境向けの堅牢化のために Claude Code を使用しています。この役割分担がうまく機能するのは、双方が同じプロジェクトメモリを読み込んでいる場合のみです。そうでない場合、2つの異なる「真実」を維持することになり、同じ罠に2回はまることになります。

結論

Replit から Claude Code への移行は、1つの名前で呼ばれる2つの移行プロセスです。1つ目は機械的な移行です。Git パネルを接続し、GitHub にプッシュし、クローンするだけで、1時間で完了します。2つ目はコストのかかる移行です。Replit が静かに処理していた環境の前提条件と、エージェントのチャットにしか存在しなかった推論プロセスです。

これら両方を、一度、意図的に再構築してください。ただし、その知識はエディタの外部にあるものに再構築してください。なぜなら、今日移行しようとしているツールは、あなたが最後に移行するツールではないからです。プロジェクトのメモリがエージェントの読み取るレイヤーに存在していれば、「移行」は「すべてを再説明すること」を意味しなくなり、「新しいクライアントを同じソースに向けること」を意味するようになります。

よくある質問

Replit プロジェクトをリポジトリに移行するにはどうすればよいですか?

Repl 内の Version Control (Git) パネルを開き、GitHub アカウントを連携し、リモートリポジトリを作成してプッシュします。これにより、以降は双方向の同期が可能になります。接続に失敗した場合は、Repl を .zip としてダウンロードし、手動で新しいリポジトリにプッシュしてから、Claude Code 用にローカルにクローンしてください。

Replit のエージェントチャット履歴を Claude Code にエクスポートできますか?

Claude Code が使用できる形式ではエクスポートできません。生の書き起こしであっても形式が適していません。Claude Code は、他のツールの会話ログではなく、指示ファイルや接続されたメモリを読み込みます。代わりに、永続的な決定事項を手動で抽出し、それらを保存してください。

Replit の組み込みコンテキストに相当する Claude Code の機能は何ですか?

プロジェクトルートの CLAUDE.md、個人の好みを設定する ~/.claude/CLAUDE.md、および MCP 経由で接続するすべてのものです。古くなった指示ファイルは、それを読み込むすべてのセッションを暗黙的に誤った方向へ導くため、リポジトリ内のファイルはコードと同じ厳格さでレビュー・管理してください。

Replit を離れた後、最も頻繁に壊れるものは何ですか?

環境の前提条件です。シークレット、データベースの接続パターン、ポート、ビルドコマンド、プラットフォームが管理していたスケジュールされたジョブなどです。失敗するたびに1つずつ発見するのではなく、移行を完了する前にこれらをインベントリ(目録)としてまとめておきましょう。

Replit の使用を完全にやめるべきですか?

必ずしもその必要はありません。Replit での迅速な検証と、Claude Code での本番作業は、合理的な役割分担です。ただ、双方が同じ事実に基づいて作業できるように、プロジェクトの知識を共有メモリレイヤーに保持するようにしてください。