PowerPoint Viewer Sidekick
A read-only PowerPoint viewer for Visual Studio Code with the same compact,
native-feeling workflow as PDF Viewer Sidekick. It opens presentations from
local folders, Remote SSH, WSL, Dev Containers, virtual workspaces, and other
VS Code filesystem providers without copying them to a local path or uploading
them to a service.
Current features
- Default read-only editor for
.pptx, .pptm, .ppsx, .ppsm, and .potx
- Continuous slide scrolling with windowed rendering near the viewport
- PowerPoint-style slide overview with resizable, lazy previews and keyboard navigation
- Previous, next, direct-slide, Home, End, Page Up, and Page Down navigation
- Full-presentation text search with snippets, match-case and whole-word modes
- Active search-result highlighting on the rendered slide
- Lazy slide thumbnails and an automatically derived slide-title outline
- Fit-slide, fit-width, preset, custom, Ctrl/Cmd+wheel, and double-click zoom
- Clockwise rotation
- Selectable rendered text
- Embedded SVG pictures, including PowerPoint's newer
asvg:svgBlip format
- Animated slides shown at their final static stage: entrances are visible,
exits are hidden, and supported motion, rotation, and scale effects use
their endpoints
- Local-font detection with a missing-font indicator and automatic
Aptos/Calibri/Arial-compatible fallback stacks
- In-presentation and external hyperlinks
- Per-URI slide, zoom, rotation, sidebar, and overview restoration
- External-change notification and reload
- Light, dark, and high-contrast VS Code theme integration
- File-size confirmation and bounded ZIP parsing for untrusted presentations
- Local and virtual/remote filesystem support
Presentation contents are parsed and rendered locally in the VS Code webview.
The extension does not make network requests, execute VBA macros, or collect
telemetry. Font diagnostics check only family names requested by the current
presentation; the extension does not enumerate or copy installed fonts.
Commands
PowerPoint Viewer Sidekick: Open PowerPoint Presentation
PowerPoint Viewer Sidekick: Open Current Presentation in Viewer
PowerPoint Viewer Sidekick: Go to Slide
PowerPoint Viewer Sidekick: Find in Presentation
PowerPoint Viewer Sidekick: Toggle Navigation Sidebar
PowerPoint Viewer Sidekick: Toggle Slide Overview
PowerPoint Viewer Sidekick: Zoom In
PowerPoint Viewer Sidekick: Zoom Out
PowerPoint Viewer Sidekick: Rotate Clockwise
PowerPoint Viewer Sidekick: Reload Presentation
Settings
powerpointSidekick.defaultZoom
powerpointSidekick.rememberViewState
powerpointSidekick.fileSizeWarningMB
The viewer supports PowerPoint Open XML packages. Legacy binary .ppt files
are intentionally not registered. Macro-enabled packages can be viewed, but
macros are never executed.
PowerPoint's format is extensive, so some content may be approximated or
omitted. Animations do not play: the viewer resolves entrance/exit visibility,
paragraph exits, motion, rotation, and scale to a final static stage.
Emphasis/color effects, media commands, and complex timing may be approximated
or ignored, and slide transitions do not play. Other current renderer
limitations include 3D effects and true 3D charts, equations, slide notes,
embedded OLE objects, and full EMF/WMF vector rendering. Password-protected
presentations are not supported. Editing, presenting, printing, and slide
reordering are not implemented; source files are never modified.
Development
npm install
npm run typecheck
npm test
npm run build
Press F5 in VS Code to launch an Extension Development Host. Run
npm run test:integration for the VS Code smoke test and npm run package to
produce a VSIX.
PowerPoint rendering is provided by @aiden0z/pptx-renderer under the
Apache-2.0 license. Its license is included in packaged builds.