Skip to content

Pattern surfacing for AI chat history

You have had thousands of conversations with an AI.
Nobody has ever read them back to you.

Upload your own ChatGPT export. Get back a report on the patterns in how you use it — what recurs, what shifted over time, how you respond when it pushes back. Every finding is quoted from something you actually wrote, paired with an ordinary explanation, and argued against by an independent model before you ever see it.

This is not a diagnostic tool. It cannot tell you anything about your mental health, and it will never name a condition. It points at things that might be worth a second look. Most of what it flags has an ordinary explanation — and where there is one, it is printed right next to the flag.

Three design decisions

A model may not judge a corpus it wrote

Your export is half ChatGPT’s own output. Asking GPT to assess how warm, agreeable, or validating an assistant was is self-assessment, biased in exactly the dimension being measured. So GPT holds no judgment role here. That rule is enforced in code, and it is relative to the corpus — analysing a Claude export would bar Claude instead.

Something argues against every finding

Before a pattern reaches your report, a different model family from a different vendor is told to refute it — to build the strongest case that the benign reading is the true one. Its counter-argument is printed alongside the finding, whether or not it won. On our first real run the reviewer knocked out 3 of 7 candidate patterns.

We publish our own failure conditions

Before running this on anyone, we wrote down the results that would make us abandon the method — and we publish them, along with the reproducibility we actually measured and the blind spot we found in our own extractor. All of it is on one page.

What we have actually measured

These are real numbers from a real run, not projections. They are also not flattering, which is the point of printing them.

0.78
Run-to-run agreement on WHICH sessions are notable
0.50
Run-to-run agreement on WHICH pattern type a session gets
0.83
Run-to-run agreement at the synthesis stage
N=1
Subjects analysed so far. This is early software.

Read those honestly: the report is fairly stable about where to look in your history, and much less stable about what to call what it finds. That is why every pattern ships with its counter-argument instead of a score. The full accounting →

How it works

  1. 01

    Your browser reads the file. Not our server.

    You point the page at the conversations.json from your ChatGPT export. It is parsed in your browser to count sessions, messages, and date range. Only those counts are sent to us, so you can see the size of the job and the price before anything private moves.
  2. 02

    You pay, and only then does anything upload.

    Payment is handled by Stripe on Stripe’s own page. Your chat history stays on your machine until the payment clears. If you never pay, we never receive it.
  3. 03

    Direct identifiers are stripped before anything leaves.

    Names you list, emails, phone numbers, and street addresses are replaced with stable placeholders — including in conversation titles, which ChatGPT generates from your content and which leak names constantly. This is best-effort, not a guarantee; it misses nicknames, employers, and third parties you never listed.
  4. 04

    Four model families do four different jobs.

    One extracts candidate markers from every slice of your history. One looks at the corpus as a whole for what is absent. One synthesises. A fourth, from an unrelated vendor, tries to demolish the result. Then a panel of four more judges checks the finished report for diagnosis language before it is released.
  5. 05

    You collect it. Then it is destroyed.

    The report is encrypted with a key that appears only in your link and is never stored on our side. We keep nothing after 24 hours — collected or not. Exactly what is retained, and by whom →

What one finding looks like

An illustration, not a real subject’s report. Every section below is mandatory — the generator refuses to emit a finding that is missing its evidence or its benign reading.

Plans are described as finished more often than they are revisited

· confidence: supported · maturity: Bootstrap

What we observed

Across eleven sessions spread over four months, a project is introduced as nearly-complete and then does not appear again. The pattern is in the gap between the stated state and the follow-up, not in the language of any single message.

Evidence

“almost done with the migration, just need to flip the switch tomorrow”
— 2025-03-14, session a1f0…, msg 4

+ 10 further citations, each with a timestamp and a message index

A more everyday explanation

People bring problems to an assistant and solutions to nobody. Finishing a task is exactly the moment you stop needing to talk about it, so a chat log is systematically biased toward unfinished things. This may say more about what chat is for than about the person.

A reviewer tried to refute this

Its strongest counter-argument, and whether it survived, is printed here in full — including when the reviewer wins. A pattern our own reviewer destroyed is more useful to you than one we quietly deleted.

One report. $199.

No subscription, no account, no stored history. You see the size of your corpus and the price before you pay, and if your export is too large for us to run responsibly we will tell you instead of taking the money.

Start →

Before you buy, please read the limits page. It says plainly that this has been run on one person, that we cannot yet show it tells two people apart, and what would make us stop selling it. If that is not a risk you want to take with $199, we would rather you did not.