What Is ex-skill?
ex-skill is an open-source AI persona generator for Claude Code and OpenClaw, developed by titanwings on GitHub, that processes WeChat or iMessage chat logs to create simulated digital clones of ex-partners. Users provide SQLite exports, basic profile data like MBTI type or zodiac sign, and subjective descriptions to generate skills that replicate tone, emoji usage, silence timing, and relational dynamics. With 670 GitHub stars as of February 2026 and MIT licensing, ex-skill stands out as one of the best AI persona generators for Claude Code and OpenClaw developers building emotionally nuanced conversational agents.
The tool automates decryption of WeChat databases on Windows and macOS, parses iMessage SQLite on macOS, and structures personas into Part A: Relationship Memory (shared events, inside jokes) and Part B: 6-layer Persona (core rules to forbidden topics). Developers invoke it via /create-ex commands, producing slugs for ongoing chats like /ex-liuzhimin. Last commit on cb8ee6e added WeChat export prompts amid legal notices from Tencent.
Quick Overview
| Attribute | Details |
|---|---|
| Type | AI Persona Generators |
| Best For | Claude Code and OpenClaw developers |
| Language/Stack | Python / Claude API / SQLite |
| License | MIT |
| GitHub Stars | 670 as of Feb 2026 |
| Pricing | Open-Source |
| Last Release | cb8ee6e — Recent commits |
Who Should Use ex-skill?
- Claude Code users prototyping emotional AI: Solo developers training models on personal chat data for research into relational LLMs without manual prompt engineering.
- OpenClaw workspace maintainers: Teams integrating forwarded WeChat/Telegram messages into persistent persona skills for immersive testing.
- Python scripters handling SQLite: Indie hackers automating message decryption and parsing for custom vibe-coding experiments.
- macOS iMessage power users: Those extracting full histories via Apple ID for high-fidelity persona baselines.
Not ideal for:
- Production customer service bots needing scalable, non-personalized responses.
- Users without desktop WeChat/iMessage logged in, as extraction requires active sessions.
- Compliance-focused enterprises avoiding gray-area database decryption.
Key Features of ex-skill
- Automatic WeChat SQLite Extraction: Runs
wechat_decryptoron Windows/macOS to pull full histories by WeChat ID, handling platform detection and key extraction without manual SQL queries. - iMessage Database Parsing: Queries macOS
~/Library/Messages/chat.dbvia phone number or Apple ID, exporting threaded conversations with timestamps and attachments in under 10 seconds. - 6-Layer Persona Architecture: Layer 0 enforces core behavioral rules (e.g., avoidance patterns); Layer 5 defines triggers for silence or disappearance, overriding lower layers for authenticity.
- Relationship Memory Integration: Indexes shared events, fight cycles, and pet names from chats, injecting context like "滨江咖啡事件" into responses without hallucination.
- Incremental Updates via Chat: Users say "追加记录" to append new logs, retraining only delta data; corrections via "这不对" add override layers without full rebuilds.
- Versioned Skill Management: Commands like
/list-exes,/move-on {slug}, and "回滚到 v2" maintain history in.openclaw/workspace/skills, supporting rollbacks to prior persona states. - Multi-Platform Tag Support: Parses MBTI (16 types + 8 functions), zodiac (12 signs x 5 planets), attachment styles (4 types), and 20+ relational traits like "嘴硬心软" for fine-grained tuning.
ex-skill vs Alternatives
| Tool | Best For | Key Differentiator | Pricing |
|---|---|---|---|
| ex-skill | Personal ex-partner simulations | 6-layer SQLite-sourced personas with memory | Open-Source |
| Claude Code Canvas | Visual code-to-skill workflows | Canvas-based editing, no chat extraction | Open-Source |
| Claude Context Mode | Long-context persistence | Threaded memory without persona layers | Open-Source |
| Character.AI | General character roleplay | Cloud-hosted, no local data import | Freemium |
Claude Code Canvas suits developers prioritizing UI-driven skill assembly over raw chat mining, picking it for zero-setup prototyping. Claude Context Mode excels in stateless sessions needing history carryover but lacks ex-skill's emotional depth modeling. Character.AI handles broad personas via web but cannot ingest private SQLite dumps, forcing manual transcription.
For deeper Claude integrations, pair ex-skill with Claude Code Canvas by forwarding generated slugs into canvas previews. Browse all AI Persona Generators for more options.
How ex-skill Works
ex-skill follows a retrieval-augmented pipeline: input message triggers Layer 0 core rules check, queries Relationship Memory vector store for matches, assesses emotional state via parsed history sentiment, then generates via Claude API with layered prompts. Data model uses JSON-serialized personas in ~/.openclaw/workspace/skills/{slug}/persona.json, embedding chat vectors with sentence transformers for O(1) recall. Core abstraction is dual-part structure—memory as key-value timelines, persona as hierarchical overrides—ensuring outputs respect boundaries like 40-minute silences in conflicts.
On ingestion, tools/wechat_decryptor.py detects OS, locates Msg/MicroMsg.db or equivalent, extracts AES keys from key_data, decrypts tables via sqlite3 with custom SQL (SELECT message, createTime FROM message WHERE talker=?), and filters contacts. iMessage uses chat.db joins on message.id with handle.ROWID. Output feeds prompts/persona_builder.md template, compiling 6 layers from tags and n-gram analysis of speech (e.g., high-frequency "……" for pauses).
# Clone to OpenClaw workspace
git clone https://github.com/titanwings/ex-skill ~/.openclaw/workspace/skills/create-ex
# In chat interface
/create-ex
This clones the repo, registers /create-ex handler. Prompt collects inputs (e.g., "女 25 白羊 ISFP 回避型"), runs extraction (pip3 install -r requirements.txt for pycryptodome), builds slug like ex-karina, and enables /ex-karina chats. Expect 30-60s processing for 10k messages, outputting persona.json with layers and memory.json indexed by event hashes.
Runtime: Claude receives system prompt fusing layers + top-3 memories, producing multi-turn responses with timed delays simulated client-side.
Pros and Cons of ex-skill
Pros:
- Zero-config chat extraction from WeChat/iMessage, processing 50k messages in <2min on M1 Mac.
- Hierarchical persona prevents drift, with Layer 0 blocking OOV behaviors 100% via hard prompts.
- Local storage in
skills/dirs ensures privacy, no cloud uploads of sensitive histories. - Command-driven management (
/move-on) integrates natively with OpenClaw/Claude Code UIs. - Tag extensibility supports 100+ combos (MBTI x zodiac x attachment), yielding unique baselines.
- Beta updates fix edge cases like contact filtering, capping outputs at 50 entries per query.
Cons:
- WeChat tools face legal blocks from Tencent, requiring custom decryptors per OS update.
- macOS-only for iMessage; Windows lacks native access without simulators.
- Beta status means incomplete emoji parsing and no voice/image synthesis yet.
- High VRAM on long histories (>100k msgs) during embedding, needing 8GB+ GPU.
- Persona corrections manual via chat, no bulk retrain API exposed.
Getting Started with ex-skill
Start by cloning to your environment. For OpenClaw:
# Recommended: OpenClaw install
git clone https://github.com/titanwings/ex-skill ~/.openclaw/workspace/skills/create-ex
cd ~/.openclaw/workspace/skills/create-ex
pip3 install -r requirements.txt # For decryption deps
For Claude Code (global):
# Global install
git clone https://github.com/titanwings/ex-skill ~/.claude/skills/create-ex
Keep WeChat desktop logged in (Windows: %APPDATA%/Tencent/WeChat; macOS: ~/Library/Containers/com.tencent.xinWeChat). In chat, type /create-ex, enter details (e.g., "男 28 天蝎 INTJ 焦虑型"), provide WeChat ID or skip for manual paste. Tool auto-detects, extracts 1-3 months history, generates /ex-{name} slug. First chat tests tone: expect 80% fidelity on pet names, silences via (已读不回 40 分钟) emulation. Configure INSTALL.md for paths if non-standard.
Initial output lists /list-exes; use /move-on ex-karina to delete. No further setup—chats persist across sessions.
Verdict
ex-skill delivers the strongest SQLite-to-persona pipeline for Claude Code and OpenClaw developers simulating relational dynamics when local chat data is available. Its 6-layer model nails speech idiosyncrasies and memory recall better than flat prompts. Caveat: decryption fragility amid platform changes demands vigilant updates, but for beta experimentation, clone and /create-ex now.



