deja-vu는 Claude Code, Codex, opencode가 로컬에 남기는 세션 로그를 검색 가능한 에이전트 메모리로 바꾸는 단일 바이너리 도구다. 별도 모델, 서버, 벡터 DB를 띄우지 않고 기존 로그를 인덱싱해 “예전에 이 문제를 고친 적 있나”를 밀리초 단위로 찾는다.
기능
| 기능 | 설명 |
|---|---|
| Search | gigabyte 단위 세션 로그에서 키워드 검색 |
| MCP recall | 에이전트가 MCP 도구로 과거 세션을 불러옴 |
| Auto-recall | 세션 시작 hook으로 관련 기억을 자동 주입 |
| Redaction | API key, JWT, private key 등 비밀값을 인덱싱 시 제거 |
| Share | 세션 digest를 비밀값 제거 후 공유 |
| Sync | JSONL batch로 머신 간 기억 이동 |
README 기준 실제 corpus 1,250개 이상, 약 3.3GB에서 warm search 7~9ms, cold index 약 10초, 인덱스 크기 약 2.4%를 보고한다.
설치
curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh에이전트에 연결하려면 다음처럼 설치한다.
deja install --all
deja install claude-code --auto--all은 Claude Code, Codex, opencode에 MCP recall을 연결하고, --auto는 SessionStart hook으로 관련 기억을 자동 주입한다.
기존 메모리 플랫폼과 차이
Mem0, Letta, Zep은 앞으로 발생하는 대화와 이벤트를 캡처해 기억으로 만든다. deja-vu는 반대로 이미 디스크에 있는 에이전트 로그를 뒤늦게 인덱싱한다. 그래서 설치 전 몇 달 동안의 디버깅 기록도 바로 검색할 수 있다.
이 접근은 tencentdb-agent-memory처럼 계층적 장기 기억을 만드는 방식보다 단순하지만, 개발자가 체감하는 “전에 이거 해결했는데 어디였지” 문제에는 매우 직접적이다.
보안 모델
deja-vu는 인덱싱·검색 경로에 네트워크를 쓰지 않는다고 설명한다. 비밀값은 인덱스에 들어가기 전에 [redacted:<kind>] 형태로 대체되고, 공유와 sync export 단계에서도 다시 redaction을 적용한다. 원본 로그 자체는 각 에이전트 도구가 남긴 파일이므로 그대로 남아 있다.
언제 쓰면 좋은가
- 여러 에이전트 하네스를 번갈아 쓰며 프로젝트 기억이 흩어진다.
- 과거 세션에서 고친 버그, 설계 결정, 명령을 빠르게 찾고 싶다.
- 팀원에게 세션 내용을 공유하되 비밀값은 제거하고 싶다.
- 로컬 우선, zero-dependency 메모리 도구를 선호한다.
관련 문서
- tencentdb-agent-memory — 계층형 에이전트 메모리
- ai-agent-memory-tips-strategy — 기억 전략 선택
- codex — OpenAI Codex
- claude-code — Anthropic Claude Code
참고 자료
- vshulcz/deja-vu — GitHub 공식 저장소