ynai · for YNAB

What this server
does with your data.

Last updated 2026-09-18.

Short version: it passes your YNAB data to the AI app you connected, when that app asks for it, and keeps none of it.

What it's for, and nothing else

This server exists so an AI assistant you have connected — Claude, ChatGPT, Claude Code or Cursor — can answer your questions about your own YNAB plans, and so Kevin HG's household money page can refresh its own figures. Your data is used for those two purposes and no others. It is never used to train anything, never analysed in aggregate, never sold, and never looked at for any other reason.

Why read-only

The connection is made with YNAB's read-only scope, which YNAB enforces at its own end: a read-only token gets 403 Forbidden on any attempt to add, change or delete anything. So this server cannot alter your plans even if it tried, and neither can the assistant. Read-only is all it asks for because reading is all it needs to do — answering questions.

What is stored, where, and for how long

Who it is shared with: nobody

Your YNAB data is never knowingly passed to any third party. There are exactly two other parties in the picture, and you chose both: YNAB, where the data comes from, and the AI app you connected it to — for example Anthropic's Claude — which receives the answer to the question it asked, on your behalf. That app has its own privacy policy for what it then does. Nobody else is sent anything, ever.

Kevin HG runs this server and can see its logs — masked and limited as described above, which is to say: what happened, when, from which IP, against a one-way hash of your account, and none of your money. The encrypted tokens cannot be read without a live connection's own credential.

Deleting your data, and stopping access

Those are two different things, so here is which is which.

Two timing notes, because they are the kind of thing that is annoying to discover. The store this runs on spreads changes across Cloudflare's network rather than switching them everywhere at once, so a disconnect can take up to about a minute to be refused in every location. And when a connection renews itself, a small encrypted note of that renewal can outlive the disconnect by up to five minutes; it holds no plan data and is unreadable without the credential it belongs to, which is gone.

The honest caveats

This is a personal project with no support promise. It is not made by, endorsed by, or affiliated with YNAB. It runs on Cloudflare Workers; Cloudflare processes the traffic as an infrastructure provider.