Background
AI assistant "export your data" features (Claude, ChatGPT, etc.) currently produce large, mostly-JSON dumps that are hostile to read or archive. .mdz is a natural fit: small text-heavy content (chats as markdown, referenced documents), no incumbent portable format for this use case, and the container already supports a narrative/context layer (manifest + entry-point markdown) that can index a conversation or project export.
Proposal
Add an importer (e.g. mdzip import <export>.json --source=claude|chatgpt) that:
- Parses a chat/project export into per-conversation (or per-project) markdown, preserving ordering and any attached files/images as archive assets.
- Produces an entry-point markdown that narrates the export (titles, dates, structure) rather than dumping raw JSON.
- Emits one or more
.mdz archives depending on export shape (single conversation vs. multi-conversation project).
Notes
Pair with the TextBundle importer (related issue) under a shared "importers" architecture (pluggable per source format). Also a good demo of the ".mdz = self-documented zip" positioning — a real, useful showcase rather than a synthetic one.
Background
AI assistant "export your data" features (Claude, ChatGPT, etc.) currently produce large, mostly-JSON dumps that are hostile to read or archive.
.mdzis a natural fit: small text-heavy content (chats as markdown, referenced documents), no incumbent portable format for this use case, and the container already supports a narrative/context layer (manifest + entry-point markdown) that can index a conversation or project export.Proposal
Add an importer (e.g.
mdzip import <export>.json --source=claude|chatgpt) that:.mdzarchives depending on export shape (single conversation vs. multi-conversation project).Notes
Pair with the TextBundle importer (related issue) under a shared "importers" architecture (pluggable per source format). Also a good demo of the ".mdz = self-documented zip" positioning — a real, useful showcase rather than a synthetic one.