Hearth

What we can and cannot see

Written to be checkable rather than reassuring. If any of it stops being true, this page is wrong and should be fixed before anything else.

Your credentials stay in your vault

Hearth stores a reference — op://Hearth/ynab/credential — not the secret. It's fetched at the moment a tool runs and forgotten immediately. You rotate and revoke in 1Password, without asking us, and 1Password's own access log is a record of what we did that we do not control. If our log says we read your token twice this week and theirs says nine, we're caught.

Half of the key is never on our disk

For anything sealed here, the key is split. We hold one half; the other half lives in your MCP client and arrives only on a request you initiated. A copy of our database — a backup, a snapshot, a stolen disk — is noise on its own.

What this does not mean

We will not tell you "not even we can read it", because that sentence isn't true and you'd be right not to believe it.

What we do about it

Every outbound request goes through one hardened HTTP client that cannot reach a private, loopback, link-local or Tailscale address — enforced on the resolved IP, re-checked on every redirect, with the destination pinned so DNS can't be swapped underneath it. That code has 255 recorded attacks against it and a test you can run.

Every action is written to an append-only, hash-chained log that you can read and verify. The database refuses updates and deletes on it.

The one thing that would make the strong claim true is running the tool calls on your own machine, so we're never on the path at all. That's the next thing to build, not something we're claiming today.