← All work
01Case study

Understanding human–AI collaboration through conversational data

Project name
Mirror
Timeframe
April–May 2026
01

Overview

Mirror is a research project exploring what a person's AI conversations reveal about how they think, and how to do that without asking users to take privacy on faith.

Mirror analyzes a person's ChatGPT history as a longitudinal record, surfacing recurring themes, shifts in behavior, and unresolved questions over time. It runs entirely in the browser and presents the findings as a guided reflection.

AI productsConversational dataMemory & contextProduct strategy
Scattered exchanges converging into one traced patternISOLATED EXCHANGESA PATTERN, TRACEDIsolated chat prompts. What structure lies underneath?The same conversations, resolved into one traceable pattern.
02

Project at a glance

Product surface
An end-to-end product concept and working prototype.
Team
Solo — Product strategy, data modeling, experience design, and front-end build.
Stack
HTML, CSS, vanilla JavaScript, SVG, JSZip, Cloudflare Pages.
Tools
Claude Cowork, ChatGPT, local development and QA.
03

The opportunity

Mirror was built between late April and late May 2026, when model capability was advancing faster than products could help people understand their own accumulated use.

Memory without visibility

By then, ChatGPT and Claude could both carry selected context across conversations. But memory was designed to improve the next response, not help users understand what had been retained or what patterns existed across their history. People could search old threads, but they could not see what they repeatedly returned to, what had changed, or what they had stopped asking about.

More context, not continuity

By May 2026, models could hold much more information at once, but became less reliable as that history grew. GraphWalks1 is a benchmark that gives a model a large network of connected information and tests whether it can trace the right relationships through it. GPT-5.4 scored 93% with up to 128K tokens of context, but only 21.4% when the context grew to 256K–1M tokens23.

Benchmark
GPT-5.4 on GraphWalks: relationship tracing accuracy by context size
Correct multi-hop traces across a connected archive
256K–1M tokens21.4% score
Roughly a multi-year archive
Up to 128K tokens93% score
Roughly a few months of conversation history

A 71.6-point drop as history grows. Capacity to hold the archive is not the same as the ability to reason across it[2][3].

What my archive revealed

My own archive contained nearly a thousand conversations and over 20,000 records across 28 months. The information existed, but it was scattered across hundreds of threads created for different purposes and in different states of mind. Neither the conversation archive nor the memory system could make sense of it as a whole.

~1,000 Conversations

Individual dialogue threads with different AI models and collaborators

~20,000 Records

Notes, outputs, and artifacts generated across those threads

28 Months

The span of the archive from first use to the present

Landscape and limitations (May 2026)
ModelContext windowMemory behaviorWhat that means for the user
ChatGPTGPT-5.5 (the default ChatGPT model from April 23, 2026)41M tokens (API)4References selected saved facts across conversations to improve responses; a File Library added persistent file context across chats4No view of what you'd returned to, what had changed, or what you'd stopped asking about
ClaudeClaude Opus 4.6 / Sonnet 4.6200K tokens standard; 1M tokens available since March 13, 20265Opt-in — extracts key facts from conversations and surfaces them in later sessions, explicit and controllable rather than automatic6Same — no way to see your own accumulated patterns of use
For Mirror, the implication was clear: models could hold increasing amounts of conversational history, creating a growing record of user interaction and an opportunity to translate it into meaningful insight.
Why it remained unresolved

Each part of the system was optimized for a different goal: models for capability, memory for the quality of the next response, and conversation interfaces for locating individual threads. No part was responsible for turning accumulated history into user understanding.

04

The experience

A guided, editorial reading of a person's ChatGPT history, moving from recurring themes and shifts over time to the language and conversations behind them.

Live demo

Try it on your own export

Mirror runs entirely in your browser — no account, no server, no upload. Export your ChatGPT history and see your own report.

A condensed preview of an actual Mirror report, generated from a real conversation export.
mirror
01 · Your terrain
Learning
Creativity
Health & Body
Finance
05

Trade-offs & decisions

Decision 1 of 4

A web artifact, not a native app

A native app looked like the obvious privacy choice, but it would still ask users to trust software they could not easily inspect.

  • Considered
    A packaged native application.
  • Chosen
    A single HTML file available as both a hosted experience and a downloadable offline copy.
Rationale

All processing happens in the browser. There is no account, server, database, or logging. Dependencies and fonts are included locally, and the offline version makes no network requests. A skeptical user can inspect the source, disconnect from the internet, and verify the behavior directly.

Trade-off accepted

No persistence, cross-device continuity, or server-side processing, along with practical browser limits on very large exports. I accepted those constraints because trust was the first product requirement.

06

What changed, where it stands

The first build exposed four measurable problems. Each one changed the product.

  1. Format
    Dashboard → editorial report

    The first version was a tabbed analytics dashboard. I replaced it with a guided scroll after seeing that the dashboard exposed the data without helping me understand it.

  2. Parser
    0 → 774 conversations

    My synthetic dataset used the wrong message structure, causing a real ChatGPT archive to return an empty result without an error. After correcting the parser, Mirror processed all 774 conversations across 28 months.

  3. Theme coverage
    About 30% unclassified → 17%

    The first taxonomy left nearly one-third of conversations without a theme. A confidence-sorted debug view exposed missing categories, including technology, parenting, spirituality, and science.

  4. Charts
    6 themes → 14 without losing legibility

    Expanding the taxonomy improved coverage but made the original charts unreadable. I redesigned the charts to highlight the strongest themes and group the rest under "more themes."

Where it stands

Mirror is deployed as a public prototype, with a downloadable offline copy that runs entirely in the browser.

What it showed me

Using Mirror with my own chat history confirmed patterns I already sensed, but gave me a richer view of where my attention had gone over time. The next question was whether the experience should end there or evolve into one people would return to.

07

What I'd change

Implementation limits

Mirror currently analyzes everything in the browser. With much larger files or longer conversation histories, that processing could slow down or temporarily freeze the experience. I would need to stress-test those limits and explore other implementation approaches.

How I would test it

Because conversation data can be highly personal, a typical moderated session where someone moves through the experience and talks through their results would not be appropriate. I would separate testing the experience from testing the personal relevance of the report.

For moderated sessions, I would use realistic dummy data. This would allow participants to respond openly to the themes, structure, language, and overall experience without exposing their own conversations.

To understand whether Mirror produces useful insights from someone's actual history, I would have participants use it privately on their own device. After they had time to read the report, an optional rating flow or short questionnaire could ask what felt accurate, surprising, incomplete, or already known, as well as what they had expected the report to surface.

Takeaways

The larger question is how Mirror moves beyond the first report. Emerging features across conversational AI suggest that people may find value in both immediate usage insights and patterns drawn from their history. Feedback from the first report could help sharpen hypotheses for the next step: turning that history into ongoing, accumulated, and actionable insight.

08

The landscape after Mirror

The landscape moved quickly after Mirror shipped.

  1. June 4, 2026
    OpenAI reworks its memory architecture

    The reworked system, called Dreaming, addressed stale information, accuracy, and multi-year histories at massive scale — problems OpenAI said its earlier approach had not fully solved.7

  2. July 9, 2026
    Anthropic launches Reflect

    Reflect gave users a view of their topics, task types, and activity patterns across the previous one, three, six, or twelve months. Anthropic said its research had surfaced a recurring desire to understand how AI was fitting into people's daily lives.8

What it reinforced

Reflect provided an external signal in support of Mirror's initial hypothesis: that patterns across a person's conversation history can hold valuable insight beyond simply having that history remembered by the model. Anthropic's decision to invest in, build, and release the feature does not validate Mirror's specific design, but it suggests that this was a meaningful product opportunity beyond the project itself.

It also clarified a more important distinction: who gets to turn a person's usage history into value, and on whose terms. When that analysis is built into the model provider's product, the provider decides which patterns are surfaced, how they are interpreted, and how those insights feed back into the experience.

Mirror points to another possibility: people could take their conversation history outside the system that produced it and derive value from it through an independent layer of analysis. Foundation-model companies do not necessarily need to be the only ones defining which patterns become visible, what those patterns mean, or what users can do with them.