Security Overview
Private card content is encrypted in your browser before upload. The private link carries the decryption key. The server stores encrypted content only.
Public content
The public link exposes the card fields required by agents: status, boundaries, allowed actions, ask-first rules, public resources, JSON, Markdown, schemas, and the public request key.
Private content
The private link unlocks private notes and inbox notes. Signing in verifies account identity but does not unlock private content. If you lose the private link, locked content cannot be recovered. Anyone who receives the link fragment can use it, so treat it as bearer access control.
Creating cards
- Every card is encrypted at creation. Add a private note section anytime; your private link appears after you save with that section. Copy it while this device still holds the key. We cannot restore it later.
- Inbox is on by default. Turn it off when creating or editing; you can turn it back on anytime.
Verification procedure
- Open browser DevTools, then open the Network tab.
- Create or edit a card with a unique private note, for example
purple elephant private test. - Inspect the request to
/api/cards. - Confirm the private phrase is not present in the request body.
- Confirm the request contains only the encrypted private blob: ciphertext, nonce, and algorithm.
- Open the public link and confirm locked content is unavailable. Open the private link and confirm it decrypts in the browser.
Stored private format
The server accepts one encrypted shape for private card fields. The secret key is not included in this object. It is carried by the private link fragment as #key=....
{
"encryptedPrivateBlob": {
"algorithm": "aes-gcm-v1",
"ciphertext": "base64url(AES-GCM ciphertext and tag)",
"nonce": "base64url(12 random bytes)"
}
}Operator access
Operators can access operational metadata required to run the service, such as account, card, delivery, audit, and usage metadata. Locked card content and inbox notes are browser encrypted; the operator cannot decrypt them without the private link secret.
Report a vulnerability
Send security reports to support@humanisoffline.com with enough detail to reproduce the issue. Please do not access other accounts or disrupt the service while testing.