Search Tools Benchmark: Claude Native vs index1 vs qmd

index1

# AI Code Search Tools Benchmark

Claude Native (Grep/Glob) vs index1 vs qmd — 다양한 규모에서의 세 가지 검색 도구 완전 성능 비교

Apple Silicon M2 · 48 GB RAM 테스트 규모: 10K / 50K / 100K 문서 Ollama v0.15.4 · bge-m3 1024d (CJK) 2026-02-06
🌐 EN 中文 日본語 한국어
⚡

### Claude Native

Grep / Glob / Read — Claude Code 내장 도구 (ripgrep)
Rust + SIMD 의존성 없음 O(N) 선형 스캔 정확한 매칭 인덱싱 불필요
📚

### index1

BM25 + 벡터 혼합 검색 — Python MCP Server
FTS5 O(log N) sqlite-vec Ollama 5 개 청커 CJK최적화 L1/L2 캐시
🤖

### qmd

BM25 + 벡터 + LLM 재순위 — Bun/TypeScript MCP Server
3 개 GGUF 모델 Query Expansion LLM Rerank 외부 의존성 없음 전문 Markdown
10K 문서 / ~50 MB 코드
중형 프로젝트 (Django, Flask)
50K 문서 / ~250 MB 코드
대형 프로젝트 (React, Vue)
100K 문서 / ~500 MB 코드
초과대형 프로젝트 (Linux 커널 서브셋)

## 0데이터 출처및방법론 (방법론)

#### 데이터 표기 설명

MEASURED index1 프로젝트에서 실제 측정 (17,725 chunks, 1,707 문서)
REFERENCE 공식 벤치마크 또는 논문 출처 (ripgrep, SQLite FTS5, sqlite-vec, Ollama)
PROJECTED 컴포넌트 성능 기반 + 알고리즘 복잡도 추정 (계산 공식 표기)
▶ 데이터 출처 및 신뢰도 상세（클릭하여 펼치기）

데이터 출처 | 출처 상세 | 신뢰도
--- | --- | ---
index1 실측 | 본 프로젝트 17,725 chunks / 1,707 문서 / 185MB 데이터라이브러리，여러 번 실행 후 중앙값 | 높음 (실측)
ripgrep 벤치마크 | 공식 burntsushi/ripgrep 저장소 README 벤치마크 (Linux kernel, ~1GB 코퍼스) | 높음 (공식)
SQLite FTS5 | sqlite.org 공식문서 + andrewmara.com 18M 행 trigram 벤치마크 | 높음 (공식+제3자)
sqlite-vec | alexgarcia.xyz 공식 v0.1.0 릴리스벤치마크 (SIFT1M/GIST500K) | 높음 (작성자 발표)
Ollama embed | collabnix.com 임베딩 모델 가이드 + nomic.ai 공식블로그 | 중상
qmd 관리방법 | tobi/qmd 소스 코드 분석 + 컴포넌트벤치마크추정 (없음공식릴리스벤치마크) | 중 (추정)
규모 추정 | 알고리즘 복잡도 기반 O(N)/O(log N)/O(N*D) 에서실측벤치마크선형/로그 외삽 | 중 (추정)

## 1AI Agent 사용 경험 (Agent Experience)

#### ⚡ AI 검색 결과 읽기 속도 비교

어떤 AI Agent를 사용하든（Claude Code、Cursor、Cline...），검색할 때마다 반환 결과를 읽어야 합니다。
반환이 많을수록 AI가 느리게 읽고 비용이 높습니다。

지표 | index1 | qmd
--- | --- | ---
단일 검색 반환량 | ~460 tok | ~900 tok
AI 읽기 소요 시간 | < 0.1 초 | ~0.2 초
검색지연시간（엔드까지엔드） | ~100 ms | ~1,200 ms
20 회 검색 누적 | 9,200 tok | 18,000 tok
200K 윈도우 점유율 | 4.6% | 9%
AI 비용 (20 회 / $3/M) | $0.03 | $0.05

AI가 검색할 때마다 읽어야 하는 Token 량（짧을수록 좋음）
qmd
900 tok — 0.2 초
index1
460 tok — < 0.1 초 🔥

MEASURED 비용 기준 Claude Sonnet $3/M input tokens 추산

AI Agent의 검색 효율은 속도뿐만 아니라호출 복잡도및Token 소비。 여러 번 시행착오가 필요한 tool은 Agent의 추론 Token 및 사용자 대기 시간을 낭비합니다。

차원 | Claude Native | index1 | qmd
--- | --- | --- | ---
AI 검색당 호출 횟수 | 1 회 (Grep) | 1 회 (docs_search) | 1-3 회 (판단 필요 search/vsearch/query)
AI가 이해해야 하는 API | 3 개 (직관적) | 1 개통합하나入口 | 6 개 tools
인덱스 초기화 | 불필요 | 1 단계: `index1 index` | 2 단계: `bun run index` + `bun run vector`
환境 자동 진단 | N/A | ✓ `index1 doctor --fix` | ✗
💰 단일회반환 Token | ~36,000 tok (고빈도 단어) | ~460 tok (Top-5) | ~900 tok (Top-10)
검색지연시간 (体감각) | < 50 ms | ~100 ms | ~1,200 ms (query 전체관리방법)
Ollama 사용 불가 시 | N/A | 순수 텍스트 검색으로 자동 다운그레이드 | 벡터검색완료전체아니가능사용

#### AI Agent 실제실제사용대비교: 하나회검색의완료전체흐름프로그램

Claude Native (Grep)
1. `Grep("search")`
2. 반환 950 행 (~36K tokens)
컨텍스트 윈도우가 가득 참
호출 1 회 | 소요 시간 ~40ms | 하지만 Token 폭발
index1
1. `docs_search("검색怎么工作의")`
2. 반환 Top-5 결과 (~460 tokens)
정확하고 Token 절약, 중국어 지원
호출 1 회 | 소요 시간 ~100ms | Token 절약 98%+
qmd
1. AI 纠결과: 사용 search? vsearch? query?
2. 시도 `search("search")` → 결과하나일반
3. 변경 사용 `query("search")` → 대기 1.2s
결과더정확，하지만 AI 결정策성공본높은
호출 1-3 회 | 소요 시간 1.2s+ | 정확도 최고이나 프로세스 복잡

#### 주요 AI Agent / 에디터 호환성

각 도구는 MCP 프로토콜을 통해 AI Agent에 연결。Claude Native 위해내장도구，불필요추가외부구성배치。

AI Agent | MCP 지원 | Claude Native | index1 | qmd | 비고
--- | --- | --- | --- | --- | ---
Claude Code | ✓ 원본생성 | 내장 | ✓ 1 개入口 | ✓ 6 개 tools | index1 하나개 docs_search 완료
OpenClaw | ✓ MCP | 내장 | ✓ | ✓ | 오픈소스 Claude Code 대체, 네이티브 MCP
Cursor | ✓ MCP | 내장 (다른 구현) | ✓ | ✓ 판단 필요 tool | Cursor 의 AI는 최소 tools 선호
Windsurf | ✓ MCP | 내장 | ✓ | ✓ | MCP stdio 모델式
Cline | ✓ MCP | 내장 (VS Code) | ✓ | ✓ | VS Code 확장, 지원 MCP
Aider | ✗ | 내장 grep | 필요수동동적통합 | 필요수동동적통합 | 네이티브 미지원 MCP 지원
GitHub Copilot | 부분 | 내장 | 필요 Agent Mode | 필요 Agent Mode | Copilot Agent Mode 지원 MCP

index1 의 1 개통합하나入口설정계산하게 하다모든있음 AI Agent 都능력하나회호출명령중，불필요이해해결여러개 tools 의지역别。 qmd 의 6 개 tools (search/vsearch/query/get/multi_get/status) 증가추가했습니다 AI 의결정策부정担。

## 2CJK언어언어지원유지대비교 (CJK Language Support)

CJK（CJK）언어언어의검색 품질취득결정~에토크나이징 정확도、Embedding 모델 언어 커버리지및쿼리 전략 최적화세개차원。 다음 비교는 index1 구성 bge-m3 + jieba 분단어의실제실제측정시도결과。

### 2.1 CJK 능력 매트릭스

능력力차원 | Claude Native | index1 + bge-m3 | qmd
--- | --- | --- | ---
중국어 토크나이징 | N/A (문자 그대로 매칭) | ✓ jieba 정확한 토크나이징 pip install index1[chinese] | ✗ porter unicode61 기준 Unicode 문자기호切분，없음언어의미
Embedding 모델 | N/A | bge-m3 1024d BAAI 여러언어언어모델，CJK최적화 | embeddinggemma 300M 영어문서위주，CJK 언어의미丢손실엄격중요
CJK 쿼리 전략 | N/A | 동적 가중치 CJK 감지 시 → BM25=0.2 / Vec=0.8 | 고정 가중치 언어 구분 없음, 적응 없음
크로스 언어 검색 | ✗ 만문자 그대로 매칭 | ✓ 중문서쿼리영어문서코드 "구성배치합그리고" → config.py merge() | 제한적 모델언어의미능력力약한
일본어 / 한국어 | ✗ | ✓ bge-m3 원본생성지원유지 벡터검색가능사용，BM25 필요추가외부분단어기 | ✗

### 2.2 CJK 구성배치资소스열기销

구성배치방법방안 | 모델대소 | 벡터차원 | 내저장점유사용 | 인덱스속도정도 (10K) | 저장 (10K)
--- | --- | --- | --- | --- | ---
index1 (순수 BM25) | 0 | N/A | ~80 MB | ~10 s | ~60 MB
index1 + Ollama nomic-embed-text 768d | 274 MB | 768d | ~600 MB | ~10 min | ~150 MB
index1 + Ollama + bge-m3 bge-m3 1024d · CJK최적화 | ~1.2 GB | 1024d | ~900 MB | ~14 min | ~200 MB
qmd embeddinggemma 300M + 2 GGUF | ~2.2 GB (3 모델) | 768d | ~2.5 GB | ~8 min | ~80 MB

### 3.3 FTS5 분단어기계제어대비교 (Why It Matters)

FTS5 전체문서검색의효과결과완료전체취득결정~에분단어기。중문서없다있음빈格분격리단어언어，선택오류분단어기 = BM25 검색폐기掉。
🔍 쿼리보기분단어기계제어详상세대비교
qmd — porter unicode61
-- store.ts 建테이블언어문장
CREATE VIRTUAL TABLE documents_fts
USING fts5(filepath, title, body,
tokenize='porter unicode61');
-- 쿼리 "중문서검색" 의처리이해초과프로그램：
출력入: "중문서검색"
split(/\s+/): ["중문서검색"] ← 전체体
FTS5 인덱스: 중|문서|검색|인덱스 ← 점진적문자
✗ 쿼리 단어 ≠ 인덱스단어，매칭손실실패
porter 이다영어문서단어기반还원본기（running→run），대중문서없음효과
unicode61 기준 Unicode 문자기호가장자리경계切분，중문서점진적문자분해열기
index1 — jieba + 기본분단어기
# db.py 사전처리이해
def tokenize_for_fts5(text):
if has_cjk(text):
return " ".join(jieba.cut(text))
# 쿼리 "중문서검색" 의처리이해초과프로그램：
출력入: "중문서검색"
jieba.cut(): ["중문서", "검색"]
FTS5 쿼리: "중문서" OR "검색"
✓ 쿼리 단어 = 인덱스단어，정확한 매칭
인덱스시및쿼리시都경험초과 jieba 분단어，보장하나~하게 하다성
순수영어문서자동동적점프초과 jieba，제로추가외부열기销

쿼리표시例 | index1 BM25 결과 | qmd BM25 결과
--- | --- | ---
`"검색功능력"` | search.py, cli.py (정확) | 없음결과或따라기계매칭
`"구성배치합그리고"` | config.py merge() (정확) | 없음결과
`"search function"` | search.py (정규일반적) | search.py (정규일반적)

MEASURED 기반~에 index1 소스 코드항목목표실제실제검색측정시도 · CODE qmd FTS5 구성배치출처소스: `store.ts:519`

#### 🌏 index1 CJK하나키구성배치

index1（3 단계완료성공）
`pip install index1[chinese]`
`index1 config embedding_model bge-m3`
`index1 index --force`
✓ 완료성공！지원유지중문서검색 + 크로스언어언어쿼리
qmd（없음공식방법방안）
1. 자동행寻찾기중문서 GGUF embedding 모델
2. 소스 코드 수정 `store.ts` 중의모델 URI
3. 수정차원구성배치，중요建인덱스
4. FTS5 분단어여전히없음방법변경善
✗ 없음열기박스即사용의중문서지원유지

MEASURED bge-m3 모델대소 ~1.2GB (BAAI/bge-m3) · MEASURED 1024d 벡터 vs 768d: 저장 +33%, 인덱스 +40%, 검색지연시간 +15%

## 3리소스 요구사항 vs 규모 (리소스 요구사항)

### 3.1 인덱스구성建시시간

도구 | 인덱스策전략 | 10K 문서 | 50K 문서 | 100K 문서 | 데이터 출처
--- | --- | --- | --- | --- | ---
Claude Native | 인덱싱 불필요 | 0 s | 0 s | 0 s | MEASURED
index1 | FTS5 역인덱스 | ~10 s | ~30 s | ~60 s | PROJECTED
index1 + Ollama | FTS5 + Ollama embedding | ~10 min | ~45 min | ~90 min | PROJECTED @9K tok/s
qmd | FTS5 + GGUF embedding | ~8 min | ~35 min | ~70 min | PROJECTED

### 3.2 데이터라이브러리 / 저장대소

도구 | 저장내容 | 10K | 50K | 100K
--- | --- | --- | --- | ---
Claude Native | 없음 (스캔描소스 코드) | 0 MB | 0 MB | 0 MB
index1 | FTS5 인덱스 + 원본문서 | ~60 MB | ~250 MB | ~500 MB
index1 + Ollama | FTS5 + 768d 벡터 | ~150 MB | ~600 MB | ~1.2 GB
qmd | FTS5 + 벡터 + llm_cache | ~80 MB | ~350 MB | ~700 MB

### 3.3 运행시내저장점유사용

도구 | 내저장그룹성공 | 10K | 50K | 100K
--- | --- | --- | --- | ---
Claude Native | ripgrep 진행프로그램 + 문서건완화충돌 | ~50 MB | ~150 MB | ~400 MB
index1 | Python + SQLite 페이지캐시 | ~80 MB | ~150 MB | ~250 MB
index1 + Ollama | Python + SQLite + Ollama 모델 | ~600 MB | ~700 MB | ~800 MB
qmd | Bun + SQLite + 3 GGUF 모델 | ~2.5 GB | ~2.7 GB | ~3.0 GB

REFERENCE ripgrep 9.5M 문서건 = ~400MB RSS (burntsushi/ripgrep#1823) · REFERENCE Ollama nomic-embed-text ~500MB resident

## 4검색지연시간 vs 규모 (지연시간 at Scale)

지연시간 = 에서발시작쿼리까지반환결과의엔드까지엔드시시간。Claude Native 및 index1 실측 데이터 있음，qmd 기반~에컴포넌트벤치마크추정。

### 4.1 엔드까지엔드검색지연시간 (End-to-End Query 지연시간)

도구 / 모델式 | 계산계산공식 | 10K 문서 | 50K 문서 | 100K 문서
--- | --- | --- | --- | ---
Claude Native (Grep) | `ripgrep_scan` | 30-50 ms | 150-250 ms | 300-500 ms
index1 + Ollama | `BM25 + embed + vec + RRF` | ~60 ms | ~90 ms | ~120 ms
index1 | `BM25 + RRF` | < 5 ms | ~8 ms | ~15 ms
index1 캐시명령중 | `L1 cache lookup` | < 1 ms | < 1 ms | < 1 ms
qmd search (BM25) | `FTS5 only` | < 5 ms | ~8 ms | ~15 ms
qmd vsearch (Vector) | `embed + vec` | ~30 ms | ~65 ms | ~90 ms
qmd query (전체관리방법) | `expand + BM25 + vec + RRF + rerank` | ~1,200 ms | ~1,250 ms | ~1,300 ms
qmd 캐시명령중 | `llm_cache lookup` | ~5 ms | ~5 ms | ~5 ms

100K 문서검색지연시간대비교
柱높은 = 지연시간，~할수록짧은~할수록빠른
400 ms
120 ms
15 ms
<1 ms
15 ms
90 ms
1,300 ms
5 ms
Grep
index1
+Ollama
index1
BM25
index1
cache
qmd
BM25
qmd
vector
qmd
full
qmd
cache

### 4.2 지연시간가능시각化대비교 (100K 규모)

#### 키워드 검색 @ 100K 문서

Claude Native (Grep)300-500 ms
index1 + Ollama~120 ms
qmd query~1,300 ms

#### 지연시간증가긴趋势 (10K → 100K)

Claude Native10x 증가긴
index1 + Ollama2x 증가긴
qmd query1.08x 증가긴
qmd 지연시간~에 의해 LLM 추론주도 (상수)，규모증가긴영향극도로소。
Grep O(N) 선형증가긴，index1 BM25 O(log N) 거의乎아니변경。

#### index1 실측지연시간분해결 (현재이전규모)

Python 진행프로그램시작동적~80 ms
Ollama HTTP~50 ms
BM25 + Vec + RRF~85 ms
MEASURED MCP 긴상주진행프로그램모델式없음시작동적열기销，실제 쿼리 ~85-120ms
MEASURED index1 실측 데이터 (17,725 chunks / 1,707 문서)

쿼리 | 引엔진소요 시간 (Cold) | 引엔진소요 시간 (Hot) | CLI 총소요 시간 | Grep 대비교
--- | --- | --- | --- | ---
`"CJK"` (低빈도단어, 46행) | 576 ms | 94 ms | 0.21s | 0.43s (Grep 더慢)
`"embedding"` (중빈도, 257행) | 119 ms | 85 ms | 0.20s | 0.24s (연결近)
`"search"` (높은빈도, 950행) | 100 ms | - | 0.22s | 0.21s (평균수동)
`"config"` (초과높은빈도, 4386행) | 119 ms | - | 0.24s | 0.18s (Grep 빠른)
`"검색이다怎么工作의"` (CJK 언어의미) | 91 ms | - | 0.20s | Grep 없음방법의미 검색
`"벡터검색의실제현재원본이해"` (CJK 언어의미) | 89 ms | - | 0.21s | Grep 없음방법의미 검색
`"how does search work"` (EN 언어의미) | 332 ms | - | 0.44s | Grep 없음방법의미 검색
`"how to configure watch paths"` | 228 ms | - | 0.34s | 필요 2-3 회 Grep 그룹합

## 5Token 소비 vs 규모 (Context Window Impact)

Token 소비 = 검색결과주석入 AI 컨텍스트 윈도우의 token 수。Grep 반환모든있음매칭행 (O(N))，index1/qmd 만 반환 Top-K (상수)。 이이다대규모항목목표중최핵심의차이异。

### 5.1 고빈도 단어 `"search"` 쿼리의 Token 소비

규모 | Grep 매칭행수 | Claude Native (Grep) | index1 (Top-5) | qmd (Top-10) | index1 절약
--- | --- | --- | --- | --- | ---
현재이전 (64 문서건) | 950 행 M | ~36,000 tokens M | ~460 tokens M | ~900 tokens | 98.7%
10K 문서 | ~15,000 행 P | ~375,000 tokens | ~460 tokens | ~900 tokens | 99.88%
50K 문서 | ~60,000 행 P | ~1,500,000 tokens | ~460 tokens | ~900 tokens | 99.97%
100K 문서 | ~120,000 행 P | ~3,000,000 tokens | ~460 tokens | ~900 tokens | 99.98%

M = 실측, P = 기반~에단어빈도密정도선형추정。Claude 컨텍스트 윈도우 200K tokens，100K 문서쿼리 "search" 의 Grep 결과필요필요 15 개완료전체윈도우口비로소능력설치이하。

### 5.2 다양한 빈도의 Token 소비대비교 (100K 문서규모)

쿼리 단어 | 빈도 유형 | Grep 매칭행 | Grep Tokens | index1 | qmd | index1 절약
--- | --- | --- | --- | --- | --- | ---
`CJK` | 희귀 단어 | ~1,000 | ~25,000 | ~460 | ~900 | 98.2%
`embedding` | 중빈도단어 | ~30,000 | ~750,000 | ~460 | ~900 | 99.94%
`search` | 고빈도 단어 | ~120,000 | ~3,000,000 | ~460 | ~900 | 99.98%
`config` | 초과높은빈도 | ~500,000 | ~12,500,000 | ~460 | ~900 | 99.99%
`import` | 극도로높은빈도 | ~800,000 | ~20,000,000 | ~460 | ~900 | 99.99%

### 5.3 될 것대화级别 Token 영향 (20 회검색 / 200K 윈도우口)

Grep 소비량级초과대（10K 항목목표 250K tok / 100K 항목목표 2.4M tok），없음가능비교성，이처리만대비교 index1 및 qmd。

#### 10K 문서항목목표

index1 소비~9.2K (5%)
qmd 소비~18K (9%)

#### 50K 문서항목목표

index1 소비~9.2K (5%)
qmd 소비~18K (9%)

#### 100K 문서항목목표

index1 소비~9.2K (5%)
qmd 소비~18K (9%)
index1/qmd 의 Top-K 출력出始최종 < 1K tokens，영향을 받지 않음규모영향。
index1 반환량약위해 qmd 의하나半（460 tok vs 900 tok）。

## 6검색 품질评분 (검색 품질)

#### Claude Native (Grep/Glob)

정확한 매칭
의미 검색
CJK 쿼리
결과순위순서
크로스언어언어
召回비율
정확도확인비율 (Precision)
적합합: 이미알다표시식별기호의정밀확인쿼리찾기

#### index1 + Ollama

정확한 매칭
의미 검색
CJK 쿼리
결과순위순서
크로스언어언어
召回비율
정확도확인비율 (Precision)
적합합: 探인덱스성질문문제 + 여러언어언어항목목표

#### qmd (Query + Rerank)

정확한 매칭
의미 검색
CJK 쿼리
결과순위순서
크로스언어언어
召回비율
정확도확인비율 (Precision)
적합합: 영어문서문서의높은정밀정도의미 검색

## 7기능 매트릭스 (기능 매트릭스)

功능력 | Claude Native | index1 | qmd
--- | --- | --- | ---
运행시 | Rust (ripgrep) | Python 3.10+ | Bun (TypeScript)
검색알고리즘 | 문자 그대로 매칭 + 정규경우 | BM25 + Vector + RRF | BM25 + Vector + QE + RRF + Rerank
BM25 전체문서검색 | ripgrep (아닌 BM25) | ✓ FTS5 | ✓ FTS5
벡터의미 검색 | ✗ | ✓ sqlite-vec | ✓ sqlite-vec
Embedding 엔진 | N/A | Ollama (본지역) | node-llama-cpp (본지역 GGUF)
기본 Embedding 모델 | N/A | nomic-embed-text 768d (기본) bge-m3 1024d (CJK최적화) | embeddinggemma-300M (만영어문서)
모델생성상태및가능확장展성
가능선택모델수량 | N/A | Ollama 생성상태 수백 개 | 만 GGUF 형식
교체모델방법式 | N/A | 하나줄명령令: `index1 config embedding_model xxx` | 변경소스 코드传 GGUF URI
모델사전설정레벨位 | N/A | 5 레벨 (lightweight / standard / chinese / multilingual / high_precision) | 없음사전설정，写死 3 개모델
중문서모델전환 | N/A | `ollama pull bge-m3` 하나키전환 | 필요자동행寻찾기 GGUF 중문서모델
모델핫전환 | N/A | ✓ 변경구성배치 + `index --force` | ✗ 필요중요새편집번역/중요시작
Query Expansion | ✗ | ✗ | ✓ Fine-tuned 1.7B GGUF
LLM Reranking | ✗ | ✗ | ✓ qwen3-reranker 0.6B GGUF
RRF 융합합 | ✗ | ✓ k=60 | ✓ k=60 + position-aware
쿼리캐시 | ✗ | ✓ L1/L2 (10min TTL) | ✓ llm_cache (SQLite)
MCP Tools | 3 (Grep/Glob/Read) | 5 | 6
분블록策전략 | 없음 (전체문서) | 5 개 언어 인식 (md/py/rs/js/txt) | Markdown 분블록 (800 tok/chunk)
지원유지문서건클래스유형 | 모든 텍스트 | .md .py .rs .js .ts .jsx .tsx .txt | .md (Markdown)
CJK최적화 | ✗ | ✓ 동적 가중치 BM25=0.2/Vec=0.8 | ✗
Web UI | ✗ | ✓ Flask (port 6888) | ✗
문서건监听 | ✓ 실시간 | ✓ watcher | ✗
자동동적진단판단 (doctor) | N/A | ✓ | ✗
외부부분서비스서비스의존성 | 없음 | Ollama (가능선택) | 없음
크로스플랫폼 | macOS/Linux/Windows | macOS/Linux/Windows | macOS/Linux (Bun)

## 8크로스플랫폼호환성 (Cross-platform Compatibility)

MCP 도구필요필요에서아니동일 AI 편집편집기중工作。다음대비교各도구에서주요 AI Agent 중의통합어려운정도및호환성。

### 8.1 AI 편집편집기호환매트릭스배열

AI 편집편집기 / Agent | Claude Native | index1 | qmd
--- | --- | --- | ---
Claude Code | ✓ 내장 | ✓ MCP stdio | ✓ MCP stdio
Cursor | ✓ 내장 | ✓ MCP stdio | ✓ MCP stdio
Windsurf | ✓ 내장 | ✓ MCP stdio | ✓ MCP stdio
Cline (VS Code) | ✓ 내장 | ✓ MCP stdio | ✓ MCP stdio
OpenClaw | ✓ 내장 | ✓ MCP stdio | ✓ MCP stdio
CLI / 스크립트본 | ✗ 없음독립설립 CLI | ✓ `index1 search` | ✓ `bun run search`

### 8.2 操作시스템통합호환성

평균台 | index1 | qmd
--- | --- | ---
macOS (ARM / Intel) | ✓ pip / pipx | ✓ bun
Linux (x64 / ARM) | ✓ pip / pipx | ✓ bun
Windows | ✓ pip / pipx | ⚠ Bun Windows 지원유지제한적
Docker | ✓ | ✓

## 9적용 시나리오추정권장 (When to Use What)

#### Claude Native (Grep/Glob)

속도정도의 왕 — 적합합정밀확인쿼리찾기및소규모항목목표

최최적 시나리오景
  • 이미알다函수이름/클래스이름의정밀확인쿼리찾기
  • < 10K 문서건의소유형항목목표
  • 필요필요제로지연시간、제로구성배치
  • 정규경우테이블달성式높은级매칭
피하다피하다사용
  • > 10K 문서건 + 고빈도 단어 (token 폭발)
  • 언어의미이해해결 / 개념念검색
  • 중문서쿼리영어문서코드
  • 필요필요결과순위순서의场景
10K→100K 지연시간증가긴
  10x (O(N) 선형)

#### index1

균형균형之선택 — 低지연시간 + 低 Token + 여러언어언어

최최적 시나리오景
  • 중대유형여러언어언어코드항목목표
  • 중영어문서혼합합검색 (CJK최적화)
  • AI Agent Token 사전계산제한적
  • 필요필요동일시검색 .py/.rs/.js/.md
피하다피하다사용
  • 순수 Markdown 문서라이브러리 (qmd 더 좋음)
  • 추적요구극도로~하게 하다 Precision (qmd 있음 rerank)
  • 내저장 < 8 GB
10K→100K 지연시간증가긴
  2x (O(log N) BM25 + O(N) vec)

#### qmd

정밀정도의 왕 — LLM Rerank 실제현재최높은검색 품질

최최적 시나리오景
  • 대유형영어문서문서라이브러리 (README, 매뉴얼)
  • 필요필요최높은검색정밀정도
  • 설치를 원하지 않음/차원护 Ollama
  • 있음充足내저장 (≥ 16 GB)
피하다피하다사용
  • 코드문서건검색 (만 지원 .md)
  • CJK / 여러언어언어쿼리
  • 추적요구低지연시간 (< 500ms)
  • 내저장아니足 (< 16 GB)
10K→100K 지연시간증가긴
  1.08x (LLM 추론상수주도)

## 10종합 평가 (종합 평가)

차원 | Claude Native | index1 | qmd
--- | --- | --- | ---
검색속도정도 (소규모) | ★★★★★ | ★★★★☆ | ★★☆☆☆
검색속도정도 (대규모) | ★★☆☆☆ | ★★★★☆ | ★★★☆☆
검색정밀정도 (Precision) | ★★★☆☆ | ★★★★☆ | ★★★★★
Token 효과비율 | ★★☆☆☆ | ★★★★★ | ★★★★☆
언어의미이해해결 | ★☆☆☆☆ | ★★★★☆ | ★★★★★
CJK / 여러언어언어 | ★☆☆☆☆ | ★★★★☆ | ★★☆☆☆
쉬운사용성 / 제로구성배치 | ★★★★★ | ★★★★☆ | ★★★☆☆
资소스소비 | ★★★★★ | ★★★☆☆ | ★★☆☆☆
코드문서건지원유지 | ★★★★★ | ★★★★☆ | ★★☆☆☆
대규모가능확장展성 | ★★☆☆☆ | ★★★★☆ | ★★★★☆
크로스플랫폼호환성 macOS / Linux / Windows | ★★★★★ macOS / Linux / Windows | ★★★★★ macOS / Linux / Windows | ★★★☆☆ macOS / Linux (Win 제한적)
🤖 AI Agent 쉬운사용성 | ★★★★☆ | ★★★★★ | ★★☆☆☆
🏆 총분 | 40 / 60 | 50 / 60 | 37 / 60

#### 결과논의: 세도구그룹합策전략

없다있음하나개도구에서모든있음차원에서 우수。추정권장의策전략이다기반据항목목표규모및쿼리클래스유형선택선택:
< 1K 문서건: Claude Native 足충분，불필요추가외부도구。
1K-10K 문서건: Claude Native (정밀확인쿼리찾기) + index1 (언어의미/CJK 쿼리)。
10K-100K 문서건: index1 위주 (Token 절약 99%+)，Grep 만사용~에이미알다표시식별기호。
대유형영어문서문서라이브러리: qmd (최높은정밀정도) + Grep (빠른속도고정位)。
여러언어언어코드항목목표: index1 (유일하나지원유지 CJK최적화 + 5 종류언어언어분블록)。