Does a Headcanon Generator Upload Your Character Name? Test It in Two Minutes

Short answer: do not take a generator's word for it — run the two-minute test. Open the tool, open your browser's developer tools, switch the Network panel to Offline, then generate again. A generator that keeps its lines inside the page will keep working with the network switched off and log no new requests; a generator that calls a server will stall, error, or return nothing the moment the connection dies. Then search the page source for fetch, XMLHttpRequest and sendBeacon: a fully local tool contains none of them. Our own generator is one file of 42,054 bytes — a single inline script, zero network calls, zero storage, one name field capped at 60 characters, and 180 prewritten lines shipped inside the page. Every one of those numbers is counted, not claimed, and you can re-count all of them yourself.

Headcanon is often the most private thing a writer makes. It runs ahead of canon, so it spoils stories that have not been published yet. It names original characters who exist nowhere else. It carries a campaign that your group has not played. So when a generator asks for a character name, the interesting question is not whether the tool is trustworthy in the abstract — it is whether the sentence you just typed travelled anywhere. That question has a checkable answer, and it takes less time to check than to read a privacy policy.

A generator is either a page or a phone call

Almost every generator you will meet is one of two machines, and they look identical on screen.

The first is a self-contained page. It is HTML, styles, a block of prewritten lines and a short script that shuffles them and fills in a name. Everything it needs arrives in that first download, so after the page has loaded the tab can work with the cable unplugged.

The second is a thin client. The page is mostly a form. Clicking the button packages whatever you typed and posts it to a machine the operator runs, which produces lines and sends them back. The output can be better, because the machine behind it can be large — but the sentence you typed has left your computer by definition, and from that point its fate is governed by somebody else's logging, retention and account policy.

You can often guess which one you are looking at from the business model. If a generator needs an account, a credit balance, or a monthly subscription to keep going, then something is executing on a machine that is not yours. But guessing is not checking, and the check is short.

The test, in four steps

You need a browser and about two minutes. Nothing here requires an extension or a tool you have to install.

How to read what you saw

What the Network panel shows What it means
The document loads; clicking generate adds no rowsThe lines were already in your tab. Nothing you typed was transmitted.
A new row appears on every clickYour input is being sent. The start of that row is the destination.
Generating still works in Offline modeNothing was required from a server, so nothing could have been sent.
Generating fails in Offline modeThe tool cannot produce anything on its own. Your input goes to whoever runs that server.
A data row appears when the page loads, before you typeSomething is checking in on arrival. That may be analytics rather than your text, but the page is talking to a third party either way.

Four ways to fool yourself

What our own tool measures on this test

Since the test is easy to run on us, here is the result rather than an assurance. Each figure below was counted out of the page file itself on 22 September 2026, and the live copy served by the host matched the file on disk byte for byte when the count was taken.

What we counted Result
Files the generator needs to run1
Size of that file42,054 bytes
Inline script blocks, and their share of the file1 block, 29,119 bytes (about 69%)
External scripts, stylesheets, fonts or images loaded by the page0
Network calls written anywhere in the script — fetch, XMLHttpRequest, WebSocket, EventSource, sendBeacon, Worker, dynamic import0
Uses of localStorage, sessionStorage, document.cookie or IndexedDB0
Times the page reads values out of the address bar0
Text fields the tool asks you to fill in1, capped at 60 characters
Headcanon lines shipped inside the file180
Requests the generator makes after the page has loaded0

Two of those rows are the reason the offline step of the test passes here. The page asks you for one short string and nothing else — no fandom, no context box, no tone questionnaire that a server would need in order to answer. And the whole data bank plus the drawing code sits inside the same script, occupying the last 28,752 characters of the file, so there is nothing left for the browser to fetch when you click.

The sentence you can find in the source

There is a faster proof than any of the above, and it takes one search. Open the page source and search for the words writes lists, loses the lists, and trusts the lists anyway. You will find it sitting in the file in plain text, written as a template that starts with a {name} placeholder. That placeholder is swapped for whatever you typed by a local string function, in your own tab. The line was already on your machine before you clicked anything — which is precisely why there is nothing for a network request to do.

You can run the same search on any generator. If the sentences it produces are not in the file, they are being manufactured somewhere else.

What this test cannot tell you

The trade-off, said plainly

A local tool buys privacy with a fixed bank. Because the lines are prewritten rather than produced on demand, they are finite, and they will eventually come back around — a property shared by every generator that draws from a list, whether or not it admits it. We published the exact counts and the repeat arithmetic on a separate page, because a limit you can measure is more useful than a promise you cannot.

The generator itself is on the front page of this site, and the full statement of what the site does with data lives in the privacy policy. Both are shorter than you expect, for the same reason: there is less to describe when nothing you type goes anywhere.

More headcanon guides