A fast, native PDF library and reader for researchers — full-text search across every page, entirely on your Mac.
By downloading, you accept that Paperstack is provided “as is” without warranty (see disclaimer).
Highlights at a Glance#
Full-Text Search, Every Page
Opens at the Right Page
Automatic Topic Tags
Metadata from ISBNs
Native & Integrated
Local, No Accounts
Why Paperstack?#
A research collection grows into hundreds of PDFs spread across Downloads, course folders, and project directories. Finding the paper that proved that lemma or the lecture where that definition appeared usually means opening files one at a time in Preview and pressing ⌘F in each.
The usual alternatives each miss something:
- Finder & Spotlight: Good at finding a file by name, but they tell you which file matched — not where in it, and not which passage.
- Reference Managers: Built for citations and bibliographies. Many want an account, a sync service, or to move your files into their own storage.
- Preview: Searches one open document at a time.
Paperstack was built to be ⌘F for your whole library: one search box across every page you’ve collected, results you can read at a glance, and a reader that drops you on the exact passage.
How It Works#
1. Import#
Click + (or press ⌘I) and choose PDFs or whole folders. Paperstack discovers every PDF inside, lets you review the list, and indexes them in parallel with a progress estimate. For each paper it extracts the text page by page, renders a cover thumbnail, infers topic tags, and records a content fingerprint, so the same file imported twice isn’t duplicated and a file you moved on disk is re-linked instead of re-imported.
Your PDFs are never copied or modified. Removing a paper from the library deletes only its index entry; the file itself stays where it is.
2. Search#
The search field at the top does two things at once:
- Free text runs a full-text search across every page, with search-as-you-type prefix matching.
- Scoped filters narrow the library by metadata:
title:,author:,filename:, andyear:. Quote values with spaces, e.g.author:"joe smith".
Combine them freely, for example transformer author:vaswani year:2017.
3. Read#
Reader windows have a sidebar with the document’s outline, page thumbnails, a full-text search scoped to that paper, and your bookmarks. Select any passage and bookmark it with an optional label; bookmarks also appear in the library’s detail panel. Open reader windows are restored the next time you launch.
4. Organize#
Tags appear in the sidebar. Drag a paper onto a tag to apply it, rename or delete tags from their context menu, or apply a tag to every paper matching the current search. Two smart tags are always there: Currently Reading and Recently Imported.
Search Syntax#
Full-text search uses SQLite FTS5 and supports:
- All words:
attention transformerfinds pages containing both words. - Boolean operators:
logic AND foundations NOT topology, andORfor alternatives. - Prefixes:
comput*matches computer, computation, computable… Bare words get a*automatically, for search-as-you-type. - Exact phrases (in the reader): the reader’s own search accepts quoted phrases such as
"attention is all you need".
Security & Distribution#
- Gatekeeper & Notarization: Distributed as a Developer ID–signed, notarized, and stapled disk image (
Paperstack.dmg), built with the hardened runtime. - Signed Updates: Updates are delivered with Sparkle over HTTPS. Each update carries an EdDSA signature that the installed app verifies against a public key built into it; an update that fails verification is refused.
- Reads PDFs Where They Live: Paperstack indexes files in place rather than copying them into a container, so it runs outside the App Sandbox. It only reads the files and folders you import, and it never modifies them.
Privacy: Your Library Stays on Your Mac#
- Zero Analytics or Telemetry: There are no analytics libraries, tracking pixels, crash reporters, or third-party telemetry SDKs inside Paperstack.
- No Accounts: You never create an account, enter an email, or register with any service.
- Strictly Local Index: The search index, tags, bookmarks, and cover thumbnails live in
~/Library/Application Support/Paperstack/on your Mac. Your PDFs and their text are never uploaded anywhere. - Spotlight Stays On-Device: Titles, authors, and tags are added to the macOS Spotlight index, which is local to your Mac.
- Exactly Two Kinds of Network Request:
- Book metadata (optional by nature): If a document contains an ISBN, Paperstack sends only that ISBN number to Open Library to look up its title, authors, year, and subjects. This happens when you import or retag. No document text, file names, or other identifiers are sent.
- Update check: About once a day, Paperstack downloads a small update feed from
sagenhaft.space. The request identifies the app version so a newer release can be offered; Sparkle’s optional system-profile reporting is turned off, so no hardware or usage details are sent.
Technology Stack#
- Language & Toolchain: Swift 6.4 (strict concurrency, actor isolation), Xcode 27
- User Interface: SwiftUI, AppKit, and PDFKit
- Search & Storage: SQLite FTS5 (BM25 ranking), via the system SQLite library
- System Integration: Core Spotlight
- Updates: Sparkle 2
- Target: macOS 27+ (Apple Silicon)
Download & Installation#
Paperstack for macOS
macOS 27+ • Apple Silicon • Signed & Notarized
By downloading, installing, or running Paperstack, you acknowledge and agree to the disclaimer and limitation of liability below.
To install, mount Paperstack.dmg and drag Paperstack to your /Applications folder. On first launch, click + to import a folder of PDFs. Paperstack checks for updates automatically; you can also choose Paperstack ▸ Check for Updates… at any time.
Disclaimer & Limitation of Liability
By downloading, installing, or using Paperstack, you expressly agree that this software is provided free of charge on an “as is” and “as available” basis, without warranty, representation, or guarantee of any kind, whether express, implied, statutory, or otherwise, including but not limited to any warranties of merchantability, fitness for a particular purpose, non-infringement, quiet enjoyment, data accuracy, or error-free operation.
The author and contributors shall not be held liable for any direct, indirect, incidental, special, consequential, exemplary, or punitive damages, or for any loss of data, incomplete or inaccurate search results, incorrect metadata or tags, corrupted libraries, hardware issues, or other claims arising out of or in connection with the software, its download, installation, performance, or use. You download, install, and use this software entirely at your own risk.