# therealXiaomanChu/ex-skill: Distilling an Ex Into a Claude Code Skill

> ex-skill turns exported chat logs, screenshots and your own description of a former partner into a Claude Code skill that answers in their voice. The mechanism is prompt files plus Python parsers; the hard part is the data you have to feed it.

**therealXiaomanChu/ex-skill** — 把前任蒸馏成 AI Skill，用ta的方式跟你说话。

- Repository: https://github.com/therealXiaomanChu/ex-skill
- Stars: 6,391 · Forks: 557
- Language: Python
- License: MIT
- Published: 2026-09-22 · Updated: 2026-09-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/therealxiaomanchu-ex-skill

## The problem ex-skill solves, and for whom

Most attempts to talk to an AI version of a specific person fail for the same reason: the model has nothing but a paragraph of adjectives. ex-skill takes the opposite route. It asks for raw material, meaning exported WeChat or QQ conversations, social media screenshots, photos with EXIF data, and then runs analyzers over that material to produce two files. Part A, Relationship Memory, holds shared places, inside jokes, argument patterns and a relationship timeline. Part B, Persona, is a five-layer structure: hard rules, identity, speaking style, emotional patterns, relationship behaviour.

The intended user is someone with a Claude Code installation and a real archive. The README is explicit that the quality of the chat log determines the fidelity of the result, and ranks sources: a WeChat export plus your own narration beats narration alone. It also ranks conversation types, putting late-night talks first, arguments second, and ordinary daily messages third, on the argument that those reveal personality most clearly.

That ranking is the honest part of the project. If all you have is a vague memory of how someone talked, the generated skill will sound like a generic chatbot wearing a name tag. The README concedes that every field can be skipped and a skill can be generated from description alone, but it does not pretend the output will be close.

## How the skill turns transcripts into a persona

The repository follows the AgentSkills standard, and the layout makes the data flow visible. SKILL.md is the entry point. The prompts directory holds the stages: intake.md collects information conversationally, memory_analyzer.md extracts relationship memory, persona_analyzer.md extracts personality and behaviour and carries a tag translation table, then memory_builder.md and persona_builder.md write the two output files. merger.md handles incremental merges, and correction_handler.md handles corrections.

At runtime the loop described in the README is short: an incoming message goes to the Persona, which decides how that person would respond; Memory supplies the shared history; the output is phrased in their style. The tags available to the persona analyzer are concrete rather than free-form. Attachment style is one of secure, anxious, avoidant or disorganized. Love languages follow the five standard categories. Personality tags are a long list of colloquial Chinese labels such as talkative, cold on the surface but soft underneath, silent treatment, clingy, reads but does not reply, replies in seconds, and voice messages at midnight. All twelve zodiac signs and all sixteen MBTI types are supported, and the README says they influence how the personality tags are translated rather than acting as the persona on their own.

The tools directory holds the parsing half: wechat_parser.py, qq_parser.py, social_parser.py, photo_analyzer.py, skill_writer.py and version_manager.py. The only hard dependency listed in requirements.txt is Pillow, for reading photo EXIF data. Everything else, including chardet for encoding detection and python-dateutil for date parsing, is commented out as optional. That is a deliberate choice: the parsers are meant to work without a heavy environment.

## Installing ex-skill and generating your first persona

The README warns that Claude Code looks for skills in .claude/skills/ relative to the git repository root, so the clone has to happen in the right place. For a single project, create the directory and clone into it:

```bash
mkdir -p .claude/skills
git clone https://github.com/therealXiaomanChu/ex-skill .claude/skills/create-ex
```

For a global install available in every project, the README gives the same clone pointed at the home directory instead:

```bash
git clone https://github.com/therealXiaomanChu/ex-skill ~/.claude/skills/create-ex
```

Dependencies are optional. If you want EXIF extraction from photos, install the requirements file:

```bash
pip3 install -r requirements.txt
```

Then, inside Claude Code, run the skill and answer the prompts for a codename, basic information, personality profile, and data sources:

```
/create-ex
```

The README states that a full generation consumes roughly 5k to 15k tokens depending on the volume of chat history, covered either by a Claude Pro or Max subscription or by an Anthropic API key configured in Claude Code. No GPU, local model or Docker is required. Once the skill exists, you call it by its slug:

```
/{slug}
```

Management commands are listed in the README: /list-exes, /{slug}-memory for a recall mode, /{slug}-persona for personality only, /ex-rollback {slug} {version}, /delete-ex {slug}, and /let-go {slug}.

## Where ex-skill breaks down

The biggest limitation is upstream of the code. Getting a usable WeChat export is not something this project does for you. The README points at WeChatMsg, 留痕 and PyWxDump as export tools, which means the hardest step, extracting your own chat history, sits outside the repository and outside its support. If your export comes out in an encoding the parser mishandles, chardet is optional and commented out in requirements.txt, so you may have to install it yourself or preprocess the file.

The second limitation is that this is not an application. There is no server, no web interface, no mobile client. It is a skill that runs inside Claude Code, or alternatively inside OpenClaw, which the README names as an alternative frontend. Anyone expecting to install an app and chat with it will be disappointed by the command-line and prompt-driven flow.

The third is the emotional framing the project itself raises. The README states plainly that the project is for personal recollection and emotional healing, not for harassment, stalking or invading another person's privacy, and adds that if you find yourself too absorbed you should seek professional help. It also notes that your ex is a real person with their own life, and that the skill is only the version of them held in your memory. Those are not decorative lines. A tool that reproduces someone's speech patterns from private conversations has obvious potential for misuse, and the licence does not restrict it.

Finally, there is no retrieved release history for this repository, and the last push was on 2026-04-08. The README documents a rollback command and a version manager, but it does not document what happens to generated skills across a breaking change to the prompt templates.

## How ex-skill differs from other persona and reflection skills

The README lists three community projects, and the closest comparison is ex-cure-skill by W1ndys, which it describes as a relationship reflection mode that reviews lessons from chat logs. The difference in approach is the output. ex-cure-skill reads the same kind of transcript and produces analysis about the relationship; ex-skill produces a simulation of the other person and then talks back to you in their voice. One is a mirror on the past, the other is a reenactment of it. If your goal is to understand what went wrong, the reflection tool is the better fit, and ex-skill's recall mode, /{slug}-memory, is a narrower version of the same idea.

The second comparison is colleague-skill by titanwings, which the README credits as the inspiration for this project. Its subject is a coworker rather than a partner, which changes the data. Workplace chat is more transactional and less emotionally loaded, so the persona layers about attachment style and love languages have no counterpart there. ex-skill carries a heavier tag vocabulary precisely because romantic relationships produce the kind of late-night, argumentative, high-signal messages that the README ranks first.

A third project, simp-skill by BeamusWayne, is described as an encouragement to pursue someone rather than reminisce about them. It shares the technique, not the purpose.

## Maintenance, licence and the cost of upgrades

The repository is not archived, and the last push was on 2026-04-08. That is the only maintenance signal available here; there are no retrieved releases. The practical upgrade cost depends on whether you have generated skills you care about. The generated skills live in exes/, which the .gitignore excludes, so a git pull will not touch them, but the prompt templates that shaped them can change. The README documents /ex-rollback {slug} {version} and version_manager.py, which implies each update archives a version, but it does not say whether an old persona regenerates correctly under new prompts.

The project is MIT licensed, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are retained. That is a permissive licence and there is nothing unusual in it. What the licence does not do is address the privacy question the README raises: the transcripts and photos you feed in are your responsibility, and the generated persona files sit on your disk. If you are processing someone else's messages, the licence grants you nothing on that front. This is not legal advice, and the repository does not offer any either.

## Conclusion

Adopt ex-skill if you already have a WeChat or QQ export and use Claude Code, because the parsers and the five-layer persona template only pay off with real transcripts. Do not adopt it if your only input is a paragraph of memory, if you expect a turnkey app rather than a skill inside an agent, or if you want to contact the person through it. Before you start, check that the clone lands in .claude/skills/create-ex at the git repository root, that WeChatMsg or another export tool can produce a file the wechat_parser can read, and that the 5k-15k token cost per generation fits your Claude plan.

## FAQ

### What is ex-skill?

It is a Claude Code skill that builds an AI persona of a former partner from exported chat logs, social media screenshots, photos and your own description. It generates two files, a Relationship Memory and a five-layer Persona, and then answers you in that person's style.

### How do I install ex-skill?

Clone the repository into .claude/skills/create-ex at the git repository root for a project-level install, or into ~/.claude/skills/create-ex for a global one. Dependencies are optional and installing requirements.txt only adds Pillow for photo EXIF reading.

### Does ex-skill need a GPU or a local model?

No. The README states that no GPU, local model or Docker is required. Generation runs through Claude Code and consumes roughly 5k to 15k tokens per persona, covered by a Claude Pro or Max subscription or an Anthropic API key.

### What chat log formats does ex-skill accept?

WeChat exports from WeChatMsg, 留痕 or PyWxDump, QQ exports in txt or mht, social media screenshots, JPEG or PNG photos with EXIF data, and plain pasted text. The README ranks WeChat as the richest source.

### Can I correct the persona if it says something the person would not say?

Yes. The README describes a correction mechanism: telling the skill that the person would not say that writes into a Correction layer and takes effect immediately. Updates are archived and can be reverted with /ex-rollback {slug} {version}.

## Sources

- [Issues](https://github.com/therealXiaomanChu/ex-skill/issues)
- [License: MIT](https://github.com/therealXiaomanChu/ex-skill/blob/main/LICENSE)
- [README](https://github.com/therealXiaomanChu/ex-skill/blob/main/README.md)
- [therealXiaomanChu/ex-skill on GitHub](https://github.com/therealXiaomanChu/ex-skill)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/therealxiaomanchu-ex-skill
