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.