StudyLoop

Turn any textbook or web page into a personal tutor that runs on your own computer

Source on GitHubSee it working (37 screenshots)

This page is a showcase. StudyLoop runs on your own computer: clone the repository and run uv run studyloop, or double-click run.bat. Every screenshot below is the real app, captured after the input in its caption was typed or loaded.

Turn any textbook, lecture notes or web article into a personal tutor that runs on your own computer, with no GPU, no account and no model required. It is for students and self-learners who want to study a text actively and get answers they can check against the source.

Add a PDF, a markdown or text file, pasted notes or a web address. StudyLoop turns it into a navigable course (chapters, topics, key concepts), answers questions using only the book and shows exactly where every quote sits, quizzes you topic by topic, tracks what you know, tells you what to review next, and remembers your progress, notes and questions between sessions. Questions can be asked in English, Urdu or Roman Urdu.

What it does

Inputs

Feature File upload Drag and drop Paste Hint and example
Library (add a book) file picker: PDF, .md, .txt, .html, up to 60 MB, with a progress bar onto the drop box (one file; a dragged link or text is also taken) web address, or text (markdown headings kept) each input shows what it expects and has "Load example"; wrong type, size or empty file is refused in the browser with a clear message
Ask the book not applicable not applicable one question, up to 1,000 characters example chips; to ask about your own passage, paste it as text in the Library, where it becomes a book
Notes not applicable not applicable typed or pasted on a topic page none

The app also has an About page (nav entry and "?" in the header): what it is, how to use each input, limits, privacy, roadmap, the maker.

Tech stack

Run it

uv run studyloop            # starts the server, opens http://127.0.0.1:8765, loads the sample book on first run

or double-click run.bat. Options: --port, --no-browser, --no-sample, --db FILE. Data lives in ~/.studyloop/studyloop.sqlite3 (set STUDYLOOP_HOME to move it). Python 3.11+ and uv; everything runs on the CPU and works offline.

Optional language model (never required): set before launching

STUDYLOOP_LLM=ollama      STUDYLOOP_LLM_MODEL=qwen2.5:3b          # CPU Ollama on localhost:11434
STUDYLOOP_LLM=anthropic   ANTHROPIC_API_KEY=...                   # STUDYLOOP_LLM_MODEL defaults to claude-haiku-4-5
STUDYLOOP_LLM=openai      OPENAI_API_KEY=...  STUDYLOOP_OPENAI_BASE_URL=...

With a model, answers are written in prose and quizzes can add model-written questions. Neither is trusted: a quote that is not found in the book is dropped, and a model question is kept only when its supporting quote is found in the topic. If the model is down, the extractive answer is shown instead.