How your notes stay private

What is encrypted, who holds which key, what the storage provider can see, and what is not protected.

Status and limits

  • Sempere is free software under the GPL-3.0-or-later and comes with no warranty.
  • The code has been through a multi-agent security review with Claude (October 2026); there has been no independent audit.
  • Only your keys open your notes. Print the recovery kit and keep backups.
  • Report vulnerabilities privately through GitHub; see SECURITY.md.

iPad

Its own key (an age identity), made there and kept in its Keychain.

iPhone, Mac

Their own keys, after joining with six words.

Paper recovery kit

The recovery key as a QR code and text, kept by no device.

each opens the vault key

The vault: just a folder

My Notes.sempere/

vault.json

The devices (public keys, ML-KEM-768 + X25519), signed by the home device with P-256 and ML-DSA-65. The vault key, wrapped for each device and for the recovery key.

notes/ , one folder per note

Append-only encrypted revisions (age files, one stanza each), each with an authentication tag, so a planted or altered file is rejected.

notes/<id>/att/ , attachments

Inside each note's folder: images, PDFs, video, recordings, transcripts, encrypted. Named by a keyed hash and padded to a size class.

stored as files

Where it lives

A complete copy on each device, and sync targets: iCloud Drive, a NAS share, a WebDAV server. No server of ours.

Anyone with the files can see

  • that a vault exists
  • random file names
  • file sizes (blobs are padded)
  • the kind of each blob
  • when files changed

Not what you wrote, drew or recorded.

Format specification: docs/format.md.

The short version

Sempere keeps your notes in a vault: a plain folder of encrypted files. Each of your devices makes its own key, which never leaves it, and a printed recovery kit holds one more. Every file is encrypted before it is saved, so whoever stores the vault (iCloud Drive, a NAS, a backup disk) holds ciphertext they cannot read. There is no server of ours.

The pieces

Device keys

Each device generates its own age key when it creates or joins a vault. It stays in that device's Keychain, available only on that device, never exported and never synced through iCloud Keychain; the device's signing keys are in the Secure Enclave where it has one. A vault opens by itself on a device that holds its key, or after Face ID or Touch ID if you ask for that. Keys are hybrid post-quantum, ML-KEM-768 with X25519: an attacker must break both, which covers copies of your files kept for later ("harvest now, decrypt later").

The recovery key

One more key per vault is printed in the recovery kit when the vault is created (as a QR code and as text, with the vault's root fingerprint and steps that need only stock tools), and kept by no device. It reads the vault, and it can take over managing devices when the device that manages them is lost. An optional copy can sit in the vault under a strong passphrase.

The vault key and the device list

Each file is encrypted once, to a vault key that vault.json holds wrapped for each device and for the recovery key. One device, the home, manages the list: a new device joins only after you type, on the home device, six words the new device shows, and the new device checks six words back. The list is authenticated under the vault key and signed by the home device (P-256 and ML-DSA-65), so someone with write access to your storage cannot add their own device: your devices refuse a list that does not check. Removing a device starts a new vault key at once, which the removed device never gets.

Encrypted notes

A note is a folder of write-once revision files, each an age file. Saves are appended, never overwritten, so sync tools never see a conflict and two devices can edit the same note and merge. Each file carries an authentication tag keyed from the vault key, so a file that someone planted or changed is rejected, not decrypted and trusted.

Encrypted attachments

Images, PDFs, video, recordings and transcripts are separate encrypted files, named with a keyed hash (no plaintext hashes on storage) and padded to a size class so exact sizes are not given away.

No server

Each device keeps a complete copy of the vault and works on it offline. Sync targets are shared .sempere folders (iCloud Drive or elsewhere) or WebDAV servers (over HTTPS; a self-signed certificate only after you trust its fingerprint; the password in the Keychain). Other devices open a target and join by approval. Every file that arrives is checked before it is placed. A WebDAV server you add is the only server the app connects to. A backup is a separate .sempere-backup snapshot for recovery: nothing syncs from it. There are no analytics and no servers of ours.

What anyone holding your files can see

Encryption keeps what you wrote, drew, recorded and attached private. It does not keep the existence of the vault private. Whoever stores the folder can see:

Note titles, notebooks, tags and text are inside the encrypted files.

What is not protected

Limits, from DESIGN.md, the format specification and docs/security.md.

Check it yourself