폴더를 자동 인덱싱하고 Elasticsearch API를 제공하는 Rust 기반 로컬 AI 검색 엔진
tobi/qmd
BM25, 벡터 검색, LLM 리랭킹을 결합해 Markdown 노트, 회의록, 문서를 로컬 기기에서 검색하는 CLI 검색 엔진입니다.
- 스타
- 30,493
- 포크
- 1,916
- 열린 이슈
- 231
- 마지막 커밋
- 5일 전
어떤 프로젝트인가요?
QMD(Query Markup Documents)는 Markdown 노트, 회의록, 문서, 지식 베이스 등 개인 및 팀 지식을 위한 온디바이스 검색 엔진입니다. 소스를 이름이 지정된 컬렉션으로 구성한 뒤 명령줄, TypeScript SDK 또는 MCP 서버를 통해 키워드나 자연어로 검색할 수 있습니다.
QMD는 BM25 전문 검색, 벡터 의미 검색, LLM 재순위를 결합합니다. 쿼리를 유형별 하위 쿼리(lexical, vector, HyDE)로 확장하고 Reciprocal Rank Fusion으로 결과를 통합한 다음, 상위 후보의 순위를 로컬 모델로 다시 매깁니다. 모든 모델은 처음 사용할 때 다운로드되는 GGUF 파일을 이용해 node-llama-cpp로 로컬에서 실행됩니다.
QMD는 JSON, CSV, Markdown, 파일 목록 형식의 출력과 HTTP 엔드포인트, frontmatter 기반 메타데이터 필터링을 제공합니다. 사용자는 컬렉션과 경로에 설명 컨텍스트를 추가할 수 있으며, 이 컨텍스트는 일치하는 결과와 함께 반환되어 에이전트가 적절한 문서를 선택하는 데 도움을 줍니다. Node.js 22 이상 또는 Bun이 필요합니다.
핵심 기능
- 01BM25 키워드 매칭, 벡터 유사도, LLM 재순위를 결합한 하이브리드 검색
- 02node-llama-cpp를 통해 GGUF 모델을 사용해 완전히 로컬에서 실행
- 03이름이 지정된 컬렉션을 지원하며, 경로별 컨텍스트를 결과와 함께 반환
- 04연동을 위한 MCP 서버, HTTP 엔드포인트, TypeScript SDK
- 05에이전트 워크플로에 적합한 JSON 및 파일 목록 출력
- 06유형이 지정된 YAML frontmatter를 사용한 메타데이터 필터링 및 코드 파일의 선택적 AST 인식 청킹
활용 사례
- 정확히 일치하는 단어가 아니라 의미를 기준으로 개인 Obsidian 스타일 노트 폴더 검색
- 팀 공유 폴더에서 지난 회의록과 의사결정 내용 검색
- 프로젝트 문서에 대한 로컬 검색 도구를 AI 에이전트에 제공
- 의미 검색을 위해 코드베이스의 문서와 소스 파일 인덱싱
빠른 시작
- 1
npm으로 전역 설치하기
npm install -g @tobilu/qmd - 2
노트 컬렉션 추가하기
qmd collection add ~/notes --name notes - 3
시맨틱 검색을 위한 임베딩 생성하기
qmd embed - 4
리랭킹을 적용해 하이브리드 검색 실행하기
qmd query "quarterly planning process"
사용 전 알아둘 점
- 시맨틱 검색과 리랭킹은 node-llama-cpp를 통해 로컬 GGUF 모델을 사용하므로 디스크 공간과 메모리가 필요합니다.
- 검색에서 최상의 결과를 얻으려면 컬렉션과 컨텍스트를 추가하고 임베딩을 생성해야 합니다.
토픽
자주 묻는 질문
- qmd은(는) 무엇인가요?
- BM25, 벡터 검색, LLM 리랭킹을 결합해 Markdown 노트, 회의록, 문서를 로컬 기기에서 검색하는 CLI 검색 엔진입니다. QMD(Query Markup Documents)는 Markdown 노트, 회의록, 문서, 지식 베이스 등 개인 및 팀 지식을 위한 온디바이스 검색 엔진입니다. 소스를 이름이 지정된 컬렉션으로 구성한 뒤 명령줄, TypeScript SDK 또는 MCP 서버를 통해 키워드나 자연어로 검색할 수 있습니다.
- qmd은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- qmd은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- qmd은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. qmd의 마지막 커밋은 2026년 10월 15일입니다.
- qmd은(는) 어디에 사용할 수 있나요?
- 정확히 일치하는 단어가 아니라 의미를 기준으로 개인 Obsidian 스타일 노트 폴더 검색 팀 공유 폴더에서 지난 회의록과 의사결정 내용 검색 프로젝트 문서에 대한 로컬 검색 도구를 AI 에이전트에 제공 의미 검색을 위해 코드베이스의 문서와 소스 파일 인덱싱
- qmd는 어떻게 설치하나요?
- npm으로 전역 설치하기: npm install -g @tobilu/qmd 노트 컬렉션 추가하기: qmd collection add ~/notes --name notes 시맨틱 검색을 위한 임베딩 생성하기: qmd embed 리랭킹을 적용해 하이브리드 검색 실행하기: qmd query "quarterly planning process"
- qmd은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/tobi/qmd
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
코딩 에이전트의 세션 활동을 기록하고 AI로 압축한 뒤, 이후 세션에 관련 컨텍스트를 제공하는 지속성 메모리입니다.
블록 단위 참조와 Markdown WYSIWYG 편집, AI 에이전트 협업을 지원하는 셀프 호스팅 지식 워크스페이스
에디터용 LSP, CLI, MCP 서버를 갖춘 Markdown 지식 그래프로, AI 에이전트와 같은 노트를 읽고 쓸 수 있습니다.
음성 복제, 음성 생성, 앱 어디서나 음성 받아쓰기, AI 에이전트에 음성 부여를 지원하는 로컬 우선 오픈소스 AI 음성 스튜디오입니다.
LangGraph 기반의 모듈형 Agentic RAG 튜토리얼로, 계층형 인덱싱과 대화 메모리, 질의 명확화 기능을 제공합니다.