클로드 코드, 모든 세션을 디스크에 기록 — 인덱싱 및 검색 방법

✍️ OpenClawRadar📅 게시일: May 24, 2026🔗 Source
클로드 코드, 모든 세션을 디스크에 기록 — 인덱싱 및 검색 방법
Ad

Claude Code는 처음부터 모든 세션의 추가 전용 JSONL 로그를 ~/.claude/projects/에 기록해 왔습니다. 각 줄은 역할, 타임스탬프, 내용, 도구 호출 등 구조화된 JSON 객체로, 첫 세션까지 거슬러 올라가는 완전한 에피소드 기록을 형성합니다. 한 사용자는 총 57MB, 76,000턴에 달하는 1,026개의 세션을 발견했지만, 이를 쿼리할 내장 방법은 없었습니다.

리콜 레이어 구축

해결책은 오픈소스 인덱서(continuity-v2, MIT 라이선스)로, 이 인덱서는 로그를 시간적 엣지와 함께 SQLite+FTS5에 저장하고 MCP 서버를 제공합니다. 이제 Claude Code 세션 내에서 다음 명령을 실행할 수 있습니다:

search_sessions("지난달에 그 인증 버그를 고친 기억이 나?")
recall_session("a8f2c441")
thread_recall(root_id, depth=8)

thread_recall 함수는 시간적 엣지 그래프를 BFS로 탐색하여 세션 경계를 넘나드는 스레드를 재구성합니다. 또한 인덱서는 claude.ai 데이터 내보내기의 conversations.json도 가져올 수 있어, 웹 채팅 기록이 CLI 세션과 동일한 인덱스에 저장됩니다.

Ad

압축의 하드 리셋 문제 해결

압축은 컨텍스트가 가득 차면 실행되지만, PreCompact 페이로드의 transcript_path가 후크 실행 시점에 항상 채워져 있지는 않습니다. 해결책: 모든 턴마다 체크포인트를 기록(세션 종료 시에만 기록하지 않음)하여 PreCompact가 항상 최신 데이터를 사용할 수 있도록 합니다. 그런 다음 SessionStart가 source 필드를 읽습니다 — "compact"는 압축 실행, "resume"는 앱 재시작, "startup"은 새 세션, "clear"는 의도적 초기화를 의미합니다. 각각 다른 동작을 수행합니다. 결과적으로 압축은 하드 리셋이 아닌 캐시 미스가 됩니다.

상위 논의 및 유사 프로젝트

진행 중인 논의는 anthropics/claude-code#47023에서 확인하세요. 7개의 독립적인 메모리 프로젝트(Bella, NEXO Brain, Cozempic, world-model-mcp 등)가 모두 동일한 요구 사항을 독립적으로 충족했습니다. 공식 후크 사양이 해당 이슈에서 논의되고 있습니다.

후크 설정에는 약 5분이 소요되며, MCP 서버는 단일 Python 파일입니다. 저장소는 MIT 라이선스입니다.

📖 전체 소스 읽기: r/ClaudeAI

Ad

👀 See Also