Privacy Policy
Last updated: October 10, 2026
1. Your files and personal data
Stapler runs entirely in your web browser. All PDF processing (merging, splitting, compressing, signing, redacting, converting, OCR, etc.) is done locally on your device using WebAssembly (Wasm) and JavaScript.
- We do not upload your files to any server, ours or anyone else's.
- We do not collect analytics, telemetry, crash reports or usage data.
- We do not have accounts, so we hold no personal information about you.
2. What is stored on your device
To work across sessions, Stapler keeps some data in your browser's own storage (the Origin Private File System, IndexedDB, Cache Storage and localStorage). It stays on this device and is never sent anywhere:
- Copies of the documents you open, so an interrupted session can be recovered after a crash or a closed tab.
- Signatures you choose to save.
- Recent files (a handle to the file you picked, not a copy), presets and saved recipes.
- A folder-search index: the text of the PDFs in a folder you chose to index, so it can be searched.
- OCR language models you downloaded or loaded from a file.
- Files shared to the installed web app, held only until the page opens them.
- Preferences: theme, language, keyboard shortcuts, your OCR download consent and similar settings.
To delete it: click the Offline badge at the top of the Stapler window, then Clear all local data… under Stored on this device, which also lists what is stored and how much space it takes. Removing the extension, or clearing the site's data in your browser's settings, deletes it as well.
3. The one network request: OCR language models
Text recognition (OCR) needs a language model of about 3 MB (English; Hindi adds 1.4 MB)
that is not bundled with Stapler. The first time you run OCR in a language, Stapler asks
before downloading it. Only if you agree is it downloaded, once, from a fixed, pinned
address on the public jsDelivr CDN (cdn.jsdelivr.net); its SHA-256 hash is
checked before use and the model is then kept on your device (section 2). Like any web
request, this download reveals your IP address, your browser's user agent and which language
model you asked for to jsDelivr and the networks that serve it. It sends nothing about your
documents. You can avoid the download entirely by loading the model from a file instead.
Apart from that, Stapler's own code makes no requests. Two things outside its control are worth knowing: your browser may check its extension store for updates, and if you use the website version, your browser downloads the app itself from its web host (GitHub Pages), which, like any web host, receives your IP address when it does.
4. Third-party services
Stapler does not integrate any third-party tracking, advertising or analytics service. The only third party it ever contacts is the jsDelivr CDN, for the OCR model download described in section 3, and only after you approve it.
Stapler is built on open-source libraries, all bundled into the extension and run on your device. Their licences and notices are listed in THIRD_PARTY_LICENSES.txt.
5. Changes to This Privacy Policy
We may update this Privacy Policy from time to time. Any changes will be reflected in the extension updates. Our core commitment, that your files are processed on your device and never uploaded, will not change.
6. Contact
If you have any questions or concerns about this Privacy Policy, please open an issue on our GitHub repository.