zero-knowledge encryption
your data is encrypted on your device before it ever leaves. we use your password to derive an encryption key locally - this key never leaves your device and we never see it. this means we physically cannot read your data, even if we wanted to. only you (and anyone you share your password with) can decrypt your data.how it works
you set a password
this password is used to derive your encryption key using argon2id (a secure key derivation function).
data is encrypted locally
before any data leaves your device, it’s encrypted using chacha20-poly1305 (a fast, secure cipher).
encrypted data is uploaded
only encrypted blobs are sent to our servers. we store them but cannot read them.
what we store
- encrypted blobs (we cannot read these)
- your account email
- encrypted master key (encrypted with your password - we cannot decrypt it)
- salt for key derivation (not secret, needed to derive the same key)
- device metadata (device name, os, last sync time)
what we cannot see
your screen recordings
all visual data is encrypted
your audio transcriptions
all audio data is encrypted
your ocr text
all extracted text is encrypted
your encryption password
never leaves your device
your encryption key
derived locally, never transmitted
any of your actual data
we only see encrypted blobs
verify it yourself
screenpipe is open source. you can audit the encryption code yourself:view encryption source code
review the rust implementation of our zero-knowledge encryption
important notes
cloud sync requires a screenpipe pro subscription. sync happens automatically in the background and uses approximately 0.8 gb per monitor per day.