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.