Specs
Platforms, formats, cryptography and storage.
Platforms
| iPad, iPhone, Mac | iPadOS 27, iOS 27 and macOS 27 (Mac Catalyst) or later. The Mac app is built with Mac Catalyst and has an optional menu-bar item: Quick Voice Note, New Note, Open Sempere. |
| CLI | sempere: macOS 27 or later (universal binary), or Linux (static binary, x86_64 and aarch64). |
| Web viewer | Read-only, runs in the browser; decrypts in the page. |
| Languages | App and web viewer: English, Spanish. CLI: English. |
| License | GPL-3.0-or-later with an App Store exception (LICENSE-EXCEPTION). Source: github.com/anthonytw/sempere. |
Features by platform
| Feature | Apps | CLI (macOS) | CLI (Linux) | Web viewer |
| Draw | Apple Pencil, finger or a capacitive stylus where supported; mouse or trackpad on the Mac | — | — | — |
|---|
| Create vaults; join and manage devices | ✓ | ✓ | ✓ | — |
|---|
| Open and unlock a vault | ✓ | ✓ | ✓ | read-only |
|---|
| Read notes, notebooks, tags | ✓ | ✓ | ✓ | read-only |
|---|
| Search titles, tags, text boxes, PDF text | ✓ | ✓ | ✓ | ✓ |
|---|
| Handwriting recognition (Apple Vision) | ✓ | ✓ | — | searches stored results |
|---|
| Transcribe recordings (Apple Speech) | ✓ | ✓ | — | searches stored transcripts |
|---|
| Images, PDFs, text boxes | ✓ | add and export | add and export | view |
|---|
| Equations (LaTeX) | ✓ | stores the source | stores the source | draws the stored rendering, else the source |
|---|
| Video clips1 | ✓ | ✓ | ✓ | view |
|---|
| Audio recordings | ✓ | add and export | add and export | play |
|---|
| Quick voice notes without unlocking | ✓ (on the Mac also from the optional menu-bar item) | inbox commands | inbox commands | — |
|---|
| Settings sync (through the vault) | ✓ | edit shared settings | edit shared settings | — |
|---|
| Camera (photos, video) | iPad and iPhone only | — | — | — |
|---|
| Export PDF, PNG pages, Markdown, media files | ✓ | ✓ | ✓ | — |
|---|
| Export SVG, HTML, JSON | — | ✓ | ✓ | — |
|---|
| Backup, verify, restore | ✓ | ✓ | ✓ | — |
|---|
| Paper recovery kit (QR) | print at creation; replace | ✓ | ✓ | — |
|---|
| Take over with the recovery kit | ✓ | ✓ | ✓ | — |
|---|
| Sync | two-way with folder and WebDAV targets; offline | two-way: folder, WebDAV, or a push-only mirror | two-way: folder, WebDAV, or a push-only mirror | reads a folder or a WebDAV share |
|---|
| Unlock | this device's key in the Keychain, optionally behind Face ID or Touch ID; the recovery key read-only | this machine's device key (optionally passphrase-wrapped); the recovery key read-only | this machine's device key (optionally passphrase-wrapped); the recovery key read-only | the recovery key or its passphrase copy; a passkey |
✓ = supported, — = not available. 1 On Linux the CLI cannot make a video's poster frame itself: pass --poster with an image.
Linux (CLI)
The CLI is a complete vault client on Linux. Everything that does not need Apple frameworks or a pen runs there.
| Area | On Linux |
| Vaults and devices | Create, open, verify, list; join a vault as a device; approve, rename and remove devices, hand over the home role, take over with the recovery key, replace the recovery kit, re-encrypt everything. |
| Encryption | age v1 with the ML-KEM-768 + X25519 recipient (swift-crypto on Linux, CryptoKit on Apple platforms). Same files, same keys. |
| Notes | Create, rename, tag, move, history and restore, pages, items, search. |
| Attachments | Images, PDFs, text, equation source, video, recordings, transcripts. |
| Import | The same importers as on macOS (see Input and import formats). |
| Export | PDF, SVG, PNG, Markdown, HTML, JSON, Media. PDF page backgrounds in SVG and PNG use Poppler if installed. |
| Backup and recovery | Backup, verify, restore; paper recovery kit; recover one file with stock age. |
| Sync | Two-way with a WebDAV folder or another folder, or a push-only WebDAV mirror; a vault store with sync targets, as the app keeps. |
| Not on Linux | recognize (Apple Vision) and transcribe (Apple Speech) report an error. There is no GUI. |
Input and import formats
| Ink | Apple Pencil and touch. Stored as vector strokes in an open JSON format (PencilKit control points). |
| Images | JPEG and PNG. Location and camera metadata is removed by default. HEIC from Photos is converted to JPEG. |
| PDF | Imported as a new note, or pages inserted into a note. Encrypted PDFs are stored without the password. |
| Video | MP4 and QuickTime, H.264 or HEVC. |
| Text, equations | Text boxes in any script. Equations as LaTeX. |
| Notability | Imports the raw notes of a personal Notability backup: .note and .ntb files, the folders that hold them, or the backup's zip files (for example from Google Drive), wherever the local copy lives. Notability's PDF exports are not imported. |
Export formats
| App | PDF, PDF with attachments (recordings, transcripts and video clips embedded), PNG pages, Markdown text, Media (a folder per note with its recordings, transcripts, clips, images and PDFs). Through the share sheet or Save to Files; or PDF, PDF with attachments, PNG and Media for a selection, a notebook or the vault, to a folder or a zip. |
| CLI | PDF, SVG, PNG, Markdown (Obsidian-style folders), single-file HTML, JSON, Media. |
Cryptography
| Primitives | X25519, ML-KEM-768, ChaCha20-Poly1305, HKDF-SHA-256, HMAC-SHA-256, Ed25519, ML-DSA-65, scrypt. From CryptoKit (Apple platforms) and swift-crypto (Linux). The web viewer uses typage (age-encryption), @noble/post-quantum, @noble/curves and WebCrypto. |
| age v1 | Sempere implements the age v1 file format itself (Sources/Age): header and MAC, X25519, scrypt and ML-KEM-768 + X25519 recipient stanzas, STREAM payload, armor, Bech32 keys. Checked against the C2SP CCTV test vectors and against the reference age tool. |
| Vault format | Sempere's own, on top of age: docs/format.md. Every file encrypted once, to a vault identity derived from a per-epoch vault key, which vault.json wraps for each device and for the recovery key. HMAC tags under keys derived from the vault key on revisions, blobs and the device list; the device list signed by the home device (P-256 and ML-DSA-65), epochs linked by Ed25519 and ML-DSA-65 signatures. |
| Keys | Hybrid post-quantum only: ML-KEM-768 + X25519 (age1pq1…). Details: docs/post-quantum.md. Device keys are made on each device and never leave it; signing keys in the Secure Enclave where there is one. Reading a note by hand needs age 1.3 or later. |
Storage
| Vault | A folder named Something.sempere. The files are already encrypted, so a storage provider sees only ciphertext, file names, sizes and times. |
| App | A complete copy of each vault inside the app on every device, which works offline. Any number of sync targets per vault, synced both ways: a shared .sempere folder in iCloud Drive, in any location the Files app offers (for example an SMB share on a NAS) or on a drive, or a WebDAV server over HTTPS (a self-signed certificate is accepted only after you trust its fingerprint; the password is kept in the Keychain). Other devices open the target and join by approval. Every received file is checked before it is placed. |
| Backups | A <Name>.sempere-backup snapshot of the encrypted files, for recovery. Incremental, checked by a verify step. Nothing syncs from it, and it is never a sync target. The CLI also writes a tar archive. |
| CLI and viewer | Any folder. sempere sync webdav and sync folder sync a vault two ways with a WebDAV share (for example a self-hosted Nextcloud) or another folder; the viewer reads a vault from a static URL, a WebDAV share or a local folder. |
| Settings | Settings are kept in the vault as one encrypted file, with optional per-device overrides. |
| Merging | Notes are append-only logs. Edits from several devices merge, and sync tools never create conflict copies. |