Pass Wizard
A fork-and-fill study-site framework. Bring your own source material, let an LLM do the rest.
What it is
Pass Wizard is a study-site framework for certification exams. It ships the UI — course reader, practice quiz, skill tree, story-driven companion, and a local progress dashboard — and gets out of your way. You fork the repo, drop your own source material into a local folder, and point a generator at it. An LLM reads the material and writes a full study site for whatever exam you’re chasing.
No account. No backend. No tracking. Your progress lives in localStorage, your source material never leaves your machine, and the generated content stays local unless you choose to commit it.
How it works
1. Fork
Clone the repo. Pure static HTML/CSS/JS — no build step, no node_modules.
2. Scaffold an exam
tools/new-exam.py --code AZ-500 creates the folder structure and a minimal meta.json.
3. Drop your sources
PDFs, markdown, text dumps — anything readable goes into dropbox/<slug>/. Gitignored by default.
4. Generate
tools/generate.py <slug> all hands the sources to an LLM, which writes the quiz bank, course modules, skill tree, and companion guides.
5. Study
python3 -m http.server and open the site. Everything runs locally.
What the framework ships
- Exam-agnostic quiz engine — weighted question bank, domain filtering, weak-question drilling, session history.
- Course reader — clean typography, mobile-first, works great on a phone.
- Skill tree — RPG-style progression map with tiered unlocks.
- Companion — interactive story-driven walkthroughs. Learn by playing, not memorizing.
- Progress dashboard — sparkline history, mastery grid, weakest questions. Export and import as JSON.
LLM backends
One adapter interface, two backends out of the box:
- Claude API (default) — best generation quality. Set
ANTHROPIC_API_KEYand go. Prompt caching keeps costs down on re-runs. - Ollama (local) — no API key, no cloud. Point at any local Ollama server via
OLLAMA_HOST. Slower, but free and offline.
Swap with PW_LLM_BACKEND=claude|ollama. Bringing a third backend is a single file.
Privacy
- No account, no backend. Everything runs client-side.
- No analytics, no tracking pixels, no third-party scripts.
- No Google Fonts. Self-hosted or system fallback — no IP leak on page load.
- Your progress lives in
localStorageunderpasswizard:<exam-code>. It never leaves your device. - Your source material stays local. The
dropbox/folder is gitignored. Generated content is gitignored. Nothing goes to the public repo unless you explicitly stage it.
Tech
Vanilla HTML, CSS, and JavaScript for the site — no frameworks, no bundlers, no dependencies. Python for the generator tooling. Static output hosts anywhere: GitHub Pages, Netlify, a USB stick, python3 -m http.server.
Status
The framework is under active development. The UI engine is stable (built on the AZ-104 content). The generator pipeline is being rolled out in phases — see docs/framework.md in the repo for the current design and phase plan.
License
MIT.