Legal

Security

How the product is built to fail safely, what is implemented today, and what is not yet.

Draft — not yet reviewed by counsel.

This document says what the product actually does, written by the people who built it. A lawyer has not read it. It is published in this state because a product with no published policy is worse than one with a policy that admits what it is, and it will be replaced by a reviewed version before the first paid contract.

last reviewed 2026-09-17

Reporting something

[email protected] with "Security" in the subject, or the machine-readable contact at /.well-known/security.txt. Report anything that lets one account read, send as, or spend the budget of another. We answer every report, and we will not threaten anyone who reports one in good faith.

Sending mail you were authorised to send is not a finding.

What is implemented

  • API keys are stored hashed with a server-side pepper. The plaintext is shown once at creation and is not recoverable afterwards, including by us. A rotated key keeps a grace window so a deploy does not have to be simultaneous.
  • Keys carry scopes and a budget. A key created for one job cannot do another one, and it cannot spend past its budget. The budget is on by default; it is not something you have to remember to turn on.
  • Every account is isolated at the query layer. Account id is part of the predicate on every read, not a filter applied afterwards.
  • The console's session is a cookie, HTTP-only and same-site. The API's resource routes take a bearer key or that session, and nothing else.
  • Inbound message content is rendered as inert data in a sandboxed frame, with a banner saying so. A model reading a reply should not be able to be instructed by it.
  • Everything an account changes is written to an audit log with the value before and after.
  • TOTP multi-factor sign-in is available: enrol, challenge, recovery codes, and an account-wide require-MFA setting.

What is not implemented yet

We would rather list these than let a security page imply them.

  • No SOC 2 report and no penetration-test letter. Neither exists yet; both are planned before the first paid enterprise contract.
  • No bug bounty programme. Reports are still welcome and still answered.

Disclosure

If we have an incident that affects customer data, it goes on /status with the times it started and stopped, and the account owner gets an email. We would rather publish an incomplete account early than a tidy one late.