Skip to content

theagitist/fold

Repository files navigation

Fold

Local-first, privacy-centric PDF optimizer. Drops a PDF in, gets four optimized variations out — all offline, no telemetry, no cloud.

Built with Tauri v2 wrapping a bundled Ghostscript 10.x engine.

Status

v0.1.0 — Phase 1. Drag-drop a PDF, get four optimized variations: low / medium / high (gs /screen, /ebook, /printer presets) plus a custom-target output produced via two-pass DPI refinement. Tri-sync target UI (slider + editable MB + editable %). Stage-level progress feedback. Encrypted PDFs are detected and surfaced cleanly; password injection (F01) is deferred. See PRD.md for the full plan and VERSION for the current build.

Download

Latest release — macOS arm64 only at present. Mount the .dmg, drag Fold.app into /Applications.

The build is ad-hoc signed but not notarized (notarization needs an Apple Developer ID, deferred to 0.2). On first launch macOS Gatekeeper will refuse to open it. Workaround:

  • Right-click Fold.appOpen → confirm in the dialog. macOS remembers the choice.
  • Or from the terminal: xattr -d com.apple.quarantine /Applications/Fold.app

The .app is fully self-contained — Ghostscript and ~20 vendored dylibs (libtiff, libpng, libjpeg, libidn, lcms2, fontconfig, freetype, openjpeg, tesseract, leptonica, webp, libarchive, etc.) ship inside the bundle with rewritten load paths. No Homebrew, no extra downloads.

Development

Prerequisites: Rust (stable), Node.js 20+, Xcode Command Line Tools (macOS), Ghostscript (brew install ghostscript on macOS).

./scripts/dev.sh    # or: npm start

The script provisions a Ghostscript sidecar at src-tauri/binaries/gs-<target-triple> from your local gs install, runs npm install if needed, then launches tauri dev.

Note: on macOS the Homebrew gs is dynamically linked against Homebrew dylibs (jbig2dec, libtiff, jpeg-turbo, etc.). The dev build only works on machines with those libraries installed. A self-contained sidecar (statically-linked or install_name_tool-rewritten) is a prerequisite for any release build.

Licensing

Fold is distributed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). See LICENSE for the full text.

The bundled Ghostscript engine is also AGPL-3.0. Per AGPLv3 §13, the corresponding source for both Fold and the Ghostscript build is published at:

Privacy

Fold makes zero network requests during normal operation. All file I/O is local; passwords for encrypted PDFs are passed to Ghostscript via stdin (never via process arguments) and zeroized after use.