Understanding human–AI collaboration through conversational data
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.
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.
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.
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.
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.
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].
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.
Individual dialogue threads with different AI models and collaborators
Notes, outputs, and artifacts generated across those threads
The span of the archive from first use to the present
| Model | Context window | Memory behavior | What that means for the user | |
|---|---|---|---|---|
| ChatGPT | GPT-5.5 (the default ChatGPT model from April 23, 2026)4 | 1M tokens (API)4 | References selected saved facts across conversations to improve responses; a File Library added persistent file context across chats4 | No view of what you'd returned to, what had changed, or what you'd stopped asking about |
| Claude | Claude Opus 4.6 / Sonnet 4.6 | 200K tokens standard; 1M tokens available since March 13, 20265 | Opt-in — extracts key facts from conversations and surfaces them in later sessions, explicit and controllable rather than automatic6 | Same — 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.
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.
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.
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.
Trade-offs & decisions
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.
- ConsideredA packaged native application.
- ChosenA single HTML file available as both a hosted experience and a downloadable offline copy.
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.
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.
What changed, where it stands
The first build exposed four measurable problems. Each one changed the product.
- FormatDashboard → 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.
- Parser0 → 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.
- Theme coverageAbout 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.
- Charts6 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."
Mirror is deployed as a public prototype, with a downloadable offline copy that runs entirely in the browser.
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.
What I'd change
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.
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.
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.
The landscape after Mirror
The landscape moved quickly after Mirror shipped.
- June 4, 2026OpenAI 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
- July 9, 2026Anthropic 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
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.
- 1.Introducing GPT-4.1 in the API — OpenAI (origin of the Graphwalks eval)
- 2.Graphwalks BFS <128k Leaderboard — llm-stats.com
- 3.GraphWalks BFS 256K–1M Benchmark — BenchGecko
- 4.GPT-5.5 Complete Guide: Thinking, Pro & 1M Context — digitalapplied.com
- 5.Claude Context Window Meter: See How Full Your Chat Is (2026) — ai-toolbox.co
- 6.Claude Context Window and Memory: What Persists Between Conversations — tygartmedia.com
- 7.Dreaming: Better memory for a more helpful ChatGPT — OpenAI
- 8.A new way to reflect on how you use Claude — Anthropic