昨日AIと解決したバグを、今日のAIはもう忘れている — その記憶を無料で取り戻すdeja-vu
Claude Codeで小一時間かけて、やっかいなJWTのリフレッシュ周りのバグを潰した。翌日、同じ現象に別のプロジェクトで出くわす。エージェントに聞くと、まっさらな顔で「まず切り分けから始めましょう」と返してくる。昨日の自分たちの結論は、どこにも残っていない。
この「セッションをまたぐと記憶が消える」問題に、真正面から取り組んだのがdeja-vuだ。GitHubで公開されているMITライセンスのOSSで、実体は依存ゼロの単一Goバイナリ。派手なSaaSではないが、コーディングにAIを使う人ほど刺さる作りになっている。
何をするものか
deja-vuの発想はシンプルだ。Claude CodeもCodexもCursorも、実はセッションのやり取りをローカルのディスクにJSONLなどで残している。deja-vuはそれを横断的にインデックス化して、あとから全文検索できるようにする。
curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh
deja install --auto
セットアップは実測20秒ほど。しかも導入前の履歴も対象になる。つまり、インストールした瞬間から「過去数か月分の作業 log」がまとめて検索可能になる。ここが地味に嬉しい。
対応する"ハーネス"は22以上。Claude Code、Codex CLI、Cursor、Copilot CLI、Cline、Gemini CLI、Goose、Qwen Code、Zedなど、主要どころはほぼ網羅している。各ツールにはMCPサーバかネイティブプラグインで繋ぐ。
LLMも埋め込みも要らない、という潔さ
意外なのは、コア機能にLLMも埋め込み(embedding)も使わない点だ。ローカルの転置インデックスとSQLiteで完結する。5.2GBのセッション群に対してインデックスは約160MB(3%)、検索は1件あたり中央値0.4msという。1,551セッションを端から検索しても0.2秒で返る、と公称している。
「記憶」というとベクトルDBに埋め込んで…という構成を思い浮かべがちだが、deja-vuはそれをやらない。だからAPIキーもクラウドも不要で、サインアップもいらない。ローカルで完結するから、社外に出せないコードのやり取りをインデックスしても外に漏れない。
そのうえで、インデックス時にAWSキー・ベアラートークン・JWT・高エントロピー文字列を自動でマスクし、[redacted:<kind>]に置き換える。ローカルとはいえ、キャッシュに生のシークレットを残さない設計になっている。ここは素直に良い判断だと思う。
使い方は「検索」だけじゃない
コマンドがなかなか気が利いている。
deja "jwt refresh token"— 履歴を全文検索deja blame <path>— そのファイルがどのセッションで話題になったかを表示deja ctx <query>— プロンプトに貼れるMarkdownダイジェストを生成deja sync ssh laptop— 別マシンへ記憶を移す
特に効くのが自動リコールとpre-actionフックだ。セッション開始時に関連する過去の文脈を自動で差し込み、ファイル編集やコマンド実行の前に「前はこう決めたよね」という判断を引っ張ってくる。人間がdejaと打つ前に、エージェント側が勝手に思い出してくれるわけだ。MCPサーバ経由でツールとして呼べるので、Claude CodeのようにフックとMCPに対応した環境なら、この自動リコールがそのまま効く。
これが効くと何が変わるか
一番大きいのは、ツールを乗り換えても記憶が引き継がれることだ。今日はClaude Code、明日は気分でCursor、という使い方をしていても、deja-vuを挟めば「あのとき決めた方針」は共通の記憶として残る。Cursorとの併用を前提にしている人には、これだけで導入する価値がある。
さらに、deja ctxで過去の決定をダイジェスト化してプロンプトに渡せるということは、長い文脈をどう節約するかという悩みにも効く。毎回長々と背景を説明し直す代わりに、必要な記憶だけを圧縮して渡せる。トークン消費とやり直しの両方が減る、というのが理屈のうえでの旨みだ。
正直な評価
万能ではない。ベンチマーク(LongMemEval-Sで85.3% hit@1など)は健闘しているが、あくまで「過去ログの中に答えがある」前提の道具だ。過去に一度も触れていない問題は当然出てこない。CLIに寄せた設計なので、ターミナルでの操作が前提なのも人を選ぶ。
それでも、「AIの記憶を月額サブスクで囲い込む」プロダクトが増えていく中で、ローカル・無料・全文自分の手元、という立ち位置は貴重だ。まずはdeja install --autoを一度走らせて、自分の過去ログがどれだけ検索できるかを見てみるといい。思っていたより多くの「昨日の自分」が眠っているはずだ。詳細はGitHubリポジトリにある。
関連記事
AIコーディングエージェントは毎朝、記憶を失う — それをSQLite1個で解決するPMB
PMBはClaude Code・Cursor・CodexにMCP経由で永続メモリを与えるローカルファーストのツール。クラウド不要でプロジェクトの決定や教訓を覚えさせる仕組み、実力、注意点を解説する。
偽のバグ報告1つでClaude Codeが乗っ取られる — 成功率85%の新攻撃と防ぎ方
Sentry経由の偽エラーでClaude Code・Cursor・Codexを乗っ取る新攻撃「Agentjacking」の仕組みと対策。成功率85%、2,388社が露出。MCP接続のリスクと具体的な防御策を解説。
AIコーディングエージェントに「今はファイルを触るな」と教える — Statewrightのステートマシン式ガードレール
AIコーディングエージェントにフェーズ別のツール制限を設けるOSS「Statewright」を解説。SWE-benchで2/10→10/10の改善効果とMCP対応の仕組み。