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.
Similar and related projects
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)
| File | Size | Uploaded | |
|---|---|---|---|
| slidedesk-0.1.0.tar.gz | 56.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|