A free, open-source PDF editor for the desktop. View, merge, split, create, annotate, fill forms, and edit text in PDFs — with no telemetry, no accounts, and no paywalled features.
Status: feature-complete (v1.0). Windows installer builds today; macOS/Linux targets are configured and build in CI.
Good PDF tooling shouldn't cost $180/year. PDFChimp aims to be a daily-driver PDF reader and a real editor, built on the same engines the big browsers use:
- PDF.js (Firefox's renderer) for fast, faithful display
- PDFium (Chrome's engine, via WebAssembly) for true in-place text editing
- pdf-lib for page operations, annotations, and forms
All permissively licensed (MIT/Apache/BSD) — a license-checker CI gate keeps
it that way.
- 📖 Reader — tabs, continuous virtualized scrolling, search, thumbnails, outline, dark mode; fast enough to be your default Windows PDF viewer (double-click to open, Jump List, session restore)
- 🔗 Pages — combine, split, reorder, rotate, insert, delete, extract
- 📄 Create — blank, from images, or from Markdown/HTML
- ✏️ Edit text in place — via PDFium, with font-fallback for subset fonts; plus text boxes, images, and whiteout (cover-up)
- 🖍️ Annotations — highlight, underline, strikeout, ink, shapes, sticky notes, stamps, signatures — saved as real PDF annotations with appearance streams so they render in Adobe/Edge/Firefox; plus flatten
- 📋 Forms — AcroForm filling and flattening
- 🏷️ Document tools — watermarks, headers/footers, page numbers, compress, metadata editor
- 🔍 OCR — makes scanned PDFs searchable (tesseract.js, fully offline)
- ⬛ True redaction — actually removes the underlying content and machine-verifies nothing recoverable remains (not just a black box)
- 🔐 Encrypt / decrypt — protect a PDF with a password (real AES-256, V5/R6), or remove an existing password to save an unprotected copy
- 🖨️ Print, Save/Save As, export to images
- 🚫 Privacy — no telemetry; the only network call is the update check
npm install
npm run dev # launch with hot reload
npm run typecheck # strict TS across main/preload/renderer
npm test # vitest
npm run dist # build Windows installer (NSIS)Architecture in one paragraph: the Electron main process owns file I/O and OS integration; the sandboxed renderer hosts the React UI and PDF.js display; a dedicated Engine Worker owns the authoritative bytes of every open document and serializes all mutations through pdf-lib and PDFium-WASM. PDF.js is always just a view of the last committed snapshot — that discipline is what keeps the viewer and the editing engines from ever disagreeing.