Chat Export Report logo

Chat Export Report

Community
Innei
chat-export-report

Use when user provides exported chat history (WeChat / Telegram / iMessage / QQ exports as .md / .txt / .json) and asks "我和 X 聊了啥"、"看完整个 md"、"细说 XX"、"是不是有 Y"、"what did I and X talk about", wants topical breakdown, requests detail on specific themes (relationships / work / health / events), or seeks honest interpretation of conversation dynamics. Triggers on large chat dumps (>1000 lines) where direct full read is impractical.

Overview

PublisherInnei
RepositorySKILL
Skill namechat-export-report
Stars
81
Forks
2
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by Innei on GitHub. Read the source before you install it.

Installation

Install the Chat Export Report AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Innei/SKILL.git /tmp/SKILL
mkdir -p .claude/skills
cp -r /tmp/SKILL/skills/research/chat-export-report .claude/skills/chat-export-report
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Chat Export Report in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Chat Export Report on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Chat Export Report is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

chat-export-report

Analyze massive exported chat logs (thousands to hundreds of thousands of lines) and produce a layered, drill-downable report grounded in original quotes.

When to invoke

  • User provides path to exported chat (WeChat / Telegram / iMessage / QQ; .md / .txt / .json)
  • File far exceeds a single Read window (>2000 lines)
  • User asks "what did we talk about", "read the whole file", "tell me more about X", "was there Y between us"
  • User wants an honest read of relationship dynamics, emotional tone, or missed opportunities

Do not use for:

  • Single messages or short conversations
  • Looking up one specific fact (just grep)
  • Full line-by-line translation or re-export

Reading strategy

Step 1 — Measure size

bash
wc -l <file>

Step 2 — Three-zone sampling

Never read the whole file at once. Establish baseline tone first:

Zoneoffsetlimit
Opening1200
Middletotal/3 and total*2/3120–150 each
Tailtotal-200200

Four to five samples fix the time span, message density, opening / closing state, and any pause points.

Step 3 — Topical grep

Sweep for line numbers by topic family, then Read surrounding context as needed:

TopicKeyword family
Work实习|入职|面试|mentor|论文|三方|加班|KPI|大厂|interview|onboard
Food外卖|做饭|盒饭|吃饭|饿|食堂|takeout|cook
Housing租|合租|中介|宿舍|房租|老家|rent|roommate
Romance对象|男朋友|女朋友|喜欢|分手|相亲|介绍|追|date|crush
Health抑郁|emo|失眠|噩梦|结节|医院|体检|depress|insomnia
Current events封|核酸|疫情|户口|历史|lockdown|covid
Hobbies游戏|番|二次元|新海诚|动漫|追剧|game|anime
Sexuality性取向|gay|les|喜欢男|喜欢女

Per family, take 30–50 line numbers; then Read 60–150 lines of surrounding context to verify.

Output layering

Reply in four layers, deepest only on follow-up — never dump all four at once, leave room for the user to drill down:

L1 — Overview (500–800 words) Time span, total message count, theme list (4–7 buckets), overall tone.

L2 — Theme breakdown (one section per bucket, three to five bullets, sparse direct quotes) Use the topic families from Step 3 as section headings; 100–200 words each.

L3 — Single-theme deep dive (800–1500 words) Triggered when user says "tell me more about X" / "细说 XX". Include sub-sections, original quotes, dates.

L4 — Subjective judgment (relationship / opportunity / missed chance) Triggered by "was there a chance", "did I miss it", "我是不是错过". Three-part structure is mandatory:

  1. Evidence for "yes" (positive signals, usually fewer)
  2. Evidence for "no" (negative signals, usually more)
  3. Lean + reasoning (no emotion, just the objective read)

Quoting discipline

  • Every quoted line carries a date YYYY-MM-DD
  • Strictly identify the speaker: lines prefixed with **Innei**: are the user; unprefixed lines are the other party
  • Never fabricate quotes. Unsupported claims may be flagged as "impression" or "lean" — never disguised as evidence
  • Keep quotes short (1–2 lines); paraphrase longer passages with line-range citation

Honest interpretation

When the user asks a subjective question, do not pander to their hoped-for answer. Read by objective signals:

SignalMeaning
Other party repeatedly offers to "matchmake" / "introduce someone"They've placed themselves outside the candidate set
Explicit "I don't need a partner"Single-life declaration
Invitation (meet / dinner) declined without leaving an openingHard boundary
Cold-shouldering emotion ("emo will make you ugly", "stop calling yourself depressed")Refusal to be drawn in deeply
Geographic / career divergence ("I'll head home in two years")Long-term incompatibility
Sexuality teasing from a "elder-sibling" register ("don't lock yourself into one gender")Joke, not test
User self-talks themselves out ("I never make the first move", "I'm doomed to be alone")Self-foreclosure

Reading by these signals yields a relatively objective lean, free of the user's memory-tinted lens.

Common mistakes

WrongRight
Read the entire file in one goSample + grep
Judge from opening aloneTail matters too — it has the latest state
Claims without quotesAlways cite date + original line
Mirror the user's hopesTwo-sided reading, objective lean
Confuse speakersCheck prefix every time before quoting
Ignore timeNote start–end dates per section
Trust user-supplied path blindlyfind / ls to verify first
cat a giant fileUse Read or head/sed slicing
Dump L1+L2+L3+L4 in one replyStop at L1/L2; wait for follow-up
Misattribute or invent quotesStrict honesty — omit rather than fake

Red flags

  • Writing "they probably talked about X" without a quote → STOP, go grep
  • Quote without a date → STOP, add it
  • Subjective judgment with only one side → STOP, add the counter-side
  • Answering "yes" or "no" to a "was there Y" question without listed evidence → STOP, list signals

Frequently asked questions

What does the Chat Export Report AI skill do?

Use when user provides exported chat history (WeChat / Telegram / iMessage / QQ exports as .md / .txt / .json) and asks "我和 X 聊了啥"、"看完整个 md"、"细说 XX"、"是不是有 Y"、"what did I and X talk about", wants topical breakdown, requests detail on specific themes (relationships / work / health / events), or seeks honest interpretation of conversation dynamics. Triggers on large chat dumps (>1000 lines) where direct full read is impractical.

Why use Chat Export Report on TypingMind?

Because you install it once and use it with any model. Chat Export Report is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Chat Export Report in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Innei/SKILL/tree/main/skills/research/chat-export-report. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Chat Export Report?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Chat Export Report?

As many as you like. As long as a model supports skills, you can use Chat Export Report with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Chat Export Report AI skill free?

It is published on GitHub by Innei. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇