Turn a scientific paper PDF into a presentation slide deck.
An Antigravity / Claude Code skill.
paper2slides is an agent skill that reads a scientific paper, extracts its figures, and produces a ready-to-present Reveal.js slide deck with speaker notes.
It works in two layers:
| Layer | Role | Implementation |
|---|---|---|
| Extraction | Pull figures from the PDF, segment into panels | Python library (paper2slides) |
| Curation | Read the paper, select key figures, write slide content and speaker notes | The agent |
The extraction step is mechanical — it gives you all the raw material. The agent then does what a human presenter would: reads the paper, decides what matters, and builds a coherent narrative.
git clone https://github.com/inhyeoklee/paper2slides-skill.git
# Copy into your workspace
cp -r paper2slides-skill/skill/ YOUR_WORKSPACE/.agent/skills/paper2slides/
cp paper2slides-skill/workflow/paper2slides.md YOUR_WORKSPACE/.agent/workflows/cd paper2slides-skill/library
pip install -e .Requires Python 3.9+ and installs PyMuPDF, Pillow, NumPy, Jinja2, and Click.
graph LR
A[Paper PDF] --> B[paper2slides CLI]
B --> C[Panel Images]
A --> D[Agent reads text]
C --> E[Agent curates slides]
D --> E
E --> F[Slide Deck + Speaker Notes]
- Extract —
paper2slides paper.pdf -o output/pulls figures at 4× DPI and segments them into individual panels - Read — The agent extracts and reads the paper text to understand the structure, results, and narrative
- Curate — The agent selects the most important panels, writes slide titles and captions, and composes speaker notes
- Verify — The agent opens the deck in a browser to check rendering
Tell the agent:
/paper2slides
Create a presentation from: path/to/paper.pdf
Or use the CLI directly for just the extraction step:
paper2slides paper.pdf -o ./output --serve- 16:9 Reveal.js deck with light/dark themes
- Speaker notes embedded in each slide (press
Sto view) - Interactive figures — zoom, pan, and lightbox on any image
- Standalone speaker notes as a separate markdown file
- Settings panel for font, figure scale, and transitions
paper2slides-skill/
├── skill/ # → .agent/skills/paper2slides/
│ ├── SKILL.md # Agent instructions
│ └── resources/
│ ├── template_shell.html # Reveal.js template
│ ├── slides.css # Presentation styles
│ └── speaker_notes_template.md
├── workflow/ # → .agent/workflows/
│ └── paper2slides.md # /paper2slides command
├── library/ # → pip install -e .
│ ├── pyproject.toml
│ └── src/paper2slides/
│ ├── cli.py # CLI entry point
│ ├── extractor.py # PDF figure extraction
│ ├── segmenter.py # Panel segmentation
│ ├── generator.py # HTML generation
│ └── templates/
├── LICENSE
└── README.md
PRs welcome. Some directions:
- PPTX / Google Slides export
- OCR-based panel label detection
- Multi-paper decks
MIT