PPTX Viewer & PPT Viewer, PowerPoint Viewer & Slideshow

PPTX Viewer & PPT Viewer, PowerPoint Viewer & Slideshow, a VS Code extension by Zovo

PPTX Viewer opens PowerPoint decks right in VS Code: .pptx, .ppsx, .potx and old .ppt files, with thumbnails, speaker notes, search and full screen Present. Check a deck that a script, python-pptx or an AI agent (Claude Code, Copilot, Cursor) just wrote: the slide reloads each time the file is saved. It reads files through VS Code, so it also works over Remote SSH, WSL, Dev Containers and Codespaces. No LibreOffice, no upload.

Install in VS CodeOpen the Marketplace page

Free, MIT license. Needs VS Code 1.90.0 or newer. Extension ID zovo.pptx-slide-viewer, version 0.4.0.

<p> </p>

A 197 MB, 42-slide USGS deck open in VS Code. Slide thumbnails on the left; slide 2, "USGS EROS Center", with a panorama and eight photos in the middle; the toolbar with Present, search and Copy: Markdown, PNG, All

A real VS Code window running version 0.4.0 on a public 197 MB, 42-slide deck from the U.S. Geological Survey (public domain). The first slide showed in about 5 seconds.

Quick start

  1. Install the extension.
  2. Click any .pptx, .ppsx, .potx, .pptm or .ppt file in the Explorer. Press Ctrl+F (Cmd+F on macOS) to search.
A click on the .pptx file opens slide 1. Clicks on the thumbnails move to slides 2, 3 and 4, and a search for latency lists the matching slides in the Outline tab

Recorded in the same window. The white arrow is drawn in to show where each click lands.

Run "Get Started with PPTX Slide Viewer" from the Welcome page for a short tour.

Questions people ask

Is PPTX Viewer & PPT Viewer, PowerPoint Viewer & Slideshow free?

Yes. PPTX Viewer & PPT Viewer, PowerPoint Viewer & Slideshow is free and MIT licensed.

How do I install PPTX Viewer & PPT Viewer, PowerPoint Viewer & Slideshow?

Click "Install in VS Code" above, or search for zovo.pptx-slide-viewer in the Extensions view.

Present

Click "Present" in the toolbar, or run "PPTX: Present Slides (Full Screen)". The current slide fills the screen on black. →, ↓, Space, Page Down, Enter or a click go to the next slide; ←, ↑, Page Up or Backspace go back; Home and End jump to the first and last slide. Esc ends it. VS Code switches to Zen Mode (full screen, no side bars) while you present and switches back on Esc. Set pptxViewer.presentFullScreen to false to present inside the editor tab only.

Present mode in VS Code: slide 4 of 6 fills the screen on black, with the slide number at the bottom

Old .ppt files (PowerPoint 97-2003)

.ppt, .pps and .pot files open as text: each slide's title, its text and text boxes, and its speaker notes, in slide order. The outline, search, the notes pane and Copy as Markdown work as they do for .pptx. A line at the top says the file is text only, because pictures, shapes and layout are not read, and its "Open in Default App" button opens the file in PowerPoint or Keynote. The file is read by the extension itself, so nothing else needs to be installed. A .pptx deck that was saved with a .ppt name is spotted by its first bytes and drawn as a normal deck. Password-protected and damaged files get a message, never an empty page.

An old .ppt deck open in VS Code as text, with the slide title, its lines and the speaker notes, and a line at the top saying it is a PowerPoint 97-2003 file shown as text

Search slides and notes

Type in the search box. The Outline tab lists every slide where the word appears, with the match marked, and says when the match is only in the notes. Enter goes to the next matching slide and Shift+Enter to the previous one. Esc clears the search.

Search for latency. The outline lists slides 1, 2, 3 and 6 with the word marked, and slide 3 shows a table of latency by region.

Without a search, the Outline tab shows each slide title with its first lines of text, which is a quick way to skim a long deck.

Zoom and scroll view

Use the - and + buttons or the zoom list in the toolbar. The list has Fit slide, Fit width and fixed sizes from 50% to 400%, and it shows the real percent. Ctrl or Cmd with the mouse wheel zooms around the mouse, and so does a trackpad pinch. A slide larger than the editor scrolls, so you can read a small table or chart label.

"Scroll" puts every slide in one column, like a document. The slide in view becomes the current one, so the thumbnails, the slide number and the speaker notes follow you as you scroll. Slides are drawn as they come near the view, so a long deck stays fast.

Each file keeps its last view and zoom in the workspace. The settings pptxViewer.defaultView and pptxViewer.defaultZoom choose how a deck opens the first time.

Live reload for generated decks

Keep the deck open while a script or an AI agent rebuilds it. Each time the file is saved, the viewer reads it again and stays on the slide you were looking at. A file that is still empty or half written shows a short message, and it opens by itself when the write is done. This works for files that other programs change, not only for edits made in VS Code.

Copy a slide as PNG

Copy: "PNG" in the toolbar puts the current slide on the clipboard as a picture, about 1920 pixels wide. Shift+click it, or run "PPTX: Save Slide as PNG…", to save the picture as a file next to the deck. The picture is made on your machine from the drawn slide.

Copy as Markdown

Copy: "Markdown" in the toolbar puts the current slide on the clipboard. The title becomes a ## heading, bullets keep their indent levels, tables become Markdown tables, and the speaker notes become a quote. Copy: "All" does the same for every slide. Text that looks like HTML is escaped, so it pastes as text.

What it draws, and what it doesn't

Slides are drawn with their text boxes, pictures, tables and shapes. Text takes its size, bullets, font and position from the slide master and layout, as in PowerPoint, so decks made with python-pptx or other tools look right. Charts are drawn from the numbers saved in the file, so they can look a little different from PowerPoint, and the slide says so. SmartArt is drawn from the copy that PowerPoint saves with it.

Video, audio, ink, embedded objects and SmartArt saved without that copy are not drawn. A slide that has any of them shows a short message that names them, so you know something is missing. If a single slide cannot be drawn, that slide shows its text with a note, and the other slides draw as usual.

The table slide in a light VS Code theme.

Keys

KeyAction
← →, PageUp PageDown, SpacePrevious or next slide
Home, EndFirst or last slide
Ctrl+F / Cmd+FSearch slides and notes
Enter, Shift+Enter in the search boxNext or previous matching slide
+, -Zoom in or out
Ctrl+=, Ctrl+- / Cmd+=, Cmd+-Zoom in or out
Ctrl / Cmd + mouse wheel, trackpad pinchZoom around the mouse
0Fit the slide in the editor

Settings

SettingDefaultWhat it does
pptxViewer.maxFileSizeMB300Ask before opening larger decks
pptxViewer.showNotestrueShow speaker notes under the slide
pptxViewer.renderSlidestrueDraw the slides. Set to false to see only the outline, notes and search
pptxViewer.defaultViewslideHow a deck opens the first time. slide shows one slide at a time and scroll puts all slides in one column
pptxViewer.defaultZoomfitZoom a deck opens with the first time, fit or width
pptxViewer.presentFullScreentruePresent switches VS Code to Zen Mode (full screen) and back on Esc. false presents inside the editor tab
pptxViewer.askForRatingtrueAsk for a Marketplace rating after 3 files opened without an error on 2 different days. "Later" asks one more time after 7 days, "No thanks" never again. It never asks after an error. Turn it off with false.

Large decks

The extension reads the text of the deck first and skips images and video while it does, so the outline, notes and search are ready before any slide is drawn. Slides are then drawn one at a time, when you first look at them, and thumbnails only as you scroll to them. In a real VS Code window on a MacBook, a public 197 MB, 42-slide USGS deck showed its outline in under a second and its first slide in about 5 seconds, and a 33 MB, 37-slide deck in about 2 seconds. Above 300 MB the viewer asks before it opens the file.

Privacy and security

Everything runs on your machine. The extension makes no network calls and has no telemetry. The viewer runs under a strict Content-Security-Policy that allows only the extension's own scripts and blocks all network access. Text from the deck is inserted as plain text, never as HTML. Macros in .pptm files are never run, and links inside slides do nothing when clicked.

Known limits

Credits

Slides are drawn by pptx-preview (ISC), which bundles ECharts (Apache-2.0), JSZip, lodash and uuid. The deck text is read with fflate (MIT). See THIRD-PARTY-NOTICES.md. The extension itself is MIT licensed.

Guides

Install PPTX Viewer & PPT Viewer, PowerPoint Viewer & Slideshow

Click the button to open VS Code and install it, or press Ctrl+P (Cmd+P on macOS) in VS Code and run ext install zovo.pptx-slide-viewer.

Free, MIT license. Needs VS Code 1.90.0 or newer. Extension ID zovo.pptx-slide-viewer, version 0.4.0.

Source code and issues are on GitHub.

All our VS Code extensions

Support this work

If this extension saves you time, you can support the work on GitHub Sponsors. Monthly tiers start at $5, and one-time tiers start at $15. Sponsorship is optional, and the tool works the same without it.