Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

758 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Animated Orifold logo: a sheet of paper folds into an origami crane, then becomes the app icon

Orifold

One sheet, folded into flight.

A calm, local-first PDF workspace for macOS. Drop in up to 50 messy files —
merge, edit, OCR, sign, compress, and protect them — and fold the whole pile
into one clean, searchable, password-protected document. Your documents never leave your Mac.

No account  ·  No upload  ·  No subscription

折  the fold  ·  鶴  the crane  ·  間  ma, the margin  ·  朱  the seal

macOS 14+ Universal — Apple Silicon + Intel version v0.10.1 Local document processing 6 languages Apache 2.0 License Beta

 ⚡ Install    ✨ Features    🐾 Companion    🔒 Privacy    ⚙️ Under the hood    📖 Docs 

The workspace — sidebar, canvas, markup toolbar, and your paper companion, all on your Mac.

Note

Orifold is a work-in-progress beta, built in the open. Everyday PDF work — merge, annotate, OCR, sign, protect, export — is solid and gated by 1,000+ tests. Object editing landed in v0.8.8 and is still hardening; a few folds (real redaction, side-by-side compare) are yet to come. Feedback welcome.

Tip

New in v0.10.1: merged workspaces keep stable page positions while showing meaningful source page labels, Recents resumes and recovers more reliably, and localization fixes make status and error flows dependable across all six languages.

The fold

A "simple PDF task" is rarely one file. It's six PDFs, two screenshots, a Word document, a scan, and one determined file named final_final_revised_ACTUAL.pdf. The everyday tools rent your own files back to you: Preview stops short of the hard parts, and the capable apps hide them behind a subscription and an upload.

Orifold is the workspace that was missing — native, local, and free. Drag the whole pile in; it repairs broken files on the way, stacks them into one calm workspace, and folds them into a single clean document. Document processing stays on your Mac.

50 messy files go in — up to 50 files per workspace, 0 files ever uploaded — one polished, searchable, password-protected PDF comes out

What it does

Document processing below runs on your Mac. No document content is uploaded.

Do this Get this
📥 Import anything — PDFs, Word, images, scans, Markdown, HTML, CSV, and CBZ comics — even corrupt files One workspace instead of a folder of chaos; broken PDFs repaired on the way in
🗂️ Organize — reorder, rotate, delete pages across documents A clean packet from messy source files
✏️ Annotate & edit — highlight, notes, ink, text boxes, edit real PDF text in place Reviewed documents without a print-sign-scan loop
🧩 Edit objects (beta) — the Select tool moves, resizes, layers, deletes, or restyles a compatible real page graphic Fix the layout itself, not just a note stuck on top of it
🖋️ Sign & fill forms — draw signatures or place a real PAdES digital signature, complete and lock form fields Finished, tamper-evident paperwork — no third-party e-sign service
🔍 OCR scans — local Vision OCR makes scanned pages searchable ⌘F finally works on the thing your printer emailed you
🏷️ Stamp & label — watermarks, page numbers, Bates labels, hanko seals, barcodes and QR codes Packets and exhibits that look intentional
🗜️ Compress — downsample oversized images, then losslessly re-pack the structure Attachments that stop bouncing off email size limits
🧼 Sanitize — strip auto-run actions, embedded JavaScript, hidden metadata A file that carries nothing you didn't mean to send
🔒 Protect & export — real AES-256 password, or export to DOCX, Markdown, HTML, PNG, JPEG The format the next person needs, locked when it matters
📖 Read comfortably — nested Contents, read aloud, Reader Mode, Document Comfort, and read-only on-device translation on macOS 15+ Long documents that are easier to navigate and absorb
🧭 Inspect & archive — edit metadata, manage attachments, inspect tagged structure, and check archival-readiness signals Fewer surprises hidden inside the file
🌐 Work in your language — full UI in English, Spanish, French, Hindi, Simplified Chinese, Japanese An app that speaks your language, switchable from the landing screen
 📋  The full capability list, feature by feature
Area What you can do
Import PDFs, Word, HTML, Markdown, text, CSV, JSON, XML, common images, and CBZ comic archives converted to PDF in natural page order; up to 50 files per workspace; corrupt PDFs are repaired via qpdf recovery when the native reader gives up
Organize Reorder documents and pages, rotate, delete, add section banners, navigate from the sidebar
Read & search Native PDF canvas, nested bookmark/heading Contents, workspace-wide search, read aloud with follow-along highlighting and speed control, password unlock prompts, Reader Mode, Document Comfort presets, and—on macOS 15+—read-only Apple on-device translation for a selection or current page
Recently viewed An empty-state shelf of the last files you opened, with locally cached thumbnails — nothing about it leaves the machine
Annotate Highlight, notes, ink, underline, strikeout, text boxes, and in-place editing of detected PDF text with continuous spell-check and metric-compatible fallback fonts
Object editing (beta) The Select tool clicks a real graphic on the page — image, logo, line, or shape — then moves, resizes, restacks (Bring to Front / Send to Back), deletes, or restyles existing solid fill/stroke channels and line width on compatible vector paths; object and inline-text edits compose safely, survive save/reopen/export, and share full undo/redo
Signatures Draw and place signatures, or produce standards-based PAdES digital signatures with Keychain and .p12 identities — verifiable anywhere PAdES is understood
Forms Detect PDF form fields, edit answers, reset forms, lock answers during export
Scans & OCR Local Vision OCR makes scans searchable; recognized text survives export
Stamps & decorations Watermarks, page numbers, Bates labels, movable stamps, procedural circle/square hanko seals, and generated barcode/QR placements burned into exported PDFs
Metadata & attachments Edit PDF title, author, subject, and keywords; list, add, extract, or remove embedded files from the Inspector with undo support
Structure & archival Inspect the current page's tagged reading-order tree and alt-text coverage; check encryption, embedded fonts, XMP, output intent, tagging, and active-content signals before long-term storage
Compression Downsample oversized images, then a lossless qpdf object-stream pass repacks the structure; post-compression validation confirms the result
Sanitize Optional export pass strips catalog auto-run actions, embedded JavaScript, embedded files, and (opt-in) document metadata
Protection Real AES-256 (PDF 2.0 / R6) password protection with permission checks and post-export verification
Export PDF, DOCX, Markdown, plain text, HTML, PNG pages, JPEG pages, or print; PDF output can be imposed as booklet, 2-up, or 4-up, and every PDF passes a qpdf structural check before it reaches disk
Languages Full localization in six languages, switchable from the landing screen and persisted across launches — coverage enforced by a test
Companion Gami (dog) or Ori (cat), an optional origami buddy that reacts to highlighting, signing, exporting, and warnings; toggle from the app menu
Install & update One-line installer, Desktop launch/update helpers, clean uninstaller, Homebrew cask, opt-in in-app update check

Install

Paste this into Terminal and press Return:

curl -fsSL https://raw.githubusercontent.com/udhawan97/Orifold/main/install.sh | zsh

That's it. The installer downloads the prebuilt universal app (Apple Silicon + Intel) to ~/Applications/Orifold.app and puts two helpers on your Desktop: Orifold.command (launch + update) and Uninstall Orifold.command (a clean exit). No Xcode, no GitHub account, no compile step. Requires macOS 14 Sonoma or newer.

Tip

Never used Terminal? Open Applications → Utilities → Terminal, paste the line above, press Return. You're now a power user.

 🍺  Prefer Homebrew?
brew tap udhawan97/orifold https://github.com/udhawan97/Orifold
brew install --cask udhawan97/orifold/orifold

Installs the same prebuilt app and clears the download quarantine for you.

 📥  Prefer a direct download (DMG)?

Grab the disk image — Orifold.dmg (universal: Apple Silicon + Intel). Open it, drag Orifold into Applications, then open Orifold from Applications.

Because release builds aren't notarized by Apple yet, first launch takes one step: right-click Orifold in Applications → OpenOpen. (Prefer zero dialogs? The one-line installer and Homebrew cask clear the quarantine for you.) The plain Orifold.zip is still published for the installer and cask.

 🛠️  Building from source?

Source builds need Apple Command Line Tools with Swift 5.9+. The normal installer never needs them — it downloads a prebuilt app. See Under the hood.

Your paper companion

The same fold that opens Orifold's logo blossoms into a small companion that lives in your workspace. Pick Gami (the origami dog) or Ori (the origami cat) on first launch, or switch anytime. Your companion keeps a quiet eye on your document, offers the occasional tip in character, and reacts — visibly — whenever you highlight, sign, export, or fix something.

Animated: a sheet of paper folds into an origami crane, then becomes the app icon Animated: Gami the origami dog, tail wagging Animated: Ori the origami cat, ears twitching and tail swaying
The fold
The mark folds into a crane — a quiet red tancho crown its only splash of color.
Gami  · the dog
Loyal, excited, endlessly encouraging. Tail wags faster the closer your cursor gets.
Ori  · the cat
Clever, composed, quietly in charge. Ears twitch sharp while the tail sways slow.

Orifold's welcome screen: the app icon and name, quick-action chips for Assemble, Mark up, Fill forms, Search scans, Stamp, and Protect, a drop zone reading 'Release to import files', and Gami greeting from the corner

Gami greets you on the empty-state screen — in the app, in any of six languages.

Tip

Easy to silence when you're not new. Toggle Show Orifold Buddy from the app menu. (Gami: "Highlighted. Future-you will pretend they read the rest." · Ori: "This PDF is under my silent judgment.")

Privacy

Orifold is local-first by design — not as a setting, as an architecture.

  • 🖥️ Document processing runs on your Mac. Import, OCR, compression, encryption, signing, translation, and export never upload your PDF or its text.
  • 🛡️ Sandboxed. The app runs under the macOS App Sandbox with user-selected file access only.
  • 📡 Zero telemetry. No analytics pipeline. There isn't even a server to send it to — stars are the only telemetry we get.
  • 🔔 Explicit, narrow network use. Orifold can check/download updates when you ask, request an optional trusted signing timestamp, and—on macOS 15+ after a first-use disclosure—let macOS download an Apple translation language model. No flow uploads your PDF or its text to an Orifold service.
 🔍  The fine print — sandbox entitlements & guardrails

The app enables exactly four entitlements:

Entitlement Why
com.apple.security.app-sandbox Runs the whole app inside the macOS sandbox
com.apple.security.files.user-selected.read-write Read/write only the files you choose
com.apple.security.files.bookmarks.app-scope Remember your Recently Viewed files across launches
com.apple.security.network.client User-authorized updates, optional trusted signing timestamps, and system-managed translation language-model downloads

Practical guardrails: password prompts for protected PDFs, import size limits, local validation before and after compression or encryption, a qpdf structural check gating every export, an optional sanitize pass that strips auto-run actions and embedded JavaScript, form flattening before decoration burn-in, export error reporting for malformed PDFs, and hidden Orifold comment metadata stripped before flat PDF export.

Under the hood

For developers, contributors, and anyone evaluating how this is built.

Language Swift 5.9+, 100% SwiftUI interface
Codebase 138 Swift source files in the app, ~52,500 lines
Tests 1,007 tests in the current source tree
PDF engines PDFKit (display/composition) · PDFium (versioned shared page inspection, structural object editing, image compression, text geometry) · qpdf (repair, AES-256, sanitize, structural validation) · Vision (OCR) · Apple Translation (on-device reading aid on macOS 15+)
Architecture Unidirectional flow: views → one observable view model → protocol-seamed local engines → staged export pipeline
Distribution GitHub Actions builds a universal (Apple Silicon + Intel) app and packages a signed-capable DMG (scripts/make-dmg.sh) plus the release zip and a checksummed manifest.json; installer, Homebrew cask, and uninstaller ship from this repo

Swift 5.9 SwiftUI PDFKit PDFium qpdf Vision OCR App Sandbox

Orifold architecture: SwiftUI views send intents to one observable view model, local PDF engines behind protocol seams do the work, and a staged export pipeline writes validated artifacts inside a local-only boundary, guarded by a release gate

 📁  Project layout
Orifold/
  App/             App entry point and command wiring
  DesignSystem/    Shared visual tokens and styling
  Document/        macOS document package read/write support
  Engine/          PDF/CBZ loading, repair, conversion, OCR, translation, compression, encryption, sanitize, forms, export
  Models/          Workspace, page, annotation, comment, export, decoration, recent-file models
  Pet/             Gami & Ori, the in-app companions
  Resources/       App metadata, entitlements, assets, Localizable.xcstrings (6 languages)
  Signing/         Signing identities, CMS construction, timestamping, verification
  ViewModels/      Workspace state, document operations, search, export, undo
  Views/           SwiftUI interface components
Packages/          Vendored binary engines — PDFiumBinary, QPDFBinary (universal static libs)
Tests/             Test suites run in the release gate
scripts/           install-mac.sh (installer/packager), make-dmg.sh (universal DMG), uninstall-mac.sh
install.sh         Hosted one-line bootstrap
Casks/orifold.rb   Homebrew cask
 🔨  Build, test, and package
open Orifold.xcodeproj            # or: swift build && swift test

# Build & test from the command line
xcodebuild build -quiet -project Orifold.xcodeproj -scheme Orifold -destination 'generic/platform=macOS' CODE_SIGNING_ALLOWED=NO
xcodebuild test  -quiet -project Orifold.xcodeproj -scheme Orifold -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO

# Build the same release zip GitHub Releases ships, then the universal DMG
ORIFOLD_UNIVERSAL=1 ./scripts/install-mac.sh --package-only --package /tmp/Orifold.zip
zsh scripts/make-dmg.sh --from-zip /tmp/Orifold.zip --version 0.10.1

# Install from the current source checkout without opening the app
./scripts/install-mac.sh --no-open

App metadata: CFBundleShortVersionString 0.10.1, CFBundleVersion 24.

 ✍️  Signed & notarized release builds
ORIFOLD_SIGNING_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
ORIFOLD_NOTARIZE=1 \
ORIFOLD_APPLE_ID="apple-id@example.com" \
ORIFOLD_APPLE_TEAM_ID="TEAMID" \
ORIFOLD_APPLE_APP_SPECIFIC_PASSWORD="app-specific-password" \
./scripts/install-mac.sh --package-only --package /tmp/Orifold.zip

GitHub Actions uses the same path when the matching ORIFOLD_* secrets are configured.

Roadmap

Orifold is genuinely useful today — and nowhere near finished. Object editing just landed in beta; a few more folds are on the workbench. A friendly sneak peek, not a blood oath.

  • Real redaction — remove text and images, not just cover them
  • Fold the whole stack — compress, OCR, or watermark a folder in one pass
  • Side-by-side compare — spot the change between two drafts on one screen
  • Faster large-document navigation — 300-page beasts that scroll like pamphlets
  • More languages — broader interface, OCR, and translation coverage
  • A calmer first launch — pending one very official Apple notarization handshake

Got a fold you'd love to see? Tell us.

Troubleshooting

macOS warns the app is from an unidentified developer

Release builds are ad-hoc signed but not notarized yet. The one-line installer and Homebrew cask clear the download quarantine automatically. If macOS still warns, right-click the app in Finder and choose Open from the security prompt.

A .command file says it cannot be opened

Open Terminal in the project folder and run:

chmod +x "Install or Update Orifold.command" "Uninstall Orifold.command" scripts/install-mac.sh scripts/uninstall-mac.sh

Then double-click the file again from Finder.

The installer says no prebuilt release is available

The Orifold.zip release asset hasn't published yet or couldn't be downloaded. Wait for the release workflow, then rerun the installer. Developers can opt into a source build:

curl -fsSL https://raw.githubusercontent.com/udhawan97/Orifold/main/install.sh | ORIFOLD_ALLOW_SOURCE_BUILD=1 zsh
Something failed and the Terminal window closed too fast

Check .build/install.log in the project folder, and ~/.orifold/prebuilt-install.log for the prebuilt install attempt.

Updating & uninstalling

Update: double-click Orifold.command on your Desktop — it checks the latest release before launching and sweeps up any stray Orifold.app copies so only one install remains. Or brew upgrade --cask udhawan97/orifold/orifold.

Uninstall: double-click Uninstall Orifold.command — it removes the app, Desktop helpers, installer cache, and app data. A cleaner exit than most software manages.

Contributing

Bug reports and feature requests are welcome in Issues. Building from source? Under the hood is the whole onboarding doc — if swift test passes, you're set up.

License

Orifold is available under the Apache License 2.0.


If Orifold rescued you from final_final_revised_ACTUAL_v3.pdf, star the repo.
Since Orifold has no telemetry, stars are the only signal we get. ⭐

Folded by hand. Built as a local-first PDF workspace — Claude and Codex accelerated the implementation, then every line was reviewed, tested, and refactored by hand.

About

Orifold is a native macOS PDF workspace for combining, reading, annotating, and signing multiple PDFs in one clean view.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages