Show HN: Claude-File-Recovery – 로컬 세션 데이터에서 파일 복구하기

Claude-File-Recovery는 Claude Code의 JSONL 세션 기록(~/.claude/projects/)을 분석하여 유실된 파일을 복구하는 도구로, orjson과 병렬 처리를 통해 데이터의 약 77%를 사전에 필터링하는 고효율 스캐닝을 지원합니다. 사용자는 Python 3.10 이상의 환경에서 대화형 TUI를 통해 특정 시점(Point-in-time)의 파일 상태를 조회하거나 배치 추출을 수행할 수 있습니다.

AI 요약

Claude-File-Recovery는 Claude Code를 사용하는 개발자들이 세션 간 유실하거나 찾기 어려워진 파일을 로컬 세션 데이터를 통해 재구성할 수 있도록 돕는 유틸리티입니다. 이 도구는 ~/.claude/projects/ 디렉토리에 저장된 JSONL 형식의 세션 트랜스크립트를 파싱하여, Claude가 수행한 쓰기(Write), 편집(Edit), 읽기(Read) 작업을 순차적으로 재현합니다. 특히 성능 최적화를 위해 orjson 라이브러리와 병렬 처리를 활용하며, 단순 진행 상황이나 히스토리 스냅샷에 해당하는 라인의 약 77%를 JSON 파싱 전에 건너뛰는 고속 스캔 방식을 채택했습니다. 사용자는 대화형 TUI 환경에서 Vim 스타일의 키바인딩을 사용하여 편리하게 파일을 검색하고 변경 사항을 확인할 수 있습니다.

핵심 인사이트

  • 데이터 최적화: fast-reject 바이트 체크 기능을 통해 전체 데이터의 약 77%를 파싱 단계 이전에 걸러내어 스캔 속도를 극대화했습니다.
  • 정밀한 복구 메커니즘: tool_use_id를 활용해 Assistant의 도구 사용 요청과 User의 결과 메시지를 연결함으로써 정확한 파일 콘텐츠를 추출합니다.
  • 시점 복구 기능: --before '2025-02-20 14:00'과 같은 명령어를 통해 특정 날짜와 시간 기준의 과거 파일 상태로 되돌릴 수 있는 이진 탐색(Binary Search) 기반 복구를 지원합니다.
  • 심볼릭 링크 처리: 별칭 경로(Aliased paths)를 감지하여 표준 항목으로 병합하는 심볼릭 링크 중복 제거 기능을 제공합니다.

주요 디테일

  • 설치 및 환경: Python 3.10 이상이 필요하며, uv tool install, pipx, pip를 통해 간편하게 설치할 수 있습니다.
  • 인터랙티브 TUI: Vim 키바인딩(j, k, g, G)과 퍼지 검색(/), 스마트 대소문자 구분 기능을 갖춘 터미널 UI를 제공합니다.
  • Diff 뷰어: 파일의 변경 이력을 unified, full-context, raw 등 3가지 모드로 시각화하여 보여줍니다.
  • 배치 작업: 여러 파일을 선택(x 또는 Space)한 후 Ctrl+E 키를 눌러 한꺼번에 로컬 디렉토리로 추출할 수 있습니다.
  • 필터링 옵션: list-files --filter '*.py' --csv와 같이 특정 확장자 필터링 및 CSV 내보내기 기능을 지원합니다.

향후 전망

  • LLM 코딩 보조 도구의 필수 유틸리티: Claude Code와 같은 터미널 기반 AI 코딩 도구의 사용이 늘어남에 따라, 로컬 세션 데이터를 체계적으로 관리하고 복구하는 이와 같은 보조 도구의 수요가 증가할 것입니다.
  • 공식 기능 편입 가능성: 해당 프로젝트의 효율적인 데이터 필터링 및 복구 로직이 향후 Claude Code의 공식 기능이나 다른 AI IDE의 플러그인 형태로 흡수될 가능성이 높습니다.
Share

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...

Show HN: Claude-File-Recovery – 로컬 세션 데이터에서 파일 복구하기 | paper!