Privacy

Local mode's only network call downloads the list of pre-built rosters, at most once a day. Cloud mode stores rosters and draft state on the rostr API; tasks and repo names are encrypted on your machine before they're sent.

Data

DataLocalCloud (server)
RostersDiskPlaintext
Drafts (member, session ID, timestamps)DiskPlaintext. Session IDs are random
TasksDiskAES-256-GCM ciphertext
Repo identity (owner/repo)DiskHMAC-SHA256 fingerprint + AES-256-GCM ciphertext
rostr key—Never transmitted

Keys

The CLI derives three independent keys from your rostr key. Only the auth token leaves your machine.

rostr key
├─ HKDF-SHA256(info="auth") → auth token
├─ HKDF-SHA256(info="encrypt") → encryption key
└─ HKDF-SHA256(info="fingerprint") → fingerprint key

Distinct HKDF labels make the keys independent: none reveals the rostr key or any other derived key.

What the server sees

Consequences