vccs
Vue 3용 차트 컴포넌트 모음, Recharts에서 포팅
연구자를 위한 RAG, 개인 라이브러리 페이지 수준 인용과 MCP를 통한 LLM 접근 제공
RAG for researchers: page-level citations from your personal library, LLM access via MCP. Ask your entire archive, get answers with the intelligence of leading AI.
데이터Python · Jupyter NotebookGitHub @kasssandr직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
설치형 프로젝트는 배포 도메인 없이도 확인할 수 있습니다. 개인 저장소는 GitHub 로그인으로, 조직 저장소는 위의 저장소 확인 파일로 직접 확인해 주세요.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A privacy-first RAG system that brings semantic search to your personal research library. Works with Calibre, Zotero, Obsidian vaults, and plain folders. Built for scholars, researchers, and anyone with a serious book collection.
Full codebase reviewed with Claude Fable 5 — the entire codebase underwent a complete code review in June 2026.README 전문 보기 ↗Intelligent search for your Calibre library
A privacy-first RAG system that brings semantic search to your personal research library. Works with Calibre, Zotero, Obsidian vaults, and plain folders. Built for scholars, researchers, and anyone with a serious book collection.
[!NOTE] Full codebase reviewed with Claude Fable 5 — the entire codebase underwent a complete code review in June 2026.
Why Archilles? • Quick Start • Features • Documentation • Roadmap • archilles.org
If you're a researcher, you know this problem: You've spent years building a carefully curated library in Calibre—hundreds or thousands of books, annotated and tagged. But when you need to find that specific argument about medieval trade routes, or compare how three different authors approach consciousness, you're stuck with keyword search. You know the passage exists. You just can't find it.
Archilles solves this.
It's a semantic search system built specifically for Calibre libraries. Instead of matching keywords, it understands meaning. Ask it "discussions of political legitimacy in early modern Europe" and it finds relevant passages—even if they never use those exact words.
Everything runs locally on your machine. Your library, your annotations, your research—they stay private. No cloud services, no data uploads, no subscriptions.
Find books by meaning, not just keywords. Ask natural questions and get relevant passages from across your entire library.
All data stays on your machine. No cloud uploads, no telemetry, no tracking. Your research library remains private.
Seamless integration with Claude Desktop and other MCP-compatible tools. Your AI assistant can search your library directly.
Works with Claude Desktop (stdio) and ChatGPT Desktop, OpenAI Codex, Cursor and any other MCP client that connects via URL (SSE transport). See MCP Integration Guide →
Reads directly from your Calibre library structure. Extracts metadata, tags, comments, annotations, and custom fields automatically.
Searches beyond book text. Your Calibre comments, highlights, and notes are all indexed and searchable.
Filter by Calibre tags, combine searches across custom fields, leverage all the organization you've already done.
Built-in language detection for 75+ languages. Search in German, English, Latin, Greek, French—or all at once.
Combines semantic understanding (BGE-M3 embeddings) with keyword precision (BM25). Get the best of both approaches.
Enable a second-stage reranker (BAAI/bge-reranker-v2-m3) that scores each query-document pair for significantly improved relevance ranking. Graceful fallback if your system has limited memory.
Register project-specific keywords once and they automatically receive a score boost in every subsequent search—without re-indexing. Switch focus between projects in seconds. Managed via the set_research_interests MCP tool.
Export your library (or any filtered subset) as BibTeX, RIS, EndNote, JSON, or CSV. Filter by author, tag, or publication year. One tool call from Claude Desktop is all it takes.
Six idempotent Task Scheduler entries cover the unattended case: a daily Zotero watchdog, a daily Obsidian-vault scan, a weekly Calibre scan plus a weekly no-time-limit drainer for its full-text backlog, monthly cross-link maintenance for the Obsidian vault (hard-gated on a successful index run), and a weekly Gmail status digest so you know the rest is working. One PowerShell installer, no admin rights, throttled per source by marker files; cadences are installer parameters if your rhythm differs. See MCP Guide → Option E.
| Archilles | Cloud RAG Services | Calibre Search | Other MCP Servers |
|---|---|---|---|
| Privacy-first, local processing | Your data uploaded to cloud | Basic keyword matching | Often single-purpose |
| Semantic + keyword hybrid | Usually semantic only | No semantic understanding | Varying capabilities |
| Calibre-native integration | Generic document handling | Built-in but limited | May not support Calibre |
| One-time setup, no subscriptions | Monthly fees, usage limits | Free (included) | Varies widely |
| Full control over your data | Terms of service apply | Your data, basic search | Depends on service |
Archilles gives you the semantic search capabilities of modern RAG systems while keeping everything under your control. If you've invested years in building and organizing your Calibre library, Archilles makes that investment exponentially more valuable.
# Clone the repository
git clone https://github.com/kasssandr/archilles.git
cd archilles
# Install dependencies
pip install -r requirements.txt
# Set your library path
# Windows PowerShell:
$env:ARCHILLES_LIBRARY_PATH = "D:\Your-Library"
# Linux/Mac:
export ARCHILLES_LIBRARY_PATH="/path/to/your/Library"
# Index a single book
python scripts/rag_demo.py index "/path/to/Calibre Library/Author/Book/book.pdf"
# Check your index
python scripts/rag_demo.py stats
# Preview what would be indexed (dry run)
python scripts/batch_index.py --tag "Your-Tag" --dry-run
# Index all books with a specific Calibre tag
python scripts/batch_index.py --tag "History"
# Index with progress logging
python scripts/batch_index.py --tag "History" --log indexing.json
# Resume interrupted indexing (skip already indexed books)
python scripts/batch_index.py --tag "History" --skip-existing
# Hybrid search (recommended - combines semantic + keyword)
python scripts/rag_demo.py query "trade networks in medieval Europe"
# Filter by language
python scripts/rag_demo.py query "Rex" --language la
# Filter by tags
python scripts/rag_demo.py query "political theory" --tag-filter Philosophy History
# Export results to Markdown (for Joplin/Obsidian)
python scripts/rag_demo.py query "consciousness" --export results.md
Add to your Claude Desktop config (%APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"archilles": {
"command": "python",
"args": ["C:/Users/YOU/archilles/mcp_server.py"],
"env": {
"ARCHILLES_LIBRARY_PATH": "D:/Your-Library"
}
}
}
}
Then in Claude Desktop, you can use natural language — all 13 MCP tools are available:
As you add books, edit tags, or highlight passages in Calibre, the LanceDB index drifts out of date. The built-in Watchdog closes that gap automatically:
watchdog_scan MCP tool on whatever schedule fits (daily / weekly / monthly). No shell, no scheduler.python scripts/watchdog.py via Windows Task Scheduler, cron, or launchd. After the first scan has seeded its annotation-signature cache, repeat scans take seconds on a few-thousand-book library.Daily or weekly is usually enough; hourly is overkill. See MCP Integration Guide → Keeping Your Index in Sync for concrete Task Scheduler / cron / launchd examples.
Archilles builds a semantic index of your Calibre library that enables intelligent search:
┌─────────────┐
│ Calibre │ ← Your existing library (books, metadata, tags, comments)
└──────┬──────┘
│
▼
┌─────────────┐
│ Extractors │ ← PyMuPDF (primary), pdfplumber, EPUB, MOBI, DJVU...
└──────┬──────┘
│
▼
┌─────────────┐
│ LanceDB │ ← BGE-M3 embeddings + BM25 full-text (hybrid search)
└──────┬──────┘
│
▼
┌─────────────┐
│ Retriever │ ← RRF fusion + optional cross-encoder reranking
└──────┬──────┘
│
▼
┌─────────────┐
│ Service │ ← ArchillesService: central facade for all consumers
└──┬───┬───┬──┘
│ │ │
▼ ▼ ▼
MCP Web CLI ← Claude Desktop, Streamlit UI, command line
search_annotations)Archilles reads optional configuration from .archilles/config.json inside your Calibre library:
{
"enable_reranking": true,
"reranker_device": "cpu"
}
| Option | Default | Description |
|---|---|---|
enable_reranking | auto | Cross-encoder reranking (more accurate but slower; downloads ~560MB model on first use). Unset: enabled on GPUs with ≥8 GB VRAM, disabled otherwise (on CPU it pushes searches past MCP client timeouts). Set true/false to override. |
reranker_device | "cpu" | Device for reranker inference ("cpu" or "cuda"). CPU recommended when GPU runs BGE-M3 |
rag_db_path | .archilles/rag_db | Custom path for the vector database |
"Find all discussions of trade routes between Mediterranean and Northern Europe before 1500"
Archilles searches across your entire collection—Latin primary sources, German monographs, English translations—and surfaces relevant passages based on concepts, not just keywords.
"Trace the motif of unreliable narrators across these 50 twentieth-century novels"
Semantic search finds passages that demonstrate unreliable narration, even when the texts never use that term. Your annotations and comments help prioritize the most relevant examples.
"Compare views on the hard problem of consciousness across Chalmers, Dennett, and Nagel"
Hybrid search combines precise name matching with semantic understanding of philosophical concepts. Your Calibre tags help filter to relevant texts.
"Find theoretical discussions of modal harmony in Renaissance treatises"
Multilingual search works across Latin treatises, Italian commentary, and modern scholarship. Technical terms get exact matching while broader concepts use semantic search.
"Locate all references to customary law in medieval court records"
Search through your collection of primary sources and secondary literature simultaneously. Custom Calibre fields (like "source_type" or "jurisdiction") help organize results.
✅ Core functionality complete:
mode knob (light / full-local / full-external). CUDA, Apple Silicon MPS, CPUwindow_text)set_research_interests)list_books_by_author — direct Calibre metadata query, reliable for articles and short textsprogress.db checkpoint system and backup rotationcalibre:// URI links for direct book access🚧 Planned improvements:
🔮 On the horizon:
Archilles is being developed as a modular platform. The core (what you're using now) will always be free and open source.
Special Editions will extend Archilles with discipline-specific features for researchers who need them:
These editions are commercial add-ons to support ongoing development. The core will remain MIT licensed and fully functional.
Archilles is open source (MIT License). Contributions are welcome!
We're actively seeking beta testers from diverse research disciplines. If you have a substantial Calibre library (500+ books) and want to help shape Archilles, join our beta program.
Code of Conduct: We're committed to building a welcoming community. See CODE_OF_CONDUCT.md.
🧭 Why Archilles? – What it is for and the principles behind it 📖 Installation Guide – Detailed setup instructions 📘 Usage Guide – All commands, MCP tools, and practical workflows 🗂️ Feature Catalog – Complete reference of all implemented features 🏗️ Architecture – Technical deep dive 🔌 MCP Integration – Connect Archilles to Claude Desktop ❓ FAQ – Frequently asked questions 🔧 Troubleshooting – Common issues and solutions
Scriptor prepares, Archilles retrieves, Archillator translates — three tools, one path: from the printed apparatus to a citable answer, in any language, on your own machine. Each tool stands alone; none requires the others. All three are developed under one fixed charter: local-first, source-true, the scholar as the acting subject. Contributions are welcome within that charter; beyond it, the license invites forks.
The interchange contract of the family — the prepared document — is specified in PREPARED_FORMAT_SPEC.
Archilles is released under the MIT License. Free to use, modify, and distribute.
Archilles is local-first software. We collect no telemetry, no analytics, no usage data. Your library stays on your machine.
You are responsible for ensuring your use of Archilles complies with copyright law in your jurisdiction. Archilles is a tool for searching your own legally acquired library.
Archilles is built on the shoulders of giants:
Inspired by NotebookLM, Zotero, and decades of digital humanities research.
🌐 Website: archilles.org • archilles.de 💻 GitHub: github.com/kasssandr/archilles 💬 Discussions: GitHub Discussions 📧 Contact: [email protected]
Built for researchers, by a researcher.
Archilles: Because your library deserves better than keyword search.