Turn confusing course PDFs into clear, page-by-page self-study notes β with AI extraction, structured writing, and iterative quality review.
flowchart LR
A["π Course PDF"] --> B["π MinerU<br/>Extraction"]
B --> C["πΌοΈ Image<br/>Understanding"]
C --> D["π Structure<br/>Analysis"]
D --> E["βοΈ Note<br/>Writing"]
E --> F{"π AI Review<br/>7-Dim Score"}
F -->|"Score β₯ 8"| G["β
Final Notes"]
F -->|"Needs Work"| E
G --> H["βοΈ Notion<br/>Sync"]
Staring at a 200-page course PDF the night before the exam? We've been there.
Most students either:
- Read passively β highlight everything, remember nothing
- Copy-paste slides β end up with the same confusing content in a different format
Lecture Notes Creator takes a different approach:
| Traditional | Lecture Notes Creator |
|---|---|
| Dense slides with abbreviations | Step-by-step explanations with full context |
| Skipped derivations ("obviously...") | Complete reasoning chains from intuition to math |
| No way to check coverage | Page-by-page mapping β every slide accounted for |
| One-pass reading | Multi-round AI review until quality threshold is met |
MinerU VLM mode preserves formulas (LaTeX), tables (HTML), and figures from any PDF. No more broken equations or garbled text.
Notes strictly follow P1βP2βP3 order. Every page mapped, nothing missed β cross-reference back to the original slides in seconds.
Traditional courses (physics/chem) follow analogy β derivation β meaning. Slide-based (CS/AI) follows motivation β mechanism β application. The LLM auto-detects which style fits your PDF.
A sub-agent role-playing an undergraduate student scores each chapter across 7 dimensions. The loop iterates until score β₯8/10 β typically 1-2 rounds.
Push notes to your Notion workspace with proper formatting (headings, LaTeX, tables, callouts). No manual formatting needed.
π Full installation guide: INSTALLATION.md (English) | Quick start: QUICKSTART.md (English)
- Python 3.10+
- MinerU API Key (from mineru.net)
- (Optional) Notion API Key
git clone https://github.com/ZelinZhou-THU/lecture-notes-creator.git
cd lecture-notes-creator
pip install -r requirements.txtConfigure your .env file:
MINERU_TOKEN=your_mineru_api_key_here
NOTION_API_KEY=your_notion_api_key_here # OptionalThen open the project in OpenCode and give it your PDF. That's it.
π Detailed usage steps
-
Analyze PDF (optional, only needed if >200 pages)
python scripts/split_pdf.py analyze "path/to/courseware.pdf" --preview 3 -
Extract content (generates .bat file, double-click to run)
python scripts/create_extraction_bat.py "path/to/courseware.pdf" --output ./output_dir/mineru --mode auto -
Tell OpenCode "extraction done" β it checks status and continues
-
Sub-agent analyzes images (optional, recommended for image-heavy PDFs)
-
OpenCode handles the rest:
- Identifies courseware type (traditional / slide-based)
- Writes lecture notes page by page
- Each chapter goes through AI review iteration
- Optionally uploads to Notion
lecture-notes-creator/
βββ SKILL.md # Skill definition (core workflow)
βββ .opencode/agents/
β βββ lecture-reviewer.md # Sub-agent: quality review
β βββ image-describer.md # Sub-agent: image understanding
βββ scripts/
β βββ split_pdf.py # PDF analyze / pre-split / merge
β βββ extract_pdf.py # Page screenshots (fallback)
β βββ mineru_extract.py # MinerU API calls
β βββ create_extraction_bat.py # Generate .bat/.sh for extraction
β βββ run_mineru_standalone.py # Run MinerU outside OpenCode (cross-platform)
β βββ wait_for_extraction.py # Wait for extraction completion
β βββ reconstruct_full_md.py # Rebuild Markdown from JSON
β βββ backfill_image_descriptions.py
β βββ save_batch_json.py
βββ deps/
β βββ mineru/ # MinerU skill reference
β βββ notion/ # Notion skill (built-in)
β βββ scripts/ # Notion upload scripts
βββ references/
β βββ writing-style-guide.md # Writing style reference
β βββ review-prompt.md # Review prompt template
β βββ notion-upload.md # Notion upload guide
β βββ mineru-api-guide.md # MinerU API reference
β βββ output-structure.md # Output file structure
βββ docs/
β βββ INSTALLATION.md # Installation guide (zh)
β βββ INSTALLATION_EN.md # Installation guide (en)
β βββ QUICKSTART.md # Quick start guide (zh)
β βββ QUICKSTART_EN.md # Quick start guide (en)
βββ requirements.txt
Built with:
- MinerU β High-fidelity PDF extraction (Modified Apache License 2.0)
- OpenClaw Notion Skill β Notion API integration (MIT License)
- LobeHub MinerU Skill β Skill reference (MIT License)