Експорт як структурований JSON
Поряд із сімома форматами документів, сітка файлів — і вбудоване меню Експортувати файл кожного повідомлення — пропонує експорт у форматі JSON. На відміну від інших, JSON не є готовим документом для читання: це розмова як машинозчитувані дані, призначені для розробників, які хочуть передати чат у скрипт, базу даних або інший інструмент без самостійного парсингу сторінки.
Файл є єдиним красиво відформатованим об'єктом JSON — блоком метаданих про розмову, за яким слідує плоский список її повідомлень.
- Метадані розмови —
schema(версійний ідентифікатор, наразіai-chat-extractor/conversation@2, щоб споживач міг розпізнати формат та його версію),site,title,url,exported_at(мітка часу ISO),content_format(завждиmarkdown) таmessage_count. messages— упорядкований масив, один запис на повідомлення, кожен з яких містить свійindex, своюrole(хто говорив —userабоassistant) та два представлення тексту:content, повне повідомлення у форматі Markdown, таcontents, те саме повідомлення, розділене на типізовані частини.
Два представлення обслуговують два типи споживачів. content — це все повідомлення як один рядок Markdown — все, що потрібно простому скрипту. contents розбиває його на упорядкований список типізованих сегментів, щоб конвеєр міг вибирати або відкидати частини за типом без повторного парсингу Markdown: text для прози, thinking для блоку міркувань моделі, code для блоку коду в огорожі (з необов'язковою language), image для зображення (з його url та alt текстом — незалежно від того, чи було воно написано як Markdown, чи як HTML-тег), та table для таблиці Markdown, розділеної на headers та rows, щоб споживач отримував реальні стовпці замість блоку символів-розділювачів. AI Chat Clipper видає лише той тип сегмента, який він може чесно ідентифікувати з розмови — він не буде вигадувати структуру, якої немає. Цитати, наприклад, надходять як звичайні вбудовані посилання без власного блоку, тому окремого типу sources навмисно немає.
Коротка відповідь помічника, що містить блок коду, експортується так:
{
"schema": "ai-chat-extractor/conversation@2",
"site": "claude",
"title": "Reversing a string",
"url": "https://claude.ai/chat/…",
"exported_at": "2026-07-18T10:32:00.000Z",
"content_format": "markdown",
"message_count": 2,
"messages": [
{ "index": 0, "role": "user", "content": "How do I reverse a string in Python?",
"contents": [ { "type": "text", "text": "How do I reverse a string in Python?" } ] },
{ "index": 1, "role": "assistant", "content": "Use a slice:\n\n```python\ns[::-1]\n```",
"contents": [
{ "type": "text", "text": "Use a slice:" },
{ "type": "code", "language": "python", "text": "s[::-1]" }
] }
]
}