How realhenrylan/mneme works
Mneme is a local-document RAG application: users add documents, ask questions in the terminal UI or CLI, and receive generated answers with source citations. Its principal workflow spans document loading and chunking, manifest-consistent indexing, query planning, hybrid retrieval (optionally expanded with Graph RAG), evidence/context assembly, and LLM generation. The graph preserves documented capabilities; some connections are based on README descriptions because the corresponding implementation excerpts were not sampled.
Main entry points: rag.py Query planning · service.py TUI service · llm_gateway.py LLM gateway · app.py Terminal UI
Components 20
User interfaces
- Terminal UI
tui/app.py - TUI service
tui/service.py - RAG CLI
src/rag.py
Document indexing
- Document loaders
src/loaders - Chunking
src/chunking.py - Index management
src/rag.py - Vector index
src/rag.py
Question answering
- Query planning
src/rag.py - Query decomposition
src/rag_query_decomposer.py - History rewrite
src/rag_query_rewriter.py - Hybrid retrieval
src/retrieval.py - BM25 search
src/lexical.py - Graph expansion
src/graph_rag.py - Evidence assembly
src/rag.py - Citations
src/citations.py - LLM gateway
src/llm_gateway.py
Operations and safeguards
- Directory watcher
tui/file_watcher.py - Diagnostic traces
src/production_observability.py
Other components
- User
- LLM endpoint
Connections 26
- User → Terminal UI: starts session
- User → RAG CLI: runs query
- Terminal UI → TUI service: uses service
- Terminal UI → TUI service: starts indexing
- TUI service → Index management: adds or removes
- Index management → Document loaders: loads files
- Index management → Chunking: splits text
- Index management → Vector index: updates index
- TUI service → Directory watcher: starts watching
- Directory watcher → TUI service: signals changes
- TUI service → Query planning: runs query
- RAG CLI → Query planning: runs query
- Query planning → Query decomposition: decomposes query
- Query planning → History rewrite: rewrites follow-up
- Query planning → Hybrid retrieval: retrieves candidates
- Hybrid retrieval → Vector index: searches vectors
- Hybrid retrieval → BM25 search: searches keywords
- Query planning → Graph expansion: expands graph mode
- Graph expansion → Vector index: reads indexed chunks
- Query planning → Evidence assembly: prepares evidence
- Evidence assembly → Citations: formats sources
- Query planning → LLM gateway: requests answer
- Query decomposition → LLM gateway: requests decomposition
- History rewrite → LLM gateway: requests rewrite
- LLM gateway → LLM endpoint: calls model
- Query planning → Diagnostic traces: records opted-in diagnostics