Skip to content

PptxDiff — a diff tool for slides

NPM Version vscode-badge Docs - GitHub.io

PptxDiff banner

Early stage

This project is being developed rapidly. Features may break or you may find bugs — it's in an early stage of development.

PptxDiff compares two PowerPoint decks (or many pairs at once), renders them with real fidelity, and diffs text, formatting, images, tables, charts, animations, transitions, and speaker notes — with a full reviewer workflow (approvals, comments, history) built in.

It's a single self-contained HTML file. No server, no build step, no cloud upload — everything runs in your browser, locally.

  • No install required


    Open index.html directly, or run it with npx pptxdiff.

    Getting started

  • Real slide rendering


    Pixel-accurate previews via @aiden0z/pptx-renderer, with a schematic fallback.

    Rendering fidelity

  • Deep diffing


    Text, fonts, color, position, tables, charts, notes, transitions, and more.

    Diff engine

  • Reviewer workflow


    Multiple reviewers, per-diff approve/reject, threaded comments, history.

    Reviewer workflow

See it in action

All-pairs comparison view

The All-pairs view: every aligned slide pair at once, with ADDED / DELETED / MOVED / CHANGED / IDENTICAL status tags — content-similarity alignment handles inserted, removed, and reordered slides automatically.

Feature highlights

  • High-fidelity rendering — real .pptx (OOXML) parsing plus pixel-accurate slide previews, with a schematic fallback if a part can't be rendered.
  • Deep diffing — text (word-level highlighting), fonts, color, alignment, position, borders, hyperlinks, images/charts, tables, backgrounds, animations, transitions, speaker notes, embedded fonts, master/layout inheritance, section headers.
  • Deck-level comparison — not just 1:1 pairs: content-similarity alignment handles inserted/removed/reordered slides.
  • Duplicate detection — same-deck near-duplicates and cross-deck duplicates, with an adjustable sensitivity threshold.
  • Reviewer workflow — multiple reviewers, per-slide and per-diff approve/reject, threaded comments, an approval history log, and scoped "clear decisions."
  • Batch mode — compare many deck pairs at once, order- or filename-matched.
  • Three-way merge — per-diff Keep-Before/Keep-After/Custom picks, plus a real (beta) merged .pptx export.
  • Exports — PDF, standalone HTML report, JSON, CSV, Markdown, Notion-flavored Markdown, Confluence wiki markup, and live push attempts to Slack/Notion/Confluence.
  • Keyboard shortcuts, dark mode, and touch-friendly batch reordering.
  • Self-tests — an in-browser Red/Green regression suite covering the diff engine, alignment, duplicate detection, and merge logic.

See the full feature walkthrough for a guided tour of each area, or jump straight to Getting Started.

Install

npx pptxdiff
npm install -g pptxdiff
pptxdiff
git clone https://github.com/sugatoray/pptxdiff.git
cd pptxdiff
open src/pptxdiff/index.html

Not yet in a real tap — install directly from the formula file for now:

brew install --formula https://raw.githubusercontent.com/sugatoray/pptxdiff/HEAD/src/packages/pptxdiff-brew/Formula/pptxdiff.rb
pptxdiff

See the Homebrew formula page for the full story (and the eventual brew tap command).

Works fully offline

React, Babel, @aiden0z/pptx-renderer, and fonts are all vendored locally — no CDN, no internet connection required, for any install option above. Your .pptx files never leave your machine either.