Show HN: Raggy – A lightweight CLI tool for RAG over local documents Developer paulknysh released Raggy, a lightweight CLI tool for retrieval-augmented generation (RAG) over local documents, built with LangChain, Chroma, and Ollama. Raggy runs a hybrid vector and BM25 index with local embedding generation, supports PDF, DOCX, PPTX, TXT, MD, Markdown, HTML, and image formats via OCR, and can generate answers either through a local LLM or remotely via OpenAI, Anthropic, or Google API keys. The tool requires Python 3.10 or newer and is installed by cloning the GitHub repository and running an editable install with uv or pipx. A lightweight CLI tool for Retrieval-Augmented Generation RAG over local documents built with LangChain, Chroma, and Ollama. Hybrid database vector + BM25 index and embedding generation run fully locally. Answer generation can run either via a local LLM or remotely using an API key. raggy supports most common document formats and handles images/scans automatically via OCR. Usage example -- CLI returns an answer based on your documents, and citations along with their locations and relevance scores: These are all currently supported file formats all other formats are ignored : | Type | Extensions | |---|---| | Documents | .pdf , .docx , .pptx | | Text | .txt , .md , .markdown | | Web | .html , .htm | | Images OCR | .png , .jpg , .jpeg , .bmp | Ollama is required for running the local embedding model which feeds the on-disk vector DB , and also a local LLM if needed . To install Ollama: curl -fsSL https://ollama.com/install.sh | sh may need to start ollama after installation using the app or: ollama or ollama serve If an API key will be used for accessing an LLM remotely, a standard environment variable needs to be set one of the following : export GEMINI API KEY=... export OPENAI API KEY=... export ANTHROPIC API KEY=... Python 3.10 or newer is required; installing uv is recommended: curl -LsSf https://astral.sh/uv/install.sh | sh Clone the repo: git clone https://github.com/paulknysh/raggy.git && cd raggy Then install using: with uv uv tool install -e . with pipx pipx install -e . For now, cloning + editable install is picked as a preferred installation method, as it allows you to experiment with the demo dataset, run the eval harness, and edit/debug code if needed. In the future, direct install via uv tool install git+https ... / pipx install git+https ... will be used instead. First, run this command inside the cloned repo: make config It creates your own user config config.yaml where all your execution parameters live. While config.yaml comes with defaults you can test, you should populate sources your input folders/files and db directory DB location sections with your preferred paths. For a detailed overview of all config parameters, see Configuration configuration . To start the CLI, use the raggy