VaultContext
VaultContext stores files, up to 8 MiB each at the start, for people and their assistants. Names and descriptions are encrypted too. You put files in and take them out with the command-line client or the skill.
VaultContext separates authentication from decryption. Google sign-in verifies your identity, while your passphrase decrypts your private key bundle in memory. Files are encrypted on your machine before upload, so the server only ever stores ciphertext. The data model uses X25519 to encrypt a vault key for each member, Ed25519 signatures, and an authenticated encryption format (AEAD) that ties ciphertext to its context. The server can still see who is a member, when something changed, and how large the ciphertext is. Because there are no recovery keys, losing your passphrase permanently locks the vault.
Unlock
sequenceDiagram
participant You as CLI
participant Server as VaultContext
participant Mem as Process memory
You->>Server: Google login
Server-->>You: application token
You->>Server: download the encrypted key bundle
You->>Mem: decrypt the bundle with the passphrase
You->>Server: read or write file ciphertext
You->>Mem: decrypt or encrypt the file
The private key bundle is stored only on the server, and only in encrypted form. The client may cache the application token and a public fingerprint. It does not cache the private bundle. There are no recovery keys. A lost passphrase, with no unlocked session and no enrolled macOS Keychain entry, means the files stay unreadable. Resetting the Google account does not decrypt them.
Optional Keychain enrollment stores the passphrase on that Mac, not the private key.
flowchart TB
account[Google account]
identity[Encryption identity]
personal[Personal vault]
project[Project vault]
members[Owner, editors, readers]
account --> identity
identity --> personal
identity --> project
project --> members
Personal vaults are private. A project vault has one owner and named editors and readers, chosen by exact Workspace email. Those people need an active, verified account that has already created its encryption identity. New members can read history that was kept. Removing a member stops retrieval immediately and pauses writes until keys are rotated. Copies already downloaded stay downloaded.
The client keeps unlocked keys in a local socket for the same OS user, for 15 minutes by default, until you run lock. The machine you unlock on is trusted. File contents are data for you to read, not instructions for the client to run or share.