lore
lore
Claude Code 대화 전반에 걸친 의미론적 검색 도구입니다. 모든 프로젝트, 모든 세션, 모든 브랜치에서 이전에 나눈 대화 내용을 무엇이든 찾아보세요.
주요 기능
하이브리드 검색 (벡터 + 키워드) multilingual-e5-small 임베딩과 FTS5/BM25를 Reciprocal Rank Fusion(RRF)으로 결합했습니다. 의미와 정확한 용어 모두를 기반으로 결과를 찾습니다.
완전 로컬, API 키 불필요 모든 작업이 사용자 기기에서 실행됩니다. 임베딩을 위한 ONNX Runtime과 저장을 위한 sqlite-vec을 사용합니다. 기기 밖으로 데이터가 유출되지 않습니다.
세션 종료 시 자동 인덱싱 SessionEnd 훅을 통해 새로운 세션을 백그라운드에서 자동으로 인덱싱합니다. 수동으로 트리거할 필요가 없습니다.
백그라운드 인덱싱 수동 인덱싱 트리거는 즉시 반환됩니다. 작업하는 동안 진행 상황을 모니터링하세요. 인덱싱이 진행되는 동안 이미 완료된 항목은 즉시 검색할 수 있습니다.
기본 옵트아웃(Opt-out) 방식 모든 프로젝트가 자동으로 인덱싱됩니다. 원하지 않는 프로젝트는 제외할 수 있습니다. 별도의 등록이 필요 없습니다.
대화 인식 청킹(Chunking) 임의의 토큰 단위가 아닌 논리적 턴(사용자 질문 + 전체 어시스턴트 응답 체인)으로 분할합니다. 도구 사용 체인, 사고 블록, 다단계 상호작용을 정확하게 처리합니다.
100개 이상의 언어 지원 한국어, 일본어, 중국어, 영어 등 90개 이상의 언어를 지원합니다. 정확한 청킹을 위해 CJK(한중일) 인식 토큰 추정 기능을 제공합니다.
빠른 시작
Claude Code에 추가
# No install needed — always runs latest version
claude mcp add -s user lore -- npx getlore
# Or for a single project only
claude mcp add -s project lore -- npx getloreOpenAI Codex CLI에 추가
# No install needed
codex mcp add lore -- npx getlorenpm install -g getlore
# Then register with your tool:
claude mcp add -s user lore -- getlore # Claude Code
codex mcp add lore -- getlore # Codex CLI
# Manage your install:
getlore --version # Check installed version
getlore update # Update to latest사용법
연결되면 AI가 lore의 도구를 직접 사용할 수 있습니다:
You: "What did we discuss about auth refactoring last week?"
Claude: [calls lore search] Found 3 relevant conversations...
In your "my-webapp" project on March 15, you decided to...최초 설정:
Index --
index()는 모든 프로젝트를 자동으로 스캔하며 백그라운드에서 실행됩니다.Search -- 과거 대화에 대해 무엇이든 질문하세요.
Exclude (선택 사항) -- 불필요한 프로젝트를 숨깁니다.
도구
도구 | 목적 |
| 인덱싱에서 프로젝트 제외/포함 (옵트아웃 모델) |
| 백그라운드 인덱싱 시작. 제외되지 않은 모든 프로젝트 대상. 모드: |
| 인덱싱 진행 상황, 예상 완료 시간, 건너뛰기 사유, DB 상태 확인 |
| 대화 전반에 걸친 의미론적 + 키워드 검색 |
| 검색 결과와 주변 대화 내용을 함께 확장하여 확인 |
| 프로젝트별로 인덱싱된 세션 탐색 |
개발 배경
Claude Code는 모든 대화를 ~/.claude/projects/에 JSONL 기록으로 저장합니다. 몇 주가 지나면 수십 개의 프로젝트에 걸쳐 수백 개의 세션이 쌓이게 됩니다. 아키텍처 결정, 디버깅 세션, 코드 리뷰, 디자인 탐색 등에 대한 논의들이 포함되어 있죠.
하지만 이를 검색할 방법이 없습니다. "인증 미들웨어에 대해 어떤 접근 방식을 취했지?" 또는 "데이터베이스 마이그레이션 논의가 있었던 프로젝트가 어디지?"와 같은 질문을 할 수 없습니다.
기존 도구들은 클라우드 API가 필요하거나, 좀비 프로세스를 생성하거나, 대화를 일반적인 문서로 취급합니다. lore는 Claude Code 세션을 위해 특별히 제작되었습니다. 턴 경계, 도구 사용 체인, 사고 블록을 이해합니다. Node.js 외에 다른 의존성 없이 완전히 로컬에서 실행됩니다.
작동 원리
~/.claude/projects/*/*.jsonl
|
JSONL Parser (extracts user/assistant messages, skips noise)
|
Turn-pair Chunker (groups by logical conversation turns)
|
Transformers.js (multilingual-e5-small, INT8 quantized, 384d)
|
sqlite-vec + FTS5 (hybrid vector + keyword storage)
|
Reciprocal Rank Fusion (combines both signals for ranking)저장소: ~/.lore/lore.db에 단일 SQLite 파일로 저장되며, 동시 읽기를 위해 WAL 모드를 사용합니다.
설정: 프로젝트 제외 목록은 ~/.lore/config.json에 저장됩니다.
환경 변수
변수 | 기본값 | 설명 |
|
| 데이터 디렉토리 |
|
| 데이터베이스 경로 |
|
| Claude Code 기록 위치 |
Apple Silicon (M 시리즈) 기준 측정:
지표 | 값 |
검색 지연 시간 | 20-30ms |
인덱싱 속도 | 약 10 세션/초 |
첫 검색 (콜드 모델 로드) | 약 5초 |
DB 크기 | 10 세션당 약 0.1MB |
모델 크기 (1회 다운로드) | 약 112MB |
"No sessions found"
manage_projects를 list 액션으로 실행하여 사용 가능한 프로젝트를 확인하세요. 제외하지 않는 한 모든 프로젝트가 기본적으로 인덱싱됩니다.
오래된 잠금 파일(Stale lock file)
인덱싱이 중단된 경우, 다음 실행 시 잠금 파일이 자동으로 정리됩니다(PID 기반 감지).
DB 손상
~/.lore/lore.db를 삭제하고 다시 인덱싱하세요. 원본 데이터(~/.claude/projects/)는 절대 수정되지 않습니다.
개발
git clone https://github.com/hyunjae-labs/lore.git
cd lore
npm install
npm run build
npm test # 118 tests기술 스택
Model Context Protocol SDK -- stdio 전송
@huggingface/transformers -- multilingual-e5-small (INT8)
better-sqlite3 + sqlite-vec -- 임베디드 벡터 DB
Reciprocal Rank Fusion -- 하이브리드 검색 랭킹
라이선스
MIT
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hyunjae-labs/lore'
If you have feedback or need assistance with the MCP directory API, please join our Discord server