Privacy Policy

Last updated: October 2026

Who we are

Papyrium is an independent software project, operated from Lithuania by Alexander Bush, who is the data controller for the purposes of this policy. It covers both the website papyriumlib.com and the Papyrium desktop app, and the data collected through them. For any privacy-related questions, or to exercise your data rights, contact us at privacy@papyriumlib.com.

What we collect

Analytics (optional)

If you accept cookies, we use Google Analytics (GA4) to understand how visitors use this site. This includes pages visited, time on site, device type, and approximate location (country/region level). Your IP address is anonymized. This data is processed by Google LLC and subject to Google's Privacy Policy. You can decline analytics cookies at any time using the banner or by clearing your browser's local storage.

Newsletter (if you subscribe)

If you submit your email address, it goes to Kit, the service that sends our newsletter (see below), and is used only to send you updates about Papyrium — new versions, announcements, and founding discount information. Kit first sends one email asking you to confirm; you are subscribed only after you confirm. Your email is never sold or shared with third parties for their own marketing. Kit records which page you subscribed from, whether our emails are opened, and which links are clicked. This tells us what subscribers find useful. You can unsubscribe at any time via the link in any email we send.

Feedback and support emails

If you email us feedback or a support request, we process your email address and the contents of your message so we can respond, troubleshoot issues, and improve Papyrium. If you write from the app (Help → Report a Bug…), the email is pre-filled with your Papyrium and macOS versions. Logs saved with Help → Export Logs… hide your macOS user name but keep library folder paths and file names, because they are needed for diagnostics; attach them only if you are comfortable sharing them.

Cookies

We only set analytics cookies if you accept analytics. Until you accept, the Google Analytics script is not loaded at all — no analytics cookies are written and nothing is sent to Google. When you accept, Google Analytics loads and sets cookies (_ga, _ga_*) that persist for up to 2 years. If you decline, the script stays unloaded and no Google Analytics cookies are set. Your preference is saved in your browser's local storage.

Third-party services

  • Netlify — hosts this website and the app's update address (update.papyriumlib.com). Like most websites, our hosting provider may process basic request data such as IP address, browser/user agent, requested URL, and timestamps for hosting, security, abuse prevention, and reliability. Netlify Privacy Policy
  • Kit — stores newsletter subscribers and sends the newsletter, including the subscription confirmation email. Kit Privacy Policy
  • Google Analytics — site analytics (only if you accept cookies). Your IP address is anonymized. If you decline, Google Analytics is not loaded and no cookies are set. Google Privacy Policy
  • GitHub — download buttons fetch the latest release information from GitHub's public API and may redirect your browser to GitHub Releases to download the app. The desktop app's update checks are forwarded to GitHub, where the update files are stored. GitHub Privacy Statement
  • PostHog — product analytics inside the Papyrium desktop app, processed in the EU region. Only active if you enable analytics (off by default); see "The Papyrium app" below. PostHog Privacy Policy

Legal bases for processing

  • Analytics (website and in-app) — your consent. You can withdraw it at any time.
  • Newsletter — your consent. You can withdraw it at any time by unsubscribing.
  • Feedback and support emails — our legitimate interest in responding to you and improving Papyrium.
  • Hosting and security logs — our legitimate interest in operating the site securely and reliably and preventing abuse.
  • App update checks — our legitimate interest in delivering updates and security fixes to the app.

International transfers

Google, Netlify, Kit, and GitHub are based in the United States, and so is PostHog's parent company, although Papyrium's analytics data is stored in the EU. When these providers process personal data outside the EU/EEA, the transfer relies on the EU–US Data Privacy Framework or on the European Commission's Standard Contractual Clauses.

Data retention

Website analytics (Google Analytics) data is retained for 14 months. In-app product-analytics events (PostHog) are retained for up to 12 months. Newsletter email addresses are retained until you unsubscribe; after that, Kit keeps only a record that the address unsubscribed, so it is not emailed again; ask us and we will delete that record too. Support and feedback emails are kept only as long as needed to handle your request and for a reasonable period afterward.

Your rights

Under GDPR and similar laws, you have the right to access, correct, or delete your personal data; to object to or restrict its processing; to data portability where applicable; and to withdraw consent at any time (without affecting processing already carried out before withdrawal). To exercise any of these rights, contact us at privacy@papyriumlib.com. We will respond within one month.

You also have the right to lodge a complaint with a data protection authority — in Lithuania, the State Data Protection Inspectorate (Valstybinė duomenų apsaugos inspekcija, VDAI).

The Papyrium app

Papyrium is local-first: your books, notes, annotations, and library contents are stored on your device, and the app does not send them to our servers. Some optional features may copy or sync your data to a destination you control (such as your own cloud storage) or exchange limited data with a service you turn on — see "Optional features that send data" below.

How the app processes your books

To show covers, display metadata, and power search (and, in future, optional AI features), Papyrium processes the books you add directly on your device. Derived data — extracted text, cover images, metadata, and search indexes — is stored locally alongside your library and is not sent anywhere unless you enable an optional feature that sends data.

Usage analytics (optional, off by default)

The app includes optional usage analytics that are turned off by default. You are asked during first-run setup, and you can turn analytics on or off at any time in Settings → General. When enabled, the app uses PostHog (EU region) to record how features are used:

  • app launches and how long the app stays open, the approximate size of your library, and whether you use grid or table view;
  • reading sessions (book format and approximate duration) and when you add a highlight, note, or bookmark;
  • searches — the kind of search and an approximate number of results, not what you searched for;
  • library actions such as connecting folders, importing books (file counts and formats), creating collections, applying tags or categories, linking editions, and reviewing duplicates, with the number of books involved;
  • first-run setup steps and which settings sections you save;
  • the local MCP server: when it starts or its settings change, when a client connects, and which tools a client calls (tool name, whether it succeeded, how long it took, and the name the client reports);
  • error codes when something fails, without error messages.

Each event comes with basic device information: operating system and version, device type, time zone, and the country from your system's region setting. PostHog receives your IP address with each request, as any server does, but is set to discard it rather than store it. The event sent when the app opens your library also includes your system language, and the setup events include the language you pick during setup. Each event also carries two random identifiers: one for your installation of Papyrium, so events can be counted per installation and we can see how usage changes over time, and one for the current launch, which is new every time the app starts and is never saved. The installation identifier is created on your device when you turn analytics on and stays the same across launches. It is not linked to your name, email address, or any account, but because it persists, it counts as personal data under the GDPR. When you turn analytics off, it is deleted from your device; if you turn analytics on again later, a new one is created.

What analytics never include

Analytics never include your book files, book content, titles, notes, highlights, tag or collection names, file names, file paths, what you search for, error messages, or any other library contents. No account is required, and the data is not linked to your identity or your library content.

Connected AI clients — MCP (optional, off by default)

Papyrium can run a local MCP (Model Context Protocol) server so that AI applications you choose to connect — for example, Claude or other MCP-compatible clients — can work with your library. The server runs on your device and is off by default. Connected clients can read library metadata, file paths, annotations, highlights, notes, and bookmarks — not the full text of your books — and write access is a separate opt-in. Papyrium itself does not send this data anywhere: a connected client decides what it reads and may send it to its own AI provider under that provider's terms, so review the privacy terms of any client you connect.

Update checks

The app checks for new releases at update.papyriumlib.com, which is hosted by Netlify and forwards the request to GitHub, where the update files are stored. When an update is available, the app downloads it the same way and installs it when you restart or quit the app. Like any network request, these include your IP address and standard technical information (app version, platform) — never any library content. You can turn off automatic checks and installs with Automatic updates in Settings → General.

Optional features that send data

Some optional integrations are off until you enable them and may send data outside your device. For example, a connected MCP client controls what it sends to its model and AI provider. Any feature that sends your data to us or to a third party is opt-in, indicated in the app, and documented in this policy before it processes your data.

Changes to this policy

We may update this policy as the product evolves. The date at the top of this page reflects the most recent revision. If a change significantly affects how the app handles your data, we'll tell you in the app or in the release notes before it takes effect, and where a change needs your consent, we'll ask for it.