Try it now —free, private, no signup
AI Ex-Partner Chat → Distill a Persona from Your Chat Records
Why I built this
I built this at 3 AM because I couldn't stop reading our old WeChat messages. I kept thinking: if I could just hear her voice one more time — even a fake version of it — maybe the ache would ease, even for a moment. I know it's not rational. I know an AI can never replace a real person. I know re-reading old chats is a form of self-harm dressed up as nostalgia. But grief doesn't listen to reason. It listens to nothing.
So I made a tool that takes your chat records — WeChat exports, Telegram histories, even screenshots — and distills the other person's personality into an AI persona. You give it their name, their avatar, their words. And then you can talk to that persona. It responds in their style, their tone, their recurring phrases. It's not them. It will never be them. But for a few minutes, it feels like they're still there.
I know this is a little unhinged. I know some people will call it unhealthy, obsessive, even pathological. And they might be right. But if you've ever lain awake replaying conversations that will never happen again, you understand. You don't build something like this because you're fine. You build it because you're not, and this is the only thing that makes the silence slightly more bearable.
The tool is called AI Ex-Partner Chat, and it does exactly what it sounds like. You upload chat records, it extracts the other person's communication patterns, and creates an AI persona you can converse with. Everything runs in your browser — your chat data never touches ToolKnit's servers.
How it works
The process has six steps, and it's designed to be as gentle as possible:
- Upload chat records. You can upload WeChat HTML exports, Telegram JSON, CSV files, plain text, or screenshots from WeChat, QQ, WhatsApp, and Douyin. The tool will OCR the screenshots and detect who sent each message.
- OCR correction. If you uploaded screenshots, the raw OCR text is sent to DeepSeek for AI-assisted error correction — fixing misrecognized Chinese characters while preserving meaning and speaker labels.
- Intake. The AI reads all messages and summarizes the key patterns, topics, and emotional dynamics.
- Memory extraction. It identifies core memories, shared experiences, and significant moments.
- Persona distillation. It builds a detailed personality profile — speech patterns, emotional tendencies, recurring phrases, humor style, communication habits.
- Chat. You can now talk to the distilled persona. It responds in their style, with their characteristic expressions and emotional tone.
Each step has an animated progress indicator so you're not staring at a blank screen wondering if anything is happening.
Screenshot OCR: How it separates your messages from theirs
The hardest technical problem was figuring out who said what in a screenshot. If you just OCR the entire image, you get a jumble of both people's messages mixed together — and the AI persona ends up sounding like a confused hybrid of you and your ex.
The tool solves this with a two-layer detection system:
Layer 1: Avatar-based detection (primary)
Most chat apps show the sender's avatar next to their message — on the left for the other person, on the right for you. The tool scans the left and right edges of the screenshot for clusters of non-background pixels (avatar regions). When it finds a left-side avatar cluster, it marks that row range as "ex's message." Right-side clusters become "your message." This is surprisingly accurate for WeChat, QQ, and Douyin screenshots.
Layer 2: Bubble-color fallback
If avatar detection finds nothing (some screenshots have avatars hidden or cropped), the tool falls back to analyzing chat bubble colors. Different apps use different color schemes:
- WeChat: green bubbles = you, white bubbles = ex
- Douyin: blue bubbles = you, white bubbles = ex
- WhatsApp: light green = you, white/teal = ex
- QQ: green bubbles = you, white bubbles = ex
You can select the screenshot type manually, or use Auto Detect which tries all four and picks the one with the most bubble matches.
OCR pre-processing
Each detected message zone is cropped, 2x upscaled, converted to grayscale, and contrast-stretched before being sent to Tesseract.js for OCR. This dramatically reduces Chinese character misrecognition — the difference between "想" and "相" can be the difference between "I miss you" and gibberish.
How to use it: Step-by-step guide
1. Get a DeepSeek API key
The AI persona runs on DeepSeek's language model. You'll need your own API key from platform.deepseek.com. This costs almost nothing — typically under $0.01 per conversation. Using your own key means your chat data goes directly from your browser to DeepSeek, never through ToolKnit's servers.
2. Prepare your chat records
The best results come from structured exports:
- WeChat: Export chat history as HTML (on desktop: right-click conversation → Export Chat Records)
- Telegram: Use Telegram Desktop's Export feature (Settings → Advanced → Export Telegram Data → Chat logs only → JSON format)
- CSV/TXT: Any format where each line has a sender and message (the tool will try to parse it)
If you only have screenshots, that works too — the OCR engine will extract text and detect senders automatically.
3. Enter their name and avatar
Give the persona a name and optionally upload their avatar. This personalizes the chat experience — their avatar appears next to their messages, yours appears next to yours.
4. Select screenshot type (if uploading images)
Choose the app your screenshots are from, or leave it on Auto Detect. Auto mode tries all supported apps and picks the best match.
5. Upload and distill
Upload your files and click Distill Memories. You'll see a consent overlay first (5-second countdown) — this is intentional. Creating an AI replica of a real person is a serious act. The countdown gives you a moment to reconsider.
6. Chat
After distillation completes, you'll enter the chat interface. Type anything. The AI will respond in their distilled style. If a response feels off-character, click the Correction button to tell the AI what was wrong — it will adjust the persona.
7. When you're ready: /let-go
Type /let-go in the chat to permanently delete all persona data, chat records, and messages. There is no undo. This is by design — the tool is meant to be temporary, a bridge between holding on and moving on. When you're ready to cross that bridge, the command is there.
The uncomfortable truth
Let me be straight with you: I know this tool is a little sick. Talking to an AI version of your ex is not what a well-adjusted person does. A well-adjusted person goes to therapy, processes their grief, and moves forward. They don't build digital shrines to lost relationships at 3 AM.
But here's the thing — grief doesn't follow a schedule. Some nights you just need to hear "it's okay" in their voice, even if it's a machine pretending. Some mornings you need to say the things you never said, to an audience that will at least respond. Is it healthy? Probably not. Is it better than lying awake replaying the same three conversations for the hundredth time? I honestly don't know.
What I do know is that the /let-go command exists for a reason. This tool is not meant to be a permanent crutch. It's a bridge. You walk across it, and then you burn it. The burning is part of the healing.
If you find yourself using this tool every day for weeks, please talk to a real person — a friend, a family member, a therapist. An AI can simulate empathy, but it can't actually care about you. The people in your life can.
Privacy: Why your data never leaves your browser
This was non-negotiable for me. Chat records between former partners are among the most private data imaginable. Here's how privacy works:
- All processing happens in your browser. OCR runs via Tesseract.js (WASM, local). Persona distillation uses your own DeepSeek API key — your chat data goes directly from your browser to DeepSeek's API, never through ToolKnit's servers.
- No accounts, no tracking. There's no signup, no user ID, no database. Persona data is stored in your browser's IndexedDB and nowhere else.
- /let-go deletes everything. When you type
/let-go, all IndexedDB data is permanently erased. No backups, no recovery, no "are you sure?" — just gone. - Export is local. The Export button downloads your persona data as a TXT file to your device. Nothing is uploaded.
Supported formats
| Format | How to get it | Sender detection |
|---|---|---|
| WeChat HTML | Desktop export | Built-in (sender field) |
| Telegram JSON | Desktop export | Built-in (from_id) |
| CSV / TXT | Manual export | Pattern matching |
| Screenshots (WeChat/QQ/Douyin/WhatsApp) | Phone screenshots | Avatar + bubble color OCR |
Frequently asked questions
Is this tool healthy to use?
Honestly? It depends. If you use it to process grief, say the things you never said, and then let go — it can be a stepping stone. If you use it every day for months to avoid moving on, it becomes a trap. The /let-go command exists for a reason. Use it when you're ready.
Is my chat data private?
Yes. Everything runs in your browser using your own DeepSeek API key. No chat records, persona data, or messages are ever uploaded to ToolKnit's servers. When you type /let-go, all data is permanently deleted from your browser's IndexedDB.
What chat formats are supported?
WeChat export HTML, Telegram JSON export, CSV, plain TXT, and screenshots from WeChat, QQ, WhatsApp, and Douyin (OCR with avatar-based sender detection).
How accurate is the AI persona?
It's an approximation, not a replica. The AI captures speech patterns, recurring topics, and emotional tone from your chat records. It will never be your ex — it's a distilled impression. The correction feature helps you refine it when responses feel off-character.
What is the /let-go command?
Typing /let-go in the chat permanently deletes all persona data, chat records, and messages from your browser. There's no undo. It's designed for when you're ready to move on — a digital letting go.
Why does it need a DeepSeek API key?
The AI persona runs on DeepSeek's language model. By using your own API key, your chat data goes directly from your browser to DeepSeek — never through ToolKnit's servers. This keeps your data private and costs minimal (typically under $0.01 per conversation).
Can I use it for someone who isn't an ex?
Of course. The tool works for anyone you have chat records with — a friend who passed away, a parent you've lost touch with, anyone. The "ex-partner" framing is just the most common use case.
When you're ready
AI Ex-Partner Chat —100% browser-based, zero data upload, /let-go when you're done.