git404hub

what is jasrag fr?

andrewlerdorf/jasrag — explained in plain English

Analysis updated 2026-05-18

0PythonAudience · developerComplexity · 3/5Setup · easy

tl;dr

JAS RAG is a local-first Python retrieval tool that uses SQLite keyword search instead of embeddings or a vector database to feed relevant document chunks to an LLM.

vibe map

mindmap
  root((JASRAG))
    What it does
      Keyword based retrieval
      SQLite FTS5 index
      No embeddings or vector DB
      Builds LLM ready context
    Tech stack
      Python
      SQLite
      FTS5
    Use cases
      Local knowledge base search
      RAG context building
      Retrieval quality evaluation
    Design
      Chunk and document indexes
      Heuristic chunking
      Health checks

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

what do people make with this?

VIBE 1

Build a local knowledge base search tool over Markdown, PDF, EPUB, HTML, or text files without external APIs.

VIBE 2

Feed an LLM ranked, formatted context chunks pulled from your own document collection.

VIBE 3

Run health checks and retrieval evaluations to measure whether keyword search is good enough before adding vector search.

what's the stack?

PythonSQLiteFTS5

how it stacks up fr

andrewlerdorf/jasrag0xallam/my-recipe0xhassaan/nn-from-scratch
Stars00
LanguagePythonPythonPython
Last pushed2022-11-22
MaintenanceDormant
Setup difficultyeasymoderatemoderate
Complexity3/52/54/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

how do i run it?

Difficulty · easy time til it works · 30min

No external API or vector database needed, runs entirely on local SQLite with the Python standard library and CLI.

License terms are not stated in the README, check the repository's LICENSE file before using in a commercial project.

in plain english

JAS RAG, short for Just Another Simple RAG, is a local-first Python tool for retrieval augmented generation, the technique of pulling relevant text out of a collection of documents and handing it to a language model as context before it answers a question. What makes this project different is that it deliberately skips the usual approach. It does not use embeddings, a vector database, a reranker model, or any external API. Instead it relies entirely on SQLite, a lightweight database format, and its built in full text search feature called FTS5 to find matching text using keywords. You feed it files such as Markdown, PDF, EPUB, HTML, or plain text, and it indexes them at two levels: whole documents and smaller chunks within those documents. When you run a query, it can search either the chunk level index to build a formatted block of context ready to hand to an LLM, or the document level index to browse which files match, using a separate ranking step that boosts results by source type, category, and title. The chunking step is a set of heuristics rather than anything fancy. It strips frontmatter and HTML comments, normalizes whitespace, figures out whether the content looks structured, like a list, narrative, or plain reference text, then splits it accordingly, aiming for chunks around 2000 characters with some overlap between them. A checksum system avoids re-indexing files that have not changed. The project also includes health check commands that report on database consistency, such as orphaned index rows or oversized chunks, plus an evaluation tool that checks retrieval quality against a set of test queries. The README is explicit that this is meant as a baseline: the intended path is to prove keyword search is insufficient before bothering to add vector search on top, rather than assuming it from the start. It suits developers who want a dependency-light, fully local, easy to debug starting point for building a knowledge base search system.

prompts (copy fr)

prompt 1
Show me how to index a folder of Markdown files with JAS RAG and query it from the command line.
prompt 2
Explain the difference between JAS RAG's query command and its search command.
prompt 3
Write a Python script that uses JAS RAG's KnowledgeVault to build LLM-ready context from a user question.
prompt 4
How would I extend JAS RAG's eval tool with my own golden query test set?

Frequently asked questions

what is jasrag fr?

JAS RAG is a local-first Python retrieval tool that uses SQLite keyword search instead of embeddings or a vector database to feed relevant document chunks to an LLM.

What language is jasrag written in?

Mainly Python. The stack also includes Python, SQLite, FTS5.

What license does jasrag use?

License terms are not stated in the README, check the repository's LICENSE file before using in a commercial project.

How hard is jasrag to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is jasrag for?

Mainly developer.

peek the repo → explain another one

This repo across BitVibe Labs

double-check against the repo, no cap.