Skip to main content

SlideDesk

SlideDesk indexes a folder full of .pptx files (and sub-folders), allowing you to browse everything in a touch-friendly browser GUI. It also has a similarity search, allowing you to rediscover slides and build slide decks efficiently.

Install

It is recommended to install SlideDesk in a conda-forge environment.

pip install slidedesk

Additional requirements

  • Works on Windows only
  • Requires Microsoft PowerPoint installed
  • Requires Poppler. You can install poppler like this
conda install poppler

Usage

slidedesk /path/to/folder

Note: If you run this for the first time on a folder that contains many slide decks, the initial scan may take hours depending on your computer. You will slide decks once they are scanned and a progress bar in the top right corner shows how far scanning and embedding are done.

Alternatively, navigate to the folder and run SlideDesk from there:

cd /path/to/folder
slidedesk .

This creates (or opens) a .slidedesk/slidedesk.db SQLite project file inside the folder, starts scanning it for .pptx files in the background, and opens a browser GUI at http://127.0.0.1:5000. You can also make it use a different port using the --port 8989 option.

To browse decks already stored in slidedesk.db without scanning folders for changes or new decks:

slidedesk /path/to/folder --no-scan

This disables startup and recurring folder scans. The background embedding worker is also stopped in this mode. You can still explicitly refresh an individual indexed deck from the GUI.

How it works under the hood

SlideDesk downloads models from Hugging Face on first use, to run them locally Hence, it does not need an API key or an OpenAI-compatible server.

  • Slide texts are embedded using the intfloat/multilingual-e5-large-instruct model. Thanks to this, you can search for terms such as "image filtering" and it may find slides about "image processsing", too.

  • Slide images are embedded locally with openai/clip-vit-base-patch32.

  • Advanced Search generates editable slide outlines locally with the text-generation small language model Qwen/Qwen3.5-0.8B. The model is downloaded on first use.

The background worker stores vectors in slidedesk.db.

“Show similar slides” presents one list: visual matches first, followed by additional text matches, excluding duplicates. Either cache can supply results while the other is still being built or unavailable.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. Note: Large parts of the code in this repository were vibe-coded using GitHub Copilot integration in Visual Studio Code. When modifying code here, consider using a similar tool.

Acknowledgements

We acknowledge the financial support by the Federal Ministry of Research, Technology and Space of Germany and by Sächsische Staatsministerium für Wissenschaft, Kultur und Tourismus in the programme Center of Excellence for AI-research „Center for Scalable Data Analytics and Artificial Intelligence Dresden/Leipzig“, project identification number: ScaDS.AI

Metadata

Release files for slidedesk 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for slidedesk 0.1.0
File Size Uploaded
slidedesk-0.1.0.tar.gz 56.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for slidedesk 0.1.0
File Interpreter ABI Platform
slidedesk-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 107.5 kB

Release files / slidedesk-0.1.0.tar.gz

Download URL slidedesk-0.1.0.tar.gz
Size 56.7 kB
Tags Source
SHA-256 checksum
How to use checksums
043d20e2d24643a013e3f6ec2d510d0171f5305bc3cfc1562c01e30781ee98c7
BLAKE2b-256 checksum
How to use checksums
10c9f23584705dce3ea7b7e9baf1ebd119108258b7aec0f210d7be47ee730f84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / slidedesk-0.1.0-py3-none-any.whl

Download URL slidedesk-0.1.0-py3-none-any.whl
Size 50.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e185a624e5ef5c88802def252e5e89d289fd75c159f57e943cdfc4876d4d9cc0
BLAKE2b-256 checksum
How to use checksums
44c742cbbff9f9de0e6d80ad9bb14ea9a59b0eaafeb78c10062c937385b5185e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release history Release notifications | RSS feed

0.2.0

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page