This project has been archived by its maintainers, and is no longer receiving any updates.
📘 JupDeck
Convert Jupyter notebooks to Presentation-Ready Slide Decks.
Ideal for:
- Technical consultants
- Data scientists
- Instructors
- Teams presenting notebook work to non-technical stakeholders
What It Does
This tool transforms .ipynb notebooks into structured .pptx presentations.
- Markdown Headers become slide titles
- Markdown Bullets become slide bullets.
- Plots and Tables become slide graphics.
- Markdown Text becomes speaker notes.
Quick Start
Pip install the package:
pip install jupdeck
Convert a notebook to slides:
jupdeck convert examples/data/jupdeck_overview.ipyng outputs/output.pptx
JupDeck Roadmap
This roadmap outlines the phased development plan for the JupDeck tool. The goal is to build a system that transforms Jupyter Notebooks into professional PowerPoint presentations, supporting data science reporting, executive summaries, and technical documentation.
1: Baseline Slide Generator
Goal: Prove core functionality: parse notebooks and render working PowerPoint output with embedded graphics.
Features:
- Parse notebook markdown structure and code cell outputs
- Generate PowerPoint slide decks (
.pptx) - Embed output graphics (e.g., plots, images, tables) into slides with generic/simple formatting
- PyPI and GitHub releases with versioning
Notes: "User in the loop" for clean up of formated slides necessary
2: Notebook Slide Directives
Goal: Interpret slide layout directives from Jupyter notebooks
Features:
- [] Rudimentary directives can be embedded as html-comments in markdown cells
- [] Directives control simple formatting, e.g. "New Slide", "Hide Tables"
3: Improved Layouts
Goal: Automatically Adapt Slide Layouts
Features:
- [] 3 different content slide layouts offered plus intro / ending layouts
- [] Layout rules encoded in reusable config file
- [] During slide rendering, best layout for slide chosen based on contents
- [] Format validation during rendering (e.g. image resolution, text overflow)
4: Custom Theming and Templates
Goal: Use Custom Styling Templates and Themes
Features:
- [] Choose between 3 custom styling templates (e.g. dark mode, corporate, academic)
- [] Add user-defined templates
5: Custom Content Filtering
Goal: Generate different decks depending on audience
Features:
- [] Directives mark content for different rendering scenarios (e.g. technical vs. non-technical, internal vs. external)
- [] Command-line flag controls rendering scenario and generates appropriate deck (e.g.
jupdeck input.ipynb --theme internal --no-code) - [] Reusable configuration profiles (YAML)
6: VS Code Plugin
Goal: Notebook rendering from VS Code
- [] Plugin allows notebook rendering from VS Code interface
- [] Plugin provides suggestions during notebook editing
7: Basic LLM Editing Support
Goal: Use LLMs for editing support Features:
- [] Summarize markdown into concise, audience-appropriate bullets
- [] Align slide tone with target audience (e.g. "executive-friendly", "technical peer review")
8: LLM Slide Enhancement
- [] Integrate conversational interface to notebook
- [] Auto-suggest slide titles and bullets from raw code/markdown
- [] Validate presentation claims against content: "This model seems to be overfit", "This chart does not support the title claim"
9: Team Collaboration & Workflow Integration
Goal: Support real-world enterprise workflows
- [] GitHub Actions to auto-render slides from notebooks on PR merge
- [] Enable shared template libraries across teams
- [] Add comments/annotations for reviewer workflows
💡 Why?
Jupyter notebooks are fantastic for exploratory work — but hard to present clearly. This tool turns notebook narratives into shareable reports for clients, collaborators, and classrooms.
🧪 Development & Testing
poetry run pytest # Run test suite
poetry run pre-commit run --all-files # Run linters and formatters
📄 License
Apache License 2.0 — permissive for personal, educational, and commercial use. (See LICENSE file)
Metadata
Release files for jupdeck 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jupdeck-0.1.1.tar.gz | 10.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jupdeck-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.8 kB
Release files / jupdeck-0.1.1.tar.gz
| Download URL | jupdeck-0.1.1.tar.gz |
|---|---|
| Size | 10.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e6e3c45e47e9783998c21100813033c735b0481a0d1d45784b27323ef2084970
|
|
BLAKE2b-256 checksum How to use checksums |
72d068c72de5f4cf6651aa699c9891ae007a8a1ae79714ded4d425e1ca5650df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.13.5 Darwin/23.6.0
|
Release files / jupdeck-0.1.1-py3-none-any.whl
| Download URL | jupdeck-0.1.1-py3-none-any.whl |
|---|---|
| Size | 11.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fc54900485253e7b496852b884b0e738e87d556a85005051fe736988b94650d3
|
|
BLAKE2b-256 checksum How to use checksums |
67b462134201d39367a04ecffa3467ce51f58293a4821d437e400c3a748f8182
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.13.5 Darwin/23.6.0
|