Turn your NotebookLM notebooks into a personal exam tutor. Works with any AI agent. Works for any subject.
exam-prep is a self-contained AI skill that:
- Pulls your study material from a Google NotebookLM notebook
- Generates a tailored study pack (notes, key terms, stats, examples)
- Generates a practice quiz in active-recall format
- Generates an essay framework (PEEL, CER, custom — whatever your teacher uses)
- Drills you live with progressive difficulty and structured feedback
All logic lives in a single SKILL.md — no separate scripts. Any AI agent that can run bash commands can use it.
Built on top of the notebooklm-skill.
One line — clones this repo into ~/.claude/skills/exam-prep/, sets up Python deps, installs Chromium, and walks you through Google login:
curl -fsSL https://raw.githubusercontent.com/EdmundLimBoEn/exam-prep-skill/main/install.sh | bashThen restart Claude Code.
Drop SKILL.md into your agent's context — paste it into a system prompt, an AGENTS.md, or however your tool loads custom instructions. The file is self-contained: Phase 0 walks the agent through setup (Python check, cloning notebooklm-skill, bootstrapping the venv, Google auth). No separate install script needed.
Once set up, just talk to your AI like you'd talk to a tutor:
You: I have a science test on Friday — 60 marks, 1.5 hrs, MCQs + structured + 1 essay.
Topics: cells, photosynthesis, respiration. Notebook: https://notebooklm.google.com/notebook/abc-123
AI: [asks 8 quick intake questions about format, frameworks, skills tested, etc.]
[pulls content from your notebook — 2-3 NotebookLM queries]
[writes ~/Documents/Science/STUDY-PACK.md, QUIZ.md, SKILLS.md, ESSAY.md]
[asks: "Want me to drill you live? ~15 min."]
After the first run, come back and say:
You: Quiz me on my science test.
AI: [reads ~/Documents/Science/STUDY-PACK.md frontmatter to recover context]
[starts the quiz — no re-intake needed]
- Geography (S2) — SAQs + essay using PEEL+L; photo analysis + data interpretation
- Science practical — apparatus, method, variables, error sources
- History — source-based questions with provenance + inference
- Literature — quote bank + PEE essay scaffolds
- Math — stepped problems, calculator-allowed vs not
- Language — vocab + comprehension techniques
After one run, in ~/Documents/<Subject>/:
| File | Purpose |
|---|---|
STUDY-PACK.md |
Notes by topic + cheat-sheet of key facts/stats |
QUIZ.md |
25–40 active-recall Q&A pairs, three difficulty tiers |
SKILLS.md |
Technique drills + command-word table (Describe vs Explain etc.) |
ESSAY.md |
Essay framework, likely prompts, one fully-worked model answer |
PRAC.md |
(For practicals) Method skeleton, variables, error sources |
All files are plain markdown — open in any editor or markdown viewer.
- macOS or Linux (Windows users: use WSL)
- Python 3.10+
- Google account with NotebookLM access
- A NotebookLM notebook with your study material uploaded
- An AI agent that can run shell commands
NotebookLM notebook (your textbook + slides + past papers)
│
▼
AI asks 8 intake questions about your test
│
▼
Sends 2–4 targeted queries to NotebookLM
│
▼
Writes 3–5 markdown files to ~/Documents/<Subject>/
│
▼
Live oral quiz with framework-aware feedback
All logic is in SKILL.md. The AI reads it and orchestrates the notebooklm-skill Python scripts via bash. No new runtime dependencies beyond what setup installs.
- Your notebook content stays in NotebookLM (Google). Queries go from your machine → NotebookLM → back to your machine.
- Auth state is stored locally in
~/.claude/skills/notebooklm-skill/data/browser_state/— never leaves your machine. - No telemetry. No analytics. No phone-home. The install script makes only
git cloneandpython -m patchright install chromiumnetwork calls. - Generated study files live in
~/Documents/<Subject>/on your machine.
| Problem | Fix |
|---|---|
| "Authenticated: No" | Ask the AI to re-run Phase 0 Step 5, or run python3 ~/.claude/skills/notebooklm-skill/scripts/run.py auth_manager.py setup |
| "Timeout waiting for answer" | NotebookLM was slow — shorten the query or try again |
| "Chromium distribution 'chrome' is not found" | Ask the AI to re-run Phase 0 Step 4 Patch A |
| Rate limit hit (50/day) | Free Google accounts are limited; wait 24h or use a different account |
| Skill not detected (Claude Code) | Restart Claude Code |
Re-run the install command. It detects existing installs and prompts to update via git pull.
curl -fsSL https://raw.githubusercontent.com/EdmundLimBoEn/exam-prep-skill/main/install.sh | bashrm -rf ~/.claude/skills/exam-prep
# Optional: also remove notebooklm-skill if you're not using it elsewhere
rm -rf ~/.claude/skills/notebooklm-skillGenerated study packs in ~/Documents/<Subject>/ are left untouched.
PRs welcome — open an issue first for bigger changes.
Areas where help is wanted:
- Subject-specific quiz templates (math, languages, art)
- Windows / WSL install path
- Port guides for other AI agents (Cursor, Aider, OpenCode)
MIT. See LICENSE.
- notebooklm-skill — upstream NotebookLM browser automation
- Built with Claude Code