Claude Code가 지난달의 나를 기억하게 만들기: deja-vu 설치·보안 검증

  • Post last modified:2026년 09월 06일
  • Post category:기술

Claude Code·Codex·Cursor를 여러 개 쓰는 개발자라면 매일 같은 문제를 겪는다. 3월에 고쳤던 버그를 9월에 또 처음부터 디버깅하고, 다른 에이전트에서 해결했던 일을 지금 쓰는 에이전트는 전혀 모른다. 오픈소스 deja-vu는 이 간극을 메운다. 각 에이전트가 이미 디스크에 저장하는 세션 로그를 색인해서, 설치 이전 기록까지 포함해 검색·회수(recall)해 주는 로컬 메모리 레이어다. LLM 호출도 임베딩도 없고 Go 단일 바이너리로 동작하며, 색인 시점에 API 키·JWT 등 비밀값을 자동으로 가린다. 이 글은 공식 저장소와 직접 설치 검증(설치 → 색인 → 검색 → 가림 확인 → 제거)을 기준으로 정리했다. 주의점 하나: 세션 로그 전체를 읽는 도구이므로 신뢰할 수 있는 공식 릴리스(checksums.txt 검증)로만 설치해야 한다.

Claude Code 세션 로그를 색인해 과거 기록을 회수하는 deja-vu 로컬 메모리 도구
deja-vu의 문제 정의와 동작 방식 요약
출처: 직접 제작 (2026-09-06 기준 공식 저장소 정보)

핵심 요약

  • 정체: 코딩 에이전트 세션 로그 색인·검색 로컬 메모리 (MCP 서버 + CLI, Go 단일 바이너리, MIT 라이선스)
  • 해결 문제: “이 문제 예전에 해결했었는데” — Claude Code/Codex/Cursor 등 22종 에이전트의 과거 세션을 통합 검색하고 MCP recall 도구로 자동 회수
  • 차별점: mem0·CLAUDE.md 같은 기존 메모리 도구는 ‘앞으로 쌓는’ 방식, deja-vu는 ‘이미 디스크에 있는’ 과거 기록부터 색인. 임베딩·LLM 없이 어휘 검색이라 비용 0원
  • 검증: 2026-09-06 격리 HOME에서 v0.19.3 설치·색인·검색·비밀값 가림·제거 직접 확인 (sha256 체크섬 일치)
  • 주의: 세션 로그 통독 도구이므로 출처·체크섬 확인 필수. macOS·Linux가 공식 지원, Windows는 Scoop·zip으로 설치

deja-vu가 필요한 순간

에이전트는 세션을 끝내면 대부분 잊는다. Claude Code는 ~/.claude/projects에 JSONL로 대화를 쌓고, Codex는 ~/.codex에, Cursor는 자체 스토어에 기록을 남긴다. 파일은 있는데 아무도 검색하지 않는다. 결과는 반복 노동이다.

deja-vu README의 표현이 정확하다. “모든 메모리 도구는 비어 있는 상태로 시작해 앞으로 기록한다. deja는 가득 찬 상태로 시작한다.” 설치 즉시 이미 디스크에 있는 수개월치 세션을 전부 색인하기 때문에, 별도 학습 없이 첫 순간부터 과거 기록을 검색할 수 있다.

실제로 이런 질문이 가능해진다:

"jwt refresh rotation 이전에 처리한 적 있지? 기억 확인해줘"

에이전트가 MCP recall 도구를 스스로 호출해 8개월 전 세션의 해결 기록을 가져온다. deja install --auto를 켜면 세션 시작·프롬프트마다·파일 편집 전·명령 실패 후 등 훅 시점에 관련 기억을 자동으로 주입하도록 설정할 수도 있다.

기본 정보와 검증 시점

항목내용 (2026-09-06 기준)
이름·유형deja-vu — 코딩 에이전트용 로컬 메모리 (CLI + MCP 서버)
공식 저장소github.com/vshulcz/deja-vu
공식 문서vshulcz.github.io/deja-vu
최초 생성2026-07-14
최근 푸시2026-09-05 (매일 커밋·릴리스 활동 지속)
최신 릴리스v0.19.3 (2026-09-04)
stars / forks779 / 64
라이선스MIT
구현 언어Go (단일 바이너리, 의존성 없음)
지원 harness22종 — Claude Code, Codex, Cursor, Gemini CLI, opencode, aider, Antigravity, Grok Build, Qwen, Kimi, goose, cline, roo, amp, zed, OpenClaw, Copilot, Hermes 등
외부 언급Hacker News 2026-07-15 “Open-source memory for coding agents, synced over SSH” 131점·댓글 35개

stars 증가 속도는 이 스냅숏 체계로 관측 중이다. 이 도구는 2026-09-06 이번 실행에서 처음 관측해 779 stars를 기록했다. 1일·7일 증분은 아직 이력이 없어 unavailable로 표기하며, 총 stars에서 역산한 평균 속도(7월 14일 생성 이후 약 54일간 약 14.4 stars/일의 단순 평균, provisional)로만 참고한다. 확정 가능한 사실은 7월 중순 HN 131점 논의 이후 약 7주 만에 779 stars에 도달했고, 9월 4~5일에도 매일 기능 커밋·이슈 마감이 이뤄지고 있다는 유지보수 활동이다.

Claude Code·Codex·Hermes 설치 방법

공통 준비 (macOS · Linux)

curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh
deja install --auto

설치 스크립트를 직접 열어 확인한 동작은 다음과 같다. (1) GitHub 최신 릴리스 태그 조회 (2) 플랫폼별 tar.gz와 checksums.txt 다운로드 (3) sha256 비교 (4) ~/.local/bin/deja 설치 (5) PATH 등록 안내. 셸 프로필 수정은 대화형으로 y/N을 물어보고, 파이프 설치 시에는 안내 문구만 출력한다. --yes 플래그가 없으면 아무것도 강제로 바꾸지 않는다.

deja install --auto가 실제 배선 단계다. 발견한 에이전트별 MCP 설정에 recall 도구를 등록하고, 세션 시작 회수가 가능한 에이전트에서는 훅도 켠다. 이 단계가 에이전트 설정 파일을 수정하는 유일한 지점이다.

Claude Code (플러그인 마켓플레이스 방식)

claude plugin marketplace add vshulcz/deja-vu
claude plugin install deja-vu@deja-vu

Codex / 기타 MCP 클라이언트

MCP 서버로 연결한다. deja install~/.codex/config.toml에 자동 등록해 주며, 수동으로는 각 클라이언트의 MCP 설정에 deja 바이너리를 stdio 서버로 지정한다. 데스크톱 앱은 릴리스에 포함된 .mcpb 번들을 열면 된다.

Hermes

deja install이 Hermes 프로파일(~/.hermes/config.yaml)도 감지해 배선한다. 격리 검증에서 deja sources 출력에 hermes ~/.hermes/profiles 스토어가 확인됐다.

Windows

install.sh는 셸 스크립트라 지원하지 않는다. Scoop 메인 버킷(scoop install deja-vu) 또는 릴리스의 deja-vu_<버전>_windows_amd64.zip을 받아 %USERPROFILE%\.local\bin에 두고 PATH에 추가한다.

설치 시 바뀌는 경로·파일

경로용도
~/.local/bin/deja바이너리 (11.9MB)
~/.cache/deja/색인 데이터베이스·캐시
~/.config/deja/설정·제외 패턴(exclude), 신뢰 정책(policy.json)
~/.claude.json 등 각 에이전트 MCP 설정recall 도구 등록 (자동)
~/.claude/skills/deja-history/SKILL.md회수 가이드 스킬 (자동)

제거·원상복구

deja uninstall --all     # 각 에이전트에서 MCP 배선 제거 시도
rm -rf ~/.cache/deja     # 색인 데이터 완전 삭제
rm ~/.local/bin/deja     # 바이너리 삭제

deja uninstall --all은 자신이 수정한 배선을 되돌리려 시도하고, 색인 캐시는 별도 삭제가 필요하다. 원본 세션 로그(~/.claude/projects 등)는 건드리지 않는다 — 삭제해도 에이전트 기록은 그대로다.

무엇을 검증했고 무엇을 못 했나

직접 검증한 것 (2026-09-06, 격리 HOME)

  • v0.19.3 linux_arm64 바이너리 다운로드 후 sha256 체크섬 일치 확인 (checksums.txt의 855661d4…와 로컬 계산값 동일)
  • 임시 HOME에서 deja --versiondeja 0.19.3 출력
  • 가상 Claude Code 세션 JSONL 3메시지 색인 → deja index 성공 (claude: 1 session, 3 messages)
  • deja "jwt refresh" 검색 → 세션 매치·발췌 출력 정상
  • 비밀값 가림(redaction) 확인: 세션에 포함된 AWS 예제 키(AKIA…7EXAMPLE, AWS 공식 문서 예시용)를 검색했더니 색인에 없음. 색인 시점에 가려진다는 README 설명과 일치
  • deja doctor --offline, deja sources로 지원 harness 목록·MCP 배선 상태 진단 정상 동작
  • deja uninstall --all + 캐시 삭제로 임시 환경 정리. 실제 사용자 HOME은 변경 없음 확인

검증하지 못한 것

  • 실사용 환경에서의 자동 recall 품질 (수개월치 실세션 대상 성능)
  • deja sync ssh 기계 간 동기화, deja handoff 에이전트 전환
  • LongMemEval-S 85.3%·LoCoMo 69.6% 벤치마크 수치 재현 (README·공식 문서 발췌이며 제3자 검증 아님)
  • Windows 설치 경로

벤치마크 수치는 제작자 자체 측정이고 재현 스크립트가 저장소에 포함되어 있지만 이번 실행에서 돌려보지는 못했다. ‘밀리초 조회’ 성능 주장도 공식 문서 기준으로만 인용한다.

권한·보안: 숨기지 않고 정리

항목내용
데이터 처리색인·검색 전부 로컬. 네트워크 사용은 deja update, deja sync ssh, deja doctor 버전 확인뿐 (README 명시)
비밀값 가림색인 시점에 AWS 키, api_key=/token= 할당, Bearer·JWT, PEM 블록, scheme://user:pass@host, 고엔트로피 값을 [redacted:<kind>]로 치환. share·sync export에서 재적용
가림의 한계패턴 매칭 기반이라 알려지지 않은 형태의 비밀값은 통과할 수 있음 (공식 보안 모델 문서가 스스로 명시)
API 키·비용도구 자체는 무료·키 불필요. LLM·임베딩 호출이 없어 추가 비용 0
텔레메트리명시된 외부 전송 없음
공급망설치 스크립트가 checksums.txt 검사 내장. 릴리스에는 SBOM(spdx.json)·서명 파일(.pem/.sig) 동봉
접근 범위세션 로그 전체 통독이 기능의 본질 — 신뢰할 수 없는 환경의 세션까지 색인하면 안 됨. ~/.config/deja/exclude로 프로젝트 제외 가능, deja forget으로 세션 단위 삭제(묘비 기록으로 재색인 방지)

세션 로그에는 평소 에이전트에게 보낸 코드·설명이 통째로 담긴다. “읽는 도구”가 생긴다는 점 자체가 보안 의사결정이다. 회사 정책상 민감한 프로젝트는 exclude 패턴으로 처음부터 배제하는 것이 안전하다.

기존 도구와 비교: mem0·CLAUDE.md 대신 쓸 것인가

비슷한 문제(에이전트 기억)를 푸는 대표 도구와의 관계를 정리한다.

구분deja-vumem0CLAUDE.md / 메모리 파일
분류세션 로그 색인·검색벡터 메모리 레이어수동 메모 노트
입력이미 디스크에 있는 세션 로그사용 중 발생하는 대화·메모사람이 직접 작성
출력어휘 검색 매치·세션 발췌, MCP recall임베딩 기반 회수프롬프트에 주입되는 정적 텍스트
과거 기록설치 이전 전부 색인설치 이후부터작성한 내용만
추가 비용·LLM없음 (임베딩 없음)임베딩·저장소 비용 발생 가능없음
데이터 처리전부 로컬구성에 따라 외부 저장소·API전부 로컬
정확도 성격원문 그대로 인용 (수정 없음)유사도 기반 (재구성 가능)사람이 검증한 내용
에이전트 연결MCP 표준 + 22종 자동 배선SDK·API 중심Claude Code 전용 관례

분류: 보완재에 가깝다. mem0처럼 ‘앞으로 쌓는’ 시맨틱 메모리와 deja-vu의 ‘이미 있는 것을 뒤지는’ 어휘 검색은 해결 계층이 다르다. CLAUDE.md는 프로젝트 관례를 적는 자리지 과거 세션 검색 도구가 아니다. Claude Code를 쓰면서 “예전에 이거 고친 기록 어디 있지?”를 자주 겪는다면 deja-vu를 먼저 붙이고, 필요하면 시맨틱 메모리를 함께 쓰는 구성이 합리적이다.

추천하는 경우

  • Claude Code·Codex·Cursor 등 둘 이상의 에이전트를 같이 쓰며 기록이 쌓여 있는 개발자
  • 반복해서 비슷한 버그·설정 문제를 풀고, 과거 해결 이력을 못 찾아 답답한 팀·개인
  • 클라우드·임베딩 비용 없이 로컬에서만 해결하려는 경우
  • 세션 로그가 민감하지 않거나 exclude로 통제 가능한 환경

추천하지 않는 경우

  • 세션 로그에 규정상 외부 도구가 색인하면 안 되는 코드·데이터가 섞여 있고 제외 통제가 어려운 환경
  • Windows 전용 개발 환경에서 공식 install.sh 경로를 원하는 경우 (Scoop·zip 우회 필요)
  • ‘요약된 지식’을 원하는 경우 — deja-vu는 원문 회수 도구지 요약 엔진이 아니다
  • 벤치마크 수치를 근거로 도입을 결정해야 하는 조직 (제3자 검증 아직 부족)

설치 전 체크리스트

  1. 기존 세션 로그 백업: cp -r ~/.claude ~/claude-backup (필요 시)
  2. 공식 저장소·릴리스 확인: GitHub vshulcz/deja-vu Releases에서 최신 태그와 checksums.txt 확인
  3. 격리 검증 먼저: 임시 HOME에서 색인·검색 동작 확인 후 실제 환경 적용
  4. 민감 프로젝트 제외: ~/.config/deja/exclude에 경로 패턴 사전 등록
  5. 배선 범위 확인: deja doctor로 어떤 에이전트 설정이 바뀌는지 먼저 조회
  6. 제거 절차 숙지: deja uninstall --all + rm -rf ~/.cache/deja
  7. 운영 환경(실제 프로젝트 설정)에는 바로 적용하지 않고 개인 환경에서 먼저 운영

안전한 복사·붙여넣기 프롬프트

이 글을 읽은 뒤 Claude Code나 Codex에 그대로 붙여넣어 설치를 요청할 수 있다. 아래 프롬프트는 버전 고정·체크섬 확인·백업·격리 검증·제거 절차를 포함한다.

deja-vu(v0.19.3, github.com/vshulcz/deja-vu, MIT) 설치를 도와줘.
다음 절차를 정확히 지켜줘:

1. 먼저 백업: ~/.claude 디렉터리와 각 에이전트 MCP 설정 파일을
   ~/deja-install-backup-$(date +%Y%m%d)/ 로 복사해 줘.
2. 버전 고정: v0.19.3 릴리스의 linux 바이너리와 checksums.txt를 내려받고
   sha256sum으로 체크섬이 일치하는지 확인한 뒤 진행해 줘.
   최신 버전이 v0.19.3보다 높으면 먼저 알려주고 기다려 줘.
3. 격리 검증 먼저: 임시 홈(예: /tmp/deja-test)에서 deja --version,
   deja sources, 가상 세션 1건 색인·검색이 동작하는지 확인해 줘.
   실제 홈의 에이전트 설정은 아직 건드리지 마.
4. 격리 검증 결과를 보여준 뒤, 내가 승인하면 실제 환경에
   ~/.local/bin에 설치하고 deja install --auto로 배선해 줘.
   어떤 설정 파일이 바뀌었는지 하나씩 나열해 줘.
5. 보안 확인: 색인 대상에서 제외할 민감 프로젝트가 있으면
   ~/.config/deja/exclude에 추가하고, redaction 동작을
   테스트 문장으로 확인해 줘.
6. 마지막에 제거 방법을 안내해 줘:
   deja uninstall --all && rm -rf ~/.cache/deja

절대 하지 말 것: API 키·비밀 입력 요청, 운영 프로젝트 설정 변경,
체크섬 불일치 파일 실행, 백업 없이 에이전트 설정 수정.

FAQ

deja-vu는 에이전트 성능 벤치마크를 올려주는 도구인가?

아니다. 모델 성능을 바꾸는 도구가 아니라, 과거 세션에서 관련 기록을 찾아 현재 세션에 주입하는 회수 계층이다. “같은 실수를 반복하지 않게” 돕는 도구로 이해해야 한다.

임베딩 없이 어떻게 검색이 되나?

어휘(lexical) 검색과 시간 가중을 조합한 로컬 색인을 쓴다. 다중 단어는 AND, 정확 매치가 없으면 어형 변형·유사 철자로 확장한다. README 기준 조회 중앙값 약 0.4ms이며 이는 공식 문서 발췌다.

세션 로그가 크면 느려지지 않나?

수 GB 히스토리에서 밀리초 단위 조회를 목표로 설계됐다고 공식 문서에 명시돼 있다. 다만 이 수치는 제작자 측정이므로 자기 환경 규모로 검증 후 도입을 권한다.

mem0를 이미 쓰고 있는데 갈아탈 필요가 있나?

갈아탈 이유가 아니다. 둘은 보완 관계다. 이미 쌓인 과거 세션을 활용하는 건 deja-vu, 앞으로의 대화에서 시맨틱하게 기억하는 건 mem0의 영역이다.

회사 노트북에 설치해도 되나?

세션 로그 통독이 본질인 도구이므로 보안 정책부터 확인한다. 민감 프로젝트는 ~/.config/deja/exclude로 제외하고, 확실하지 않으면 보안 담당자에게 먼저 확인한다.

설치했더니 에이전트가 느려진 것 같다

deja install --auto가 켠 세션 시작 훅은 수십 밀리초 수준이라고 문서에 명시돼 있다. 그래도 부담되면 자동 배선 없이 바이너리만 두고 필요할 때 deja "<query>"로 수동 검색하는 구성도 가능하다.

공식 참고자료

  • 공식 저장소: https://github.com/vshulcz/deja-vu
  • 공식 문서: https://vshulcz.github.io/deja-vu/
  • 보안 모델 문서: https://github.com/vshulcz/deja-vu/blob/main/docs/SECURITY-MODEL.md
  • 벤치마크 페이지: https://vshulcz.github.io/deja-vu/guide/benchmarks.html
  • 릴리스 (checksums·SBOM 포함): https://github.com/vshulcz/deja-vu/releases
  • Hacker News 논의 (2026-07-15): https://news.ycombinator.com/item?id=48923111

답글 남기기