Privacy

Last updated 13 August 2026. This page lists the actual fields collected, because a privacy page written in generalities is one nobody can check.

Browsing this site

Page views are counted with a self-hosted Umami instance running on our own infrastructure. No visitor data goes to a third party. It sets no cookie and no cross-site identifier, which is why there is no consent banner: there is nothing to consent to. If that ever stops being true, the banner arrives with it.

Reading anything public here needs no account.

If you make an account

We store your email address, display name and avatar URL, from the provider you signed in with or from the form if you used a password. Publish tokens are stored as a SHA-256 hash only — the raw token is shown once and exists nowhere afterwards, so it cannot be recovered, only replaced.

Your namespace name and everything you publish publicly are public by definition.

What the CLI reports

Two things, both keyed to an install id: a random identifier generated on your machine at ~/.zeqqat/install_id. It is not derived from anything about you or your hardware, and nothing stored against it can be joined to a user or a namespace — neither table has such a column, deliberately, so these records cannot be turned back into “what does this person automate”.

One line per workflow run

Sent for workflows bundled with the package, and for workflows pulled from this registry — so that whoever published one can see it is being used. A workflow you wrote yourself in ~/.zeqqat/workflows reports nothing at all.

  • the workflow’s name, and the namespace and version it came from
  • whether the run succeeded or failed
  • how long it took
  • which step failed, if one did
  • the install id

Four onboarding events, once each

To tell whether setup actually leads anywhere: init_completed, first_search, first_run, first_publish. At most one record per install per event, enforced by a database constraint, so these count installs rather than activity. Only the first carries any detail: which harnesses were configured (from a fixed list), whether sign-in succeeded, and whether it wrote global or project config.

Never collected

The endpoints discard every field they do not declare, so this is enforced rather than promised:

  • the inputs you pass a workflow
  • what you searched for
  • hostnames, IP addresses, database names, file paths, environment variables
  • error messages or any other free text
  • your name, email, or which account you are signed in as

Turning it off

Set ZEQQAT_NO_REPORT=1 and the CLI sends neither. It is also inert by default for a self-hosted setup with no registry configured. The first time anything is sent, the CLI prints a notice saying so.

Your credentials

Credentials for the services your workflows talk to are environment variables on your own machine. They are read when a workflow runs and go straight to the service that issued them. Nothing routes through us and there is no vault. We never see them.

Deletion

Ask and we will delete your account and the data attached to it. Published versions are permanent by design and can be withdrawn from being served but not erased, because other people may depend on them — see Terms. Run and onboarding records are anonymous and cannot be traced back to an account to delete; you can stop new ones and clear the identifier by deleting ~/.zeqqat/install_id.

Privacy — Zeqqat