Adaptive spaced-repetition quiz engine. Turn a book into a question module and drill it until it sticks.
QuizLoop separates the engine from the content. The engine is this repository: a desktop application for Windows, macOS and Linux that schedules questions, scores answers and explains mistakes. The content lives in modules, question banks generated from source material. Modules are not part of this repository; only a five-question sample ships with it.
Recommended on Windows: Teknesyum Base.
- Download
Teknesyum-Base.exe(.sha256) and run it. No admin rights are needed. - Find Quizloop in the list and install it. Base also updates and removes it later.
Base is not code-signed yet, so Windows SmartScreen may warn on first launch: choose More info, then Run anyway. More: Teknesyum Base.
Other platforms, or manually:
Download the latest build from Releases:
| Platform | File | Updates |
|---|---|---|
| Windows | quizloop-<version>-setup.exe |
Asks before it downloads and again before it installs |
| macOS | quizloop-<version>-unsigned.dmg |
The app tells you when a new version is out |
| Linux | .AppImage or .deb |
The app tells you when a new version is out |
iPhone, iPad, Android, or any browser: use QuizLoop Web, described under Web version.
The macOS build is unsigned, so Gatekeeper blocks the first launch. Clear the quarantine attribute once:
xattr -cr /Applications/Quizloop.app
QuizLoop Web is the same engine running in a browser: https://teknesyum.github.io/Quizloop/. Nothing comes from a store, there is no account, and it works offline after the first visit. Your progress and your modules stay on the device.
Install
- iPhone, iPad: open the address in Safari, tap Share, then Add to Home Screen, then Add.
- Android: open it in Chrome, tap the three dots, then Install app (or Add to Home screen), then Install.
- Computer: open it in Chrome or Edge. It runs as a tab; the install icon in the address bar turns it into its own window.
First use. Install The Sample Modules adds two samples to try.
Add A Module File imports a .qlmod file. The three-dot menu at the top right holds text size, language
and the support link. The first visit needs a connection.
Updates arrive on their own: a new version downloads in the background and takes over the next time the page is reloaded or reopened. The running version is shown next to the title. Progress is kept.
Limits to know about
- No backup or export yet. Clearing the browser's site data, or removing the home-screen app, erases your progress.
- Nothing syncs between devices or browsers.
- On an iPhone the Safari tab and the home-screen icon keep separate data. Pick one and stay with it.
- One tab at a time; a second tab is told the app is already open.
- No reminder notifications.
- Tapping a
.qlmodfile does not open the app; import it from inside. - Older phones may not run it. iOS 17 or later is a safe floor.
- The question appears without its options. You think first.
- You ask for the options. Answering without them earns a bonus.
- A correct pick scores. A wrong pick costs points, removes that option and prints an explanation written for that specific wrong answer.
- When the question closes, the solution plays back with its source: file, pages and the quoted passage. If the book is on disk, the page opens in a built-in viewer with the passage highlighted.
- You mark the question understood, partly understood or not understood. Scheduling runs on FSRS-6; understood questions retire.
Sessions, the library, chapters and the question bank work from the keyboard; the session and the bank list their keys at the bottom of the screen.
A module is a folder with module.json, blocks/ and assets/. Drop the
folder on the library, or pick it with Klasör seç. The JSON Schema for
every file is in schema/.
The question bank lists every question of a module with its state. Flag a
broken question with F and export the flags as JSON; the generator reads
that file and regenerates only the affected units.
tools/quizforge is the production line. It
extracts the text layer of a PDF, plans units, generates questions, verifies
them and packs the module. Every question carries its kaynak: file, pages and
quote.
Ayarlar → Taşıma paketi writes progress, modules and settings to one folder. Carry it on a USB stick and import it on the other machine. The old database is kept as a backup.
Node 22 and npm are the only prerequisites.
npm install
npm run dev
npm test, npm run typecheck, npm run lint and npm run ui:scan must pass
before a commit. Packaged builds come from npm run build:win, build:mac or
build:linux. Pushing a v* tag builds all three on GitHub Actions and opens a
draft release.
See docs/PLAN.md for the architecture.
AGPL-3.0-or-later. See LICENSE.
Privacy: see the Privacy Policy.
Copyright (C) 2026 Teknesyum