deja-vu

이미 고친 문제를 코딩 에이전트가 다시 디버깅하지 않게.

Claude Code, Codex, Cursor를 비롯한 이 컴퓨터의 에이전트들은 이미 모든 세션을 디스크에 저장합니다. deja는 몇 달 전 기록까지 전부 색인하고, 지금 일하는 에이전트에게 필요한 부분을 건넵니다.

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Português | Français | Deutsch | Русский | Türkçe | हिन्दी

vshulcz/deja-vu — Trendshift

GitHub Stars CI coverage Release npm License: MIT

문서 · 벤치마크 · 비교

같은 에이전트에게 같은 질문을 두 번: 기억이 없을 때는 아무것도 모르고, deja가 있으면 8개월 전 결론으로 답한다

```sh curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh deja install --auto ```
재현율
LongMemEval-S 97.2% R@5
전체 500문항 · MemPalace 96.6%, agentmemory 95.2%
같은 19,195개 세션: 1순위 적중 19/100, 차순위 14
토큰
agentmemory의 절반 토큰
이미 해결한 작업에서 53,558 대 104,974
도구 정의는 턴당 477토큰, 7개 중 최소
색인 시간
19,195개 세션 인덱싱 13.6초
7개 도구 중 차순위: 72초
첫 응답 26ms, 검색 중앙값 97ms

deja-vu는 제가 관리하므로 모든 드라이버, 코퍼스, 채점 규칙이 이 저장소에 있습니다 · 직접 비교와 의심스러운 행을 다시 돌리는 방법 · LongMemEval 및 LoCoMo 실행 결과

## 설치 ```sh curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh deja install --auto ``` 스크립트는 바이너리를 `~/.local/bin`에 둡니다. 이 디렉터리가 아직 `PATH`에 없으면 같은 셸에서 두 번째 명령을 찾지 못합니다. 스크립트가 출력하는 전체 경로가 담긴 `next:` 줄을 실행하거나, `PATH` 줄을 추가한 뒤 새 셸을 여세요. `raw.githubusercontent.com`에 연결되지 않으면 npm 미러를 쓰세요. 버전은 같습니다: ```sh npm i -g @vshulcz/deja-vu --registry=https://registry.npmmirror.com deja install --auto ``` 설치에 10초, 색인에 10초쯤 걸립니다. 두 번째 명령은 찾아낸 모든 에이전트에 MCP recall을 연결하고, 지원하는 곳에서는 세션 시작 시 회상을 켜고, 첫 색인을 만들어 둡니다. 다음 세션이 기다릴 일이 없도록. 새 에이전트 세션을 열고 몇 달 전에 했던 일을 물어보세요: > jwt refresh rotation 전에 다뤄본 적 있나? 기억을 찾아봐 굳이 묻지 않아도 됩니다. 자동 회상을 켜 두면 세션이 열리는 순간 에이전트는 이 프로젝트에서 무엇을 해결했는지 이미 알고 있습니다. 직접 찾아보려면 `deja`를 실행하세요. opencode, DeepSeek Harness, Zed, Kimi Code, Codex CLI, Grok Build, OpenClaw, pi, Hermes는 각자의 생태계에 패키지가 있습니다. 확장을 그쪽에서 설치하는 데 익숙하다면: ```sh opencode plugin opencode-deja dsh plugin --profile web add dsh-deja # Zed: 확장 패널에서 deja 검색 # Kimi Code: /plugins install https://github.com/vshulcz/deja-vu # Codex CLI: codex plugin marketplace add https://github.com/vshulcz/deja-vu && codex plugin add deja-vu@deja-vu # Grok Build: grok plugin marketplace add vshulcz/deja-vu && grok plugin install deja openclaw plugins install clawhub:@vshulcz/openclaw-deja && openclaw config set plugins.entries.deja-vu.hooks.allowConversationAccess true pi install npm:@vshulcz/pi-deja hermes plugins install deja-memory ``` `deja install --auto`가 위의 것들을 알아서 연결하므로 두 경로 중 하나면 충분합니다. 둘 다 써도 문제없습니다. 각 패키지는 `deja install`이 써 둔 것을 읽고 빠진 부분만 채우므로, 도구가 중복 등록되거나 회상이 두 번 일어나지 않습니다. 자세한 내용은 [`extensions/`](../../extensions)에 있습니다. 같은 검색이 skill로도 존재해서, `SKILL.md`를 읽는 에이전트라면 어디든 설치할 수 있습니다: ```sh npx skills add https://github.com/vshulcz/deja-vu --skill deja-search # skills CLI: Claude Code, Cursor, Goose, Copilot… openclaw skills install @vshulcz/deja-search # ClawHub hermes skills install vshulcz/deja-vu/skills/deja-search # Hermes ``` skill은 이미 설치된 `deja` 바이너리를 호출하며, 자체 바이너리를 들고 다니지 않습니다. 다른 설치 방법: `brew install deja-vu`, `go install github.com/vshulcz/deja-vu/cmd/deja@latest`, 또는 아무것도 설치하지 않고 먼저 써 보려면 `npx @vshulcz/deja-vu "검색어"`. Windows에서는 설치 스크립트가 `unsupported OS`로 끝납니다. shell 스크립트이기 때문입니다. `scoop install deja-vu`(Scoop 기본 main 버킷에 있습니다)나 `winget install vshulcz.deja-vu`를 쓰거나 [최신 릴리스](https://github.com/vshulcz/deja-vu/releases/latest)에서 `deja-vu__windows_amd64.zip`을 받아 `deja.exe`를 `PATH`에 두세요. 바이너리 하나만으로도 온전한 설치입니다. 색인, 검색, `show`, `ctx`, `blame`, `--json`, 비밀정보 제거는 다른 무엇도 필요로 하지 않습니다. `deja install`이 하는 일은 MCP를 에이전트에 연결하고 세션 시작 회상을 켜는 것입니다. 있으면 좋지만 선택 사항입니다. ## 직접 검색하기 터미널에서 인자 없이 `deja`를 실행하면 모든 에이전트의 기록을 검색하는 화면이 열립니다. 아직 커밋하지 않은 변경 뒤에 있는 세션부터 보여 주고, 그다음 이 프로젝트의 최근 세션이 이어지며, 입력할수록 목록이 좁혀집니다.

deja 화면에서 검색어를 입력하고, 찾은 세션을 읽고, 그 세션을 다른 에이전트에서 이어가는 모습

- `↑↓`로 세션을 고르고, `↵`로 일치한 곳에서 열고, `n`과 `N`으로 일치 항목 사이를 오가며, `esc`로 돌아갑니다. 세션 안에서는 `/`로 단어를 찾고, `]`와 `[`로 내가 한 질문 사이를 오갑니다. - 검색창은 필터도 받습니다. 콜론을 붙인 에이전트(`codex:`), `today`, `yesterday`, `week`, `month`, `in:`입니다. - `r`은 세션을 작성한 에이전트에서 재개합니다. `o`는 다른 아무 에이전트에서 이어가며, 그 에이전트는 세션이 무엇을 물었고 무엇을 결정했고 무엇을 남겨 두었는지를 갖고 시작합니다. - `tab`은 이 프로젝트, 모든 프로젝트, Deleted 사이를 전환합니다. Deleted는 에이전트가 지웠지만 deja가 아직 가진 세션이고, `R`로 하나를 되돌려 놓습니다. - `?`는 모든 키를 보여 주고, `^k`에는 나머지(세션 id나 프로젝트 경로 복사, 세션 잊기)가 있으며, 목록에서 `q`는 종료하고, `esc`는 한 단계 뒤로 가며 검색창이 비어 있으면 종료합니다. `DEJA_TUI=0`이면 화면 대신 텍스트 요약을 출력하며, `deja brief`와 같은 내용입니다. 파이프로 연결하면 무엇이 색인되었는지와 다음에 실행할 명령을 출력합니다. ## 무엇을 얻나 **Codex에서 해결하면 Claude가 기억합니다.** 마흔한 개의 코딩 에이전트가 모든 대화를 로컬 파일에 쓰고, deja는 그 파일들을 모두가 읽을 수 있는 하나의 기억 계층으로 바꿉니다. | | | | --- | --- | | **과거로 향하는 검색** | `deja "connection pool exhausted"`는 deja를 설치하기 이전 것까지 포함해 수 기가바이트를 훑습니다. 자연어 질문은 관련도 모드로 넘어갑니다. 시간은 힌트이지 필터가 아닙니다. | | **에이전트를 넘는 회상** | MCP의 `deja` 도구는 `recall` 모드로, 어느 에이전트에서든 "이건 3주 전에 고쳤다"고 답합니다. 그때 누가 고쳤든 상관없이. | | **압축 이후에도 남습니다** | 43번의 컨텍스트 압축에서 측정: 요약은 결정의 77%와 실행한 명령의 0.2%를 지켰습니다. 나머지 99.8%는 deja가 돌려줍니다. Claude Code와 Codex에서는 압축이 시작되는 순간 deja가 작업, 파일, 명령을 적어 두고 압축이 끝난 뒤 한 번 돌려줍니다. | | **행동하는 바로 그 순간의 회상** | 에이전트가 파일을 고치거나 명령을 실행하기 직전에 `PreToolUse` 훅이 이 파일에 대한 이전 결정, 이 명령이 실제로 통하는 형태, 또는 이 컴퓨터에 아예 없는 프로그램을 말해 줍니다. 명령이 실패하면 `PostToolUse` 훅이 이 컴퓨터에서 같은 오류 뒤에 무엇을 실행했는지 보여 줍니다. 에이전트가 스스로 묻지 않는 바로 그 한 쌍입니다. | | **말이 아니라 작업을 색인합니다** | 각 턴에서 연 파일, 실행한 명령과 종료 코드, 편집이 대체한 정확한 조각. 어떤 요약이든 놓치는 부분이 바로 그것입니다. | 그 밖에: `deja promote --state rejected`는 뒤집힌 결정을 표시하고, 이후 모든 검색 결과에 시도했다가 기각되었음이 함께 나옵니다. 검색 결과는 "이 세션이 다룬 파일 4개가 그 뒤 변경됨"을 알리고, 판단할 수 없을 때는 말하지 않습니다. `deja sync ssh laptop`은 기계 사이에서 기억을 옮기며, 추가만 할 뿐 중간에 클라우드가 없습니다. `deja handoff --to codex`는 현재 컨텍스트를 묶어 다른 에이전트에서 이어가게 합니다. 알려진 형태의 키, 토큰, JWT, 개인 키 블록은 색인 시점에 제거됩니다. 다만 패턴 매칭은 비밀정보 탐지기가 아니라서 모르는 형태는 지나갈 수 있습니다. ### 자기 작업을 그려 보기 `deja stats --card`는 터미널에 바로 그립니다. 파일 이름을 주면 프로필 README에 넣을 SVG를 씁니다. 다른 곳에 올리려면 [PNG로 변환](https://vshulcz.github.io/deja-vu/card/)하세요. 변환은 여러분 브라우저 안에서 일어납니다.

deja 통계 카드: 1년치 세션 히트맵, 어느 에이전트에서 왔는지, 가장 길었던 세션

전체 기능 레퍼런스는 [문서 사이트](https://vshulcz.github.io/deja-vu/)에 있습니다. ## 프라이버시 색인과 검색은 로컬에서 일어납니다. 네트워크를 쓰는 것은 `deja update`, `deja sync ssh`, `deja doctor` 안의 버전 확인, 여러분이 지정한 엔드포인트로 가는 `deja embed`(시맨틱 사이드카를 만든 뒤에는 검색할 때마다 쿼리를 그 엔드포인트로 보냄), 그리고 대화형 명령이 하루 한 번 최신 릴리스를 확인하는 것뿐입니다. 이 확인은 세션 데이터를 보내지 않으며, `DEJA_OFFLINE=1` 또는 `DEJA_NO_UPDATE_NOTICE=1`로 끌 수 있습니다. 자격 증명은 색인 시점에 제거됩니다. AWS 키, `api_key=`와 `token=` 대입, bearer 토큰과 맨 JWT, PEM 개인 키 블록, 각 제공자의 토큰, `scheme://user:pass@host` 형태의 URL, 어떤 규칙에도 걸리지 않는 고엔트로피 값, 그리고 산문 속에 쓰인 비밀번호("the admin password is …"처럼 기댈 구분자가 없는 경우)까지. 값은 `[redacted:]`가 되고 주변 텍스트는 그대로 검색됩니다. `deja share`와 `deja sync export`는 내보낼 때 한 번 더 제거합니다. 패턴 매칭은 비밀정보 탐지기가 아닙니다. 규칙이 모르는 형태는 그대로 지나갈 수 있습니다. 보안 모델을 참고하세요. `deja forget`은 세션을 재구축된 색인에서 빼고 묘비를 남기므로, 이후의 `deja index`가 원본 기록에서 되살리지 못합니다. [보안 모델](../../docs/SECURITY-MODEL.md)에 데이터 흐름, 제거의 경계, 신뢰 가정, 릴리스 검증이 적혀 있습니다. ## 명령줄 터미널에서 인자 없는 `deja`는 [검색 화면](#직접-검색하기)을 엽니다. 검색어나 아래 명령을 주면 결과를 출력하고 끝납니다: ```text $ deja "jwt refresh token" [claude] api · Jul 8 · 8f31c0a9 — 2 matches login started failing after refresh token rotation; jwt kid mismatch in tests fixed by reloading jwks cache after rotateKey and adding a clock-skew test [codex] web · Jul 1 · b77d91e2 — 1 match refresh token cookie needed SameSite=Lax in local callback flow ``` | 명령 | 하는 일 | | --- | --- | | `deja <검색어>` | 전체 기록을 검색합니다. 여러 단어는 AND이고 따옴표는 연속된 문구를 요구하며, 정확히 맞는 것이 없으면 어형과 비슷한 철자를 시도합니다. | | `deja` | 터미널에서는 위의 전체 화면 검색. `deja brief`는 대신 텍스트 요약을 출력합니다: 오늘의 세션, deja가 건넨 것, 최근 작업, 시도해 볼 검색어. | | `deja wip` | 이 디렉터리의 지난 세션이 무엇을 하고 있었는지: 작업, 결론, 손에 들고 있던 파일, 마지막 명령과 그것이 실패했는지. 전부 기록에서 도출하며 누가 메모를 남겼는지에 기대지 않습니다. | | `deja blame <경로>[:줄]` | 어떤 세션이 이 파일을 논의했고 무엇을 왜 결정했는지. 줄 번호를 주면 그 줄을 마지막으로 바꾼 커밋과, 그 줄이나 그 커밋이 바꾼 텍스트를 쓴 세션을 보여 줍니다. | | `deja files <주제>` | 반대 방향: 어떤 주제의 작업이 실제로 건드린 파일들. | | `deja how <도구>` | 이 컴퓨터에서 그 일을 실제로 어떻게 실행하는지, 에이전트가 이전에 돌린 명령에서 가져온 진짜 인자와 함께. | | `deja fix <오류>` | 이 컴퓨터에서 같은 오류 뒤에 무엇을 실행했고, 그 뒤 오류가 다시 나타나지 않았는지. merge, force push, 삭제는 내놓지 않습니다. | | `deja friction` | 서로 다른 세션 셋 이상에서 나온 오류와, 어느 도구에서 왔는지. | | `deja ctx <검색어>` | 가장 잘 맞는 결과의 Markdown 요약. 그 세션이 바꾼 코드도 담고, 프롬프트에 바로 넣을 수 있습니다. | | `deja resume ` | 찾은 세션을 원래의 도구에서 다시 엽니다. | | `deja view` | 기억 전체를 로컬 HTML 파일 하나로 내보냅니다. 서버가 없고 데이터는 기계를 떠나지 않습니다. | | `deja doctor [--deep]` | 자가 점검. `--deep`이면 원본 파일로 색인을 검증합니다. | | `deja mcp` | stdio MCP 서버. `deja install`이 연결하는 바로 그것입니다. | 전체 레퍼런스는 [명령 문서](https://vshulcz.github.io/deja-vu/guide/commands.html)에 있습니다. ### MCP 도구 서버는 `deja` 하나만 노출하고 `mode` 인자로 기능을 고릅니다: `recall`, `context`, `blame`, `fix`, `how`, `orient`, `remember`, `handoff`. `deja install`이 알아서 연결하므로 에이전트를 수동으로 설정할 때만 신경 쓰면 됩니다. 이전의 여섯 도구 이름은 이미 연결된 클라이언트에서 계속 동작합니다. 일곱이 아니라 하나인 것은 취향이 아니라 비용 문제입니다. 연결된 MCP 서버는 요청마다 도구 정의를 함께 보내므로, 에이전트가 무엇을 호출했든 안 했든 매 턴 그 값을 냅니다. 여기서는 477 토큰이고, 측정한 일곱 개 서버 중 가장 큰 것은 8,283입니다. deja 자신도 스키마를 모드가 있는 하나의 도구로 줄이기 전에는 828이었습니다. ## 지원하는 도구 자동 회상을 켜면 Claude Code와 Codex는 압축이 시작될 때 현재 기록을 deja에 넘기고, deja는 요약이 곧 잃을 것을 남깁니다. 작업, 결론, 파일, 각 명령이 어떻게 끝났는지, 무엇이 아직 남았는지. 같은 세션, 같은 작업 디렉터리의 다음 훅이 그것을 4 KB를 넘지 않는 한 덩어리로 돌려주고, 저장소가 그 뒤 바뀌었는지 한 줄로 덧붙입니다. `deja stats`는 압축과 첫 편집 사이의 도구 호출 수를 세는데, 이 기능은 그것으로 측정했습니다. 자세한 내용은 [압축 이후 자동 복구](../../docs/compaction.md)에 있습니다. Claude Code · Cline · Codex CLI · opencode · aider · Gemini CLI · Cursor · Antigravity · Grok Build · Hermes · Goose · Qwen Code · Kimi Code · pi · omp (Oh My Pi) · OpenClaw · Copilot CLI · VS Code Copilot Chat · Amp · prime-agent (PrimeIntellect) · Roo Code · Continue · Crush · DeepSeek Harness · Cherry Studio · Senpi · gajae-code · Kimchi Coding · Command Code · ZCode · CodeWhale · Reasonix · Kiro · Kilo Code · CodeBuddy Code · TRAE CLI · Muse Code · Junie · JetBrains AI Assistant · Devin CLI · Windsurf / Devin Desktop · MiniMax Code · Zed. 각 도구가 MCP 회상, 자동 회상, skill, 명령, resume, handoff 중 무엇을 지원하는지는 [영문 README의 기능 표](../../README.md#supported-harnesses)에 있습니다. 저장 위치를 바꿨다면 `DEJA_*_ROOT` 변수로 지정하고, 각 도구 자체의 마이그레이션 변수도 존중합니다. ### 자체 패키지가 있는 에이전트 `deja install --auto`는 아래 것들도 다른 도구와 똑같이 연결하며, 그게 언제나 가장 짧은 길입니다. 동시에 각자의 생태계에 패키지가 있어서, 확장을 그쪽에서 설치하는 사람에게 편합니다: | 에이전트 | 패키지 | 설치 | | --- | --- | --- | | opencode | npm `opencode-deja` | `opencode plugin opencode-deja` | | DeepSeek Harness | npm `dsh-deja` | `dsh plugin --profile web add dsh-deja` | | Zed | `deja-context-server` | Zed → Extensions → deja | | Kimi Code | 플러그인 `deja` | `/plugins install https://github.com/vshulcz/deja-vu` | | Codex CLI | 플러그인 `deja-vu` | `codex plugin marketplace add https://github.com/vshulcz/deja-vu` 다음 `codex plugin add deja-vu@deja-vu` | | Grok Build | 플러그인 `deja` | `grok plugin marketplace add vshulcz/deja-vu` 다음 `grok plugin install deja` | | OpenClaw | ClawHub와 npm `@vshulcz/openclaw-deja` | `openclaw plugins install clawhub:@vshulcz/openclaw-deja` | | pi (그리고 omp) | npm `@vshulcz/pi-deja` | `pi install npm:@vshulcz/pi-deja` | | Hermes | Hermes 플러그인 카탈로그의 메모리 공급자 `deja-memory` | `hermes plugins install deja-memory`, 또는 GitHub에서: `hermes plugins install vshulcz/deja-vu/extensions/hermes` | 어느 쪽이든 하나면 충분하고 둘 다 해도 탈이 없습니다. 각 패키지는 먼저 `deja install`이 써 둔 설정을 읽습니다. opencode, dsh, OpenClaw는 빠진 부분만 채우고, Kimi, Grok, Codex, pi는 설치기가 이미 연결했다면 물러섭니다. Zed에서는 양쪽이 같은 server id를 씁니다. 그래서 설치 순서는 상관없습니다. 모두 여러분이 이미 설치한 deja를 사용하며, 패키지 안에 든 것은 대비책일 뿐입니다. ## 선택적인 의미 기반 회상 `DEJA_EMBED_URL`로 `deja embed`를 로컬 Ollama, LM Studio 또는 OpenAI 호환 엔드포인트에 가리키면 다른 표현으로 물어도 걸립니다. 쓸 수 있는 런타임이 없으면 어휘 검색과 MCP 회상은 평소대로 동작합니다. ## 근거

이 컴퓨터가 이미 해결한 작업에서 토큰 58% 절감 · LongMemEval-S(470문항 정제 세트)에서 hit@1 88.9% · LoCoMo에서 71.9% · 수 기가바이트 기록을 밀리초 단위로 조회
한쪽당 11회 실행: 53,558 토큰 대 아무것도 연결하지 않았을 때의 126,222, 이후 빌드에서 다시 11회 실행: 103,443 대비 52,815 · 작업 하나를 끝내는 비용 · 검색 평가 하네스 두 개 모두 이 저장소에 있고 공개 데이터셋에서 몇 분이면 돕니다 · 숫자를 직접 확인하세요

```sh deja bench recall # 랭킹 회귀의 하한: 질의 100개, 절반은 러시아어, 회상이 떨어지면 CI 실패 deja bench context # 시드가 있는 작업 사슬 30개와 음성 대조군 5개 deja bench block # 넘겨준 텍스트 조각에 답이 남아 있는지 deja bench prompt # 프롬프트별 훅이 언제 말하고 언제 잘못 말하는지 deja bench ingest # 색인 갱신 한 번의 비용: 변화 없음, 한 턴 추가, 기록 파일 하나 추가, 파일 전체 재작성 deja bench read # 데이터베이스 기반 저장소를 읽는 비용과, 긴 값 하나가 거기에 미치는 영향 ``` 컨텍스트 실험은 deja 회상을 전체 기록, 단순 grep, 콜드 스타트와 비교합니다. 기본 시드에서: | 방식 | 토큰 중앙값 | 커버리지 중앙값 | 음성 대조군 토큰 | | --- | ---: | ---: | ---: | | deja-recall | 1,096 | 1.00 | 0 | | full-history | 80,547 | 1.00 | 78,145 | | naive-grep | 273,238 | 1.00 | 0 | | cold | 0 | 0.00 | 0 | 원본 로그를 직접 grep할 때와 같은 사실 커버리지를 약 250배 적은 토큰으로 냅니다. 전체 재생으로 찾은 세션보다 약 70배 적고, 관련 기록이 없는 사슬에는 아무것도 주입하지 않습니다. 코퍼스 생성기와 관련도 라벨링은 평범하게 읽을 수 있는 Go 코드입니다. 어떤 숫자든 믿기 전에 거기서 "관련 있음"을 어떻게 정의했는지 먼저 보세요. 우리 숫자도 포함해서. 실제 저장소에서 측정: 세션 2,419개, 메시지 179k개, 기록 1.9 GB. | 지표 | 결과 | | --- | --- | | 프로세스 안 질의 | 중앙값 **0.7–0.8 ms**, LongMemEval-S 건초더미에서는 약 15 ms | | `deja <검색어>` 전 구간 | 이 저장소에서 중앙값 약 0.2 s: 프로세스 시작, 모든 저장소 신선도 확인, 랭킹, 출력 | | 신선도 확인만 | 변화가 없을 때 약 50 ms | | 색인 크기 | 200 MB, 코퍼스의 약 10% | 색인은 증분입니다. 세션 파일이 길어지면 그 파일 하나만 다시 읽습니다. ## 작동 방식 `~/.cache/deja`에 있는 로컬 역색인입니다. JSONL과 SQLite 저장소를 파싱하고, 자격 증명을 제거하고, `records.bin`과 단어 버킷을 쓰고, 각 파일의 상태를 `manifest.gob`에 기록하므로 다시 실행하면 바뀐 것만 가져옵니다. MCP 서버, 통계, share, sync가 모두 같은 색인을 읽습니다. 자세한 내용은 [docs/ARCHITECTURE.md](../../docs/ARCHITECTURE.md)에 있습니다. ## 자주 묻는 질문
다른 기억 도구와 무엇이 다른가요? | | deja | 기억 플랫폼
(Mem0, Letta, memU) | 세션 검색
(cass) | | --- | :-: | :-: | :-: | | 설치 이전의 작업을 안다 | 예 | 아니요 | 예 | | 수집 단계가 필요하다 | 아니요, 기록 자체가 기억 | 에이전트나 여러분 코드가 사실을 쓴다 | 아니요 | | LLM 또는 임베딩 키가 필요하다 | 아니요 | 예 | 선택 | | 묻지 않아도 회상한다 | 세션 시작 시, 그리고 도구 실행 직전 | 아니요 | 아니요 | [전체 비교](https://vshulcz.github.io/deja-vu/guide/compare.html)에서 열다섯 개를 다룹니다.
에이전트가 느려지나요? 회상 한 번은 로컬 색인에 대한 어휘 질의입니다. 중앙값 0.7–0.8 ms이고 모델을 기다리는 것은 없습니다. 훅은 프로세스 시작과 저장소 신선도 확인을 더하는데, 세션 19k개 색인에서 프롬프트마다 도는 훅은 중앙값 107 ms입니다.
Claude Code 세션 기록은 어디 있고 검색할 수 있나요? `~/.claude/projects` 아래, 세션마다 JSONL 파일 하나입니다. Codex는 `~/.codex/sessions`, Cursor는 SQLite의 `state.vscdb`입니다. deja는 그것들을 제자리에서 읽습니다. 인자 없는 `deja`는 검색하고 읽는 화면을 열고, `deja search`는 스크립트에서 같은 일을 하며, `deja last`는 에이전트별 최근 세션을 보여 주며, `deja view`는 전체 기록을 로컬 페이지 하나로 엽니다. 도구별 경로는 [세션이 저장되는 곳](https://vshulcz.github.io/deja-vu/guide/where-sessions-are-stored.html)에 있습니다.
Claude Code 세션 기록이 사라졌는데 잃어버린 건가요? Claude Code는 30일이 지난 기록을 지웁니다 (`~/.claude/settings.json`의 `cleanupPeriodDays`). `claude --resume`은 남은 것만 보여 줍니다. 정리 전에 deja가 색인한 세션은 파일이 사라진 뒤에도 검색됩니다. 자세한 내용은 [디스크의 세션 파일](https://vshulcz.github.io/deja-vu/guide/session-files-on-disk.html)에 있습니다.
전부 지우려면? ```sh deja uninstall --all rm -rf ~/.cache/deja ~/.local/share/deja ~/.config/deja ``` 인덱스는 `~/.cache/deja`, `remember`와 `promote` 노트는 `~/.local/share/deja`, 규칙과 제외 목록, 훅 런처는 `~/.config/deja`에 있습니다(`XDG_DATA_HOME`과 `XDG_CONFIG_HOME`이 설정되어 있으면 그 아래. Windows에서는 노트가 `%AppData%\deja`에 있습니다).
## 가이드 기능이 아니라 상황에 따라 썼습니다: - [코딩 에이전트는 이전 대화를 기억할까?](https://vshulcz.github.io/deja-vu/guide/does-my-agent-remember.html) — 각 에이전트가 세션 사이에 무엇을 남기고 무엇을 잃는지 - [디스크의 세션 파일](https://vshulcz.github.io/deja-vu/guide/session-files-on-disk.html) — `~/.claude/projects`가 얼마나 커지고 지우면 무엇을 잃는지 - [에이전트가 방금 컨텍스트를 잃었다](https://vshulcz.github.io/deja-vu/guide/lost-context.html) — 크래시 후, 초기화 후, 또는 세션이 비어서 돌아왔을 때 - [컨텍스트 창이 가득 찼다](https://vshulcz.github.io/deja-vu/guide/context-window-full.html) — 압축이 실제로 무엇을 지키는지, 측정과 함께, 그리고 대신 무엇을 할 수 있는지 - [어제 세션을 이어서](https://vshulcz.github.io/deja-vu/guide/resume-a-session.html) — 모든 에이전트에서 찾아내 원래 도구에서 열기 - [에이전트가 이미 고친 실수를 또 했다](https://vshulcz.github.io/deja-vu/guide/repeated-mistakes.html) - [그걸 해결한 세션 찾기](https://vshulcz.github.io/deja-vu/guide/find-a-session.html) - [에이전트가 세션 사이에 잊는 이유](https://vshulcz.github.io/deja-vu/guide/forgetting.html) · [각 에이전트가 기록을 두는 곳](https://vshulcz.github.io/deja-vu/guide/where-sessions-are-stored.html) - [압축이 잃는 것](https://vshulcz.github.io/deja-vu/guide/after-compaction.html) · [에이전트 바꾸기](https://vshulcz.github.io/deja-vu/guide/switching-agents.html) · [에이전트가 한 일 감사하기](https://vshulcz.github.io/deja-vu/guide/auditing-agents.html) · [대화 내보내기](https://vshulcz.github.io/deja-vu/guide/export-conversations.html) · [기계 사이에서](https://vshulcz.github.io/deja-vu/guide/sync-across-machines.html) · [기억에 드는 토큰 비용](https://vshulcz.github.io/deja-vu/guide/token-cost.html) 도구별: [opencode](https://vshulcz.github.io/deja-vu/guide/memory-for-opencode.html) · [Zed](https://vshulcz.github.io/deja-vu/guide/memory-for-zed.html) · [Grok Build](https://vshulcz.github.io/deja-vu/guide/memory-for-grok.html) · [Gemini CLI](https://vshulcz.github.io/deja-vu/guide/memory-for-gemini.html) · [OpenClaw](https://vshulcz.github.io/deja-vu/guide/memory-for-openclaw.html) · [Goose](https://vshulcz.github.io/deja-vu/guide/memory-for-goose.html) · [Cline](https://vshulcz.github.io/deja-vu/guide/memory-for-cline.html) · [pi와 omp](https://vshulcz.github.io/deja-vu/guide/memory-for-pi.html) · [Hermes](https://vshulcz.github.io/deja-vu/guide/memory-for-hermes.html) ## 개발 `make build test lint` 다음 [CONTRIBUTING.md](../../CONTRIBUTING.md)를 보세요. 새 도구는 [파서 레지스트리](../../docs/ARCHITECTURE.md#source-parsers)에서 시작합니다. 우선순위와 하지 않을 일은 [ROADMAP.md](../../ROADMAP.md)에 있습니다. ## 라이선스 MIT © [Vladislav Shulcz](https://github.com/vshulcz) ⭐ [Star deja-vu on GitHub](https://github.com/vshulcz/deja-vu)