Get from zero to searching in 2 minutes Everything you need to know to start finding code by meaning, not just keywords
Linux/macOS:
git clone https://github.com/FSSCoding/Fss-Mini-Rag.git
cd Fss-Mini-Rag
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .Windows:
git clone https://github.com/FSSCoding/Fss-Mini-Rag.git
cd Fss-Mini-Rag
python -m venv .venv
.venv\Scripts\activate.bat
pip install -r requirements.txt
pip install -e .What this does:
- Creates an isolated Python environment
- Installs all dependencies (LanceDB, PyArrow, Rich, etc.)
- Makes
rag-minicommand available in the virtual environment
Time needed: 2-5 minutes (depends on internet speed for downloading dependencies)
install_windows.batTime needed: 5-10 minutes
FSS-Mini-RAG has two interfaces:
Desktop GUI (recommended for beginners):
rag-mini guiTkinter desktop app with dark/light theme, search, indexing, web research, and LLM synthesis — all in one window.
Command Line (for power users):
rag-mini <command> [options]Direct commands when you know what you want.
# Index current directory
rag-mini init
# Or index a specific path
rag-mini init --path ~/my-project
# Force a complete re-index
rag-mini init --path ~/my-project --forceWhat indexing does:
- Finds all text files in your project
- Breaks them into smart "chunks" (functions, classes, logical sections)
- Creates searchable embeddings that understand meaning
- Stores everything in a fast vector database (LanceDB)
- Creates a
.mini-rag/directory with your search index
Time needed: 10-60 seconds depending on project size
Natural language queries:
rag-mini search "user authentication logic"
rag-mini search "error handling for database connections"
rag-mini search "how to validate input data"Code concepts:
# Finds login functions, auth middleware, session handling
rag-mini search "login functionality"
# Finds try/catch blocks, error handlers, retry logic
rag-mini search "exception handling"
# Finds validation functions, input sanitization, data checking
rag-mini search "data validation"What you get:
- Ranked results by relevance (not just keyword matching)
- File paths and line numbers for easy navigation
- Context around each match so you understand what it does
- Smart filtering to avoid noise and duplicates
Add --synthesize to have an LLM read the search results and explain them:
rag-mini search "authentication logic" --synthesizeThis requires an LLM endpoint (LM Studio, vLLM, or OpenAI-compatible). Without one, search still works — you just don't get the AI summary.
FSS-Mini-RAG can search the web, scrape pages, and index the content locally:
# Scrape a URL and make it searchable
rag-mini scrape https://docs.python.org/3/library/json.html --index
# Search the web and scrape results
rag-mini search-web "quantum gravity holographic mass" --engine brave
# Full pipeline: search, scrape, index (one command)
rag-mini research "proton structure quantum chromodynamics" --engine tavily
# Deep research: iterative cycles with LLM analysis and time budget
rag-mini research "quantum vacuum fluctuations" --deep --time 1hSee the Web Search & Research Guide for full details.
rag-mini statusWhat you'll see:
- How many files were processed
- Total chunks created for searching
- Embedding provider and model in use
- Configuration file location
- Index health and last update time
Your project gets a .mini-rag/config.yaml file:
embedding:
provider: openai # openai or ml
base_url: http://localhost:1234/v1
model: auto # auto-detects best available
profile: precision # precision or conceptual
chunking:
max_size: 2000 # characters per chunk
min_size: 150
search:
default_top_k: 10
enable_bm25: trueWhen to customise:
- Searches aren't finding what you expect — adjust chunking settings
- You want AI synthesis — configure an LLM endpoint (see LLM Providers)
- System is slow — try smaller embedding models or reduce chunk sizes
- Getting too many/few results — adjust
default_top_kor similarity threshold
rag-mini initYou need an OpenAI-compatible embedding server running. Recommended: LM Studio with MiniLM L6 v2 loaded. Without one, BM25 keyword search still works.
Manual method (100% reliable):
# Linux/macOS
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python -m pip install .
source .venv/bin/activate
# Windows
python -m venv .venv
.venv\Scripts\python -m pip install -r requirements.txt
.venv\Scripts\python -m pip install .
.venv\Scripts\activate.batTiming: Fast internet 2-3 minutes total, slow internet 5-10 minutes due to large dependencies (LanceDB 36MB, PyArrow 43MB, PyLance 44MB).
# Check what got indexed
rag-mini status
# Try more specific queries
rag-mini search "specific function name"
# Force re-index if needed
rag-mini init --force- Beginner's Glossary — All the terms explained simply
- Visual Diagrams — See how everything works
- Web Search & Research — Web scraping and deep research
- Query Expansion — Make searches smarter with AI
- LLM Providers — Use different AI models
- CPU Deployment — Optimise for older computers
- Technical Guide — How the system actually works
- Hybrid Search Algorithm — RRF fusion details
The best way to learn is to index a project you know well and try searching for things you know are in there. You'll quickly see how much better meaning-based search is than traditional keyword search.