Security
The product reads your AI coding sessions. That deserves a straight description of where the data goes.
Redaction happens before upload
The CLI scans transcripts on your machine and strips credentials before anything is synced. What reaches the server is a masked preview and the name of the rule that matched, not the secret.
Detections are verified, not guessed
A candidate credential is checked against the service that issued it. That distinction is the entire point: a dead key is hygiene, a live key is an incident. Only live ones raise an alert.
Tenant isolation is enforced by the database
Every row carries a tenant, and reads run inside a transaction that sets it. The isolation does not depend on application code remembering a WHERE clause.
The browser session cannot be read by script
The session is an httpOnly, Secure, SameSite=Lax cookie on a seven-day rolling window. It was a bearer token in localStorage, which any script on the page could read; it is not any more. The site runs under a Content-Security-Policy with no inline or remote scripts, and the webfonts are served from this origin so no third party can style the page.
Self-hosting
The server and its Postgres run under Docker Compose. Point the CLI at your own instance and nothing leaves your infrastructure.
Reporting a problem
Mail [email protected]. Reports are read by a person.