Skip to content

About

An unofficial library manager for your Paizo purchases, for Mac and iPad

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Scrollkeeper

CI Quality Gate Status Coverage GitHub Release GitHub Downloads Platforms License: MIT

Have you bought Paizo PDFs for years and now can't find the one you need? On paizo.com your purchases are one long list, every download is another click, a file-per-chapter edition arrives as a zip to unpack, and it is hard to tell which files Paizo has updated since you downloaded them.

Scrollkeeper is an unofficial library manager for your Paizo purchases, on the Mac, the iPad and the iPhone. It fetches the list of everything you own once and keeps it on your device, with covers, summaries and tags, so you can search, sort and filter a few thousand titles at once, online or off. Download a title, or several at a time, straight from the list: zips are unpacked for you, and a download Paizo has updated since is marked so you can fetch the new file.

It is free and open source, and it only accesses files that your own account is entitled to download.

Scrollkeeper on the Mac: rulebooks shown as covers, with the details of the selected title

Features

  • Signs in with your Paizo account; credentials are kept in the macOS Keychain and the sign-in fields support Password AutoFill from the Passwords app.
  • Downloads your full list of titles with a progress bar, and fetches cover artwork and summaries from the public storefront at the same time.
  • Groups the different editions of a product (single file, file per chapter, lite versions) into one title. PDF editions that Paizo delivers as a zip are unpacked for you, so you get the chapters rather than an archive.
  • Three ways to browse: cover thumbnails, a list, and a sortable column view.
  • Search, plus filtering by game system, product type, level, format and tag.
  • Automatic classification: adventure paths, stand-alone adventures, society scenarios (with season or year), maps, rulebooks, fiction and more.
  • Tags that are written to the downloaded files as Finder tags.
  • Checks for a newer version on request and offers to download it (Mac).
  • Download or open a title straight from the grid or list by pointing at it. Downloads run five at a time, with a list to watch and cancel them.
  • Downloaded files are kept on disk and can be opened straight from the app, with the default application or any other that handles the file type.
  • Marks a download that Paizo has updated since, and fetches the new file when you ask. It checks a title when you open it and a few others each day, so the checks stay small however much you have downloaded.

Requirements

macOS 14 or later, iPadOS 17 or later, or iOS 17 or later on the iPhone.

Installing a release

Download the disk image from the releases page, open it and drag Scrollkeeper to Applications.

Releases are signed with the Developer ID and notarized by Apple, so macOS opens them like any other app. Older releases aren't, and macOS blocks them the first time:

  1. Open Scrollkeeper once. macOS says it cannot be opened; click Done.
  2. Open System Settings › Privacy & Security and scroll down to the message about Scrollkeeper.
  3. Click Open Anyway and confirm.

After that it opens normally. On macOS 14 you can instead right-click the app and choose Open; from macOS 15 on, that shortcut no longer works.

Tableside Toolkit

Scrollkeeper is part of the Tableside Toolkit, free Mac apps for running Pathfinder and Starfinder games in person; Turnkeeper and Field Guide run on the iPad too. Like any good toolkit, each one grants a +1 item bonus to game prep.

  • Scrollkeeper keeps your Paizo library in order and downloads your purchases.
  • Pluck gets the art, text and stat blocks out of a PDF.
  • Pawn Shop prints just the pawns you need, single-sided, from your pawn PDFs.
  • Mapsmith prints battle maps at true scale on ordinary paper.
  • Turnkeeper builds encounters and runs initiative at the table, with the battle card of whoever's turn it is, on the iPad and the Mac.
  • Field Guide carries the Pathfinder and Starfinder compendium, offline, on the iPad and the Mac.

On the Mac, Mapsmith's File › Open from Scrollkeeper… searches the maps you own. Scrollkeeper downloads the one you pick, if it is not on disk already, and opens it in Mapsmith. Mapsmith finds your maps in a list Scrollkeeper keeps for it (Shared/maps.json, titles and SKUs only) and asks for one with a scrollkeeper://open?sku=…&app=mapsmith link. Scrollkeeper opens files only in the toolkit apps it knows, and only through its normal download queue.

Supporting the project

The app is free and always will be. If it saves you time and you would like to say thanks, you can leave a tip on Ko-fi. A donation is entirely optional and unlocks nothing.

Building

make app      # builds build/Scrollkeeper.app
make run      # builds and launches the app
make test     # runs the unit tests
make lint     # runs SwiftLint
make coverage # runs the tests and enforces the coverage threshold
make dmg      # packages the app into a disk image

Building needs Xcode 16 or later (Swift 6 toolchain). scripts/sign-app.sh signs the app with the Developer ID when the keychain holds a Developer ID Application certificate, and ad hoc otherwise; after an ad-hoc rebuild, macOS may ask again for permission to use the saved Keychain item.

Building for iPad

The iPad app is built from ios/Scrollkeeper.xcodeproj, which uses the same Swift package as the Mac app. It also needs Xcode's iOS platform component (Xcode › Settings › Components).

  1. Add your Apple ID to Xcode under Settings › Accounts. A free Apple ID works; an app signed that way runs for seven days before it has to be installed again, a paid developer account for a year.
  2. Put your team in ios/Local.xcconfig, which is not committed (see ios/Signing.xcconfig). The team identifier is shown in Xcode when you select the Scrollkeeper-iPad target and open Signing & Capabilities.
  3. Connect the iPad and turn on Developer Mode on it under Settings › Privacy & Security.
  4. Run make ipad-install. It builds the app, installs it and starts it.
  5. The first time, the iPad refuses to start the app until you trust the developer under Settings › General › VPN & Device Management.

When the seven days are up, make ipad-install again; the catalog and downloads on the iPad are kept. You can also open ios/Scrollkeeper.xcodeproj in Xcode and press Run. Open the project itself, not the package folder, and pick the Scrollkeeper-iPad scheme.

make ipad-simulator builds the app and starts it in an iPad simulator. make ipad-uitest runs the UI tests there.

The same app runs on the iPhone. To install it on one, turn on Developer Mode on the iPhone too and run IPAD=<the iPhone's name> make ipad-install.

Demo mode

Launching the app with the argument -ScrollkeeperDemo starts it with an invented library served from inside the app: no account, no network, nothing saved between launches, and downloads that take a few seconds. The UI tests use it, and it is a way to look around without signing in.

open build/Scrollkeeper.app --args -ScrollkeeperDemo

On the iPad, downloads appear in the Files app under On My iPad. Opening a file shows a preview; the share button offers every app that accepts the file. The Files app's tags cannot be set by an app, so tags stay inside the app. The Mac and the iPad each keep their own catalog, tags and downloads.

Where things are stored

What Where
Catalog, summaries, tags ~/Library/Application Support/Scrollkeeper/ (inside the app's container on the iPad)
Cover artwork ~/Library/Application Support/Scrollkeeper/Covers/
Map list for Mapsmith ~/Library/Application Support/Scrollkeeper/Shared/maps.json (Mac only)
Downloaded files Mac: ~/Library/Application Support/Scrollkeeper/Files/ (changeable in Settings). iPad: the app's Documents folder, shown in Files
Password macOS Keychain, service store.paizo.com

Documentation

The requirements and design are in docs/specs/library-manager, and those for opening titles in other apps in docs/specs/app-handoff.

Licenses

Scrollkeeper includes ZIPFoundation under the MIT license; its notice is in THIRD-PARTY-NOTICES.md and in the app's settings.

Community Use Policy

Scrollkeeper uses trademarks and/or copyrights owned by Paizo Inc., used under Paizo's Community Use Policy (paizo.com/licenses/communityuse). We are expressly prohibited from charging you to use or access this content. Scrollkeeper is not published, endorsed, or specifically approved by Paizo. For more information about Paizo Inc. and Paizo products, visit paizo.com.

About

An unofficial library manager for your Paizo purchases, for Mac and iPad

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages