skills/flashcards/SKILL.md
Render study flashcards into an interactive HTML deck.
npx skillsauth add serenakeyitan/open-exam-skills flashcardsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Convert AI-generated JSON flashcards into NotebookLM-style interactive study interface. Beautiful flip animations, keyboard shortcuts, and one-click CSV export.
Input: JSON file with question/answer pairs (generated by AI) Output: NotebookLM-style interactive HTML
This is a pure frontend converter - AI (Claude/Gemini) generates the flashcards as JSON, this skill renders them with NotebookLM's exact UI/UX.
1. User: "Claude, generate 50 flashcards about quantum physics"
2. Claude: Generates JSON with {question, answer} pairs
3. Save JSON to file (e.g., flashcards.json)
4. Run from `skills/flashcards`: `python main.py -i flashcards.json -o flashcards.html`
5. Open HTML → NotebookLM-style flashcard interface
Optimized for exam preparation:
Answer formatting supports:
•, -, * followed by content1., 2., 3. or 1), 2), 3)a., b., c. or a), b), c)[
{
"question": "What are the three main types of chemical bonds?",
"answer": "• Ionic bonds\n• Covalent bonds\n• Metallic bonds"
},
{
"question": "List the steps of photosynthesis.",
"answer": "1. Light absorption\n2. Water splitting\n3. ATP production\n4. Carbon fixation"
}
]
{
"title": "Quantum Physics Flashcards",
"flashcards": [
{
"question": "What is quantum superposition?",
"answer": "A state where a qubit exists in multiple states simultaneously."
}
]
}
cd skills/flashcards
python main.py --input flashcards.json --output flashcards.html
Parameters:
--input, -i: Input JSON file (required)--output, -o: Output HTML file (default: flashcards.html)Use LaTeX delimiters in questions or answers to render formulas:
$E=mc^2$ inline, or $$\nabla \cdot \vec{B} = 0$$ block
Notes:
$...$ and block math uses $$...$$.\$ to avoid math parsing.fonts/ folder is created next to the HTML for offline rendering.| Action | Behavior | |--------|----------| | Click card | Flip to show answer | | Press Space | Flip card | | Press → | Next card | | Press ← | Previous card | | Click navigation arrows | Move between cards | | Click download icon | Export to CSV | | Click reset icon | Return to first card |
Click the download icon to export all flashcards as CSV:
question,answer
"What is quantum superposition?","A state where..."
"What is quantum entanglement?","A phenomenon where..."
Perfect for importing into:
| Feature | This Skill | NotebookLM | |---------|-----------|------------| | Single-card view | ✅ | ✅ | | Flip animation | ✅ | ✅ | | Keyboard navigation | ✅ | ✅ | | CSV export | ✅ | ✅ | | Purple gradient | ✅ | ✅ | | Progress counter | ✅ | ✅ | | Explain button | ⏭️ Future | ✅ |
pip install -r requirements.txt
Only requires: loguru (logging)
"Generate 30 flashcards about [topic] in JSON format.
Use this structure:
[
{"question": "...", "answer": "..."}
]
"
Same prompt works across any AI model that can generate structured JSON.
User: "Create 20 flashcards about ESPM 42 entomology topics"
Claude: Generates JSON and saves to entomology.json
cd skills/flashcards
python main.py -i entomology.json -o entomology.html
entomology.html in browserWant to change the colors? Edit main.py lines 36-37:
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
Want different card size? Edit line 74:
height: 420px;
tools
Route requests to the right Open Exam Skills before responding.
research
Deliver interactive practice quizzes from study material.
development
Run citation-check before delivering factual outputs.
tools
Run the student exam prep workflow (mindmap → flashcards → quiz).