Как экспортировать переписку с ChatGPT в Markdown
Как сохранить чат ChatGPT в Markdown: вручную и из официального экспорта через скрипт — с кодом, таблицами и front matter для Obsidian.
Markdown — самый удобный формат для чатов с ИИ: файл читается в любом редакторе, блоки кода сохраняют язык, таблицы остаются таблицами, а Obsidian, Notion и GitHub понимают его без конвертации. Встроенной кнопки «Сохранить в Markdown» в ChatGPT по-прежнему нет. Разберём два рабочих способа экспорта чата ChatGPT — ручной и через скрипт — и расскажем, какой экспорт скоро появится в Chatsavo.
Что умеет сам ChatGPT
По данным на октябрь 2026, у ChatGPT два встроенных пути вынести переписку наружу:
| Способ | Что получаете | Подходит для |
|---|---|---|
| Кнопка «Копировать» под ответом | Текст одного ответа в Markdown | Один-два ответа |
| Настройки → Управление данными → Экспорт данных | ZIP с conversations.json и chat.html со всей историей |
Резервная копия, массовая обработка |
Официальный экспорт приходит письмом. Подготовка может занять до 7 дней, а ссылка действует 24 часа (справка OpenAI). Экспорт доступен на тарифах Free, Go, Plus и Pro, но не в рабочих пространствах Business и Enterprise. Markdown-файлов в архиве нет: только JSON и HTML (ChatGPT Exporter, по данным на октябрь 2026).
Способ 1. Вручную: для одного короткого чата
- Наведите на сообщение ChatGPT и нажмите «Копировать». Ответ копируется с Markdown-разметкой: заголовками, списками и блоками кода.
- Вставьте его в редактор (VS Code, Obsidian, Typora).
- Свои вопросы скопируйте отдельно и оформите, например, как
### Вы.
Это работает, пока сообщений пять-шесть. На длинном чате вы потратите больше времени на склейку, чем на чтение.
Способ 2. Из официального экспорта через скрипт
Если нужно перевести в Markdown всю историю, возьмите conversations.json из архива и конвертируйте его скриптом. Структура файла внутренняя и может меняться, но на октябрь 2026 у каждого чата есть title, create_time и дерево сообщений mapping.
Минимальный скрипт на Python: по файлу на чат, роли подписаны, ветки упрощены до последовательности.
import json, re, pathlib, datetime
data = json.load(open("conversations.json", encoding="utf-8"))
out = pathlib.Path("chatgpt-md"); out.mkdir(exist_ok=True)
for conv in data:
title = conv.get("title") or "Без названия"
nodes = conv.get("mapping", {}).values()
msgs = [n["message"] for n in nodes if n.get("message")]
msgs.sort(key=lambda m: m.get("create_time") or 0)
lines = [f"# {title}", ""]
for m in msgs:
role = m["author"]["role"]
parts = [p for p in m.get("content", {}).get("parts", []) if isinstance(p, str)]
text = "\n".join(parts).strip()
if role not in ("user", "assistant") or not text:
continue
lines += ["### Вы" if role == "user" else "### ChatGPT", "", text, ""]
date = datetime.date.fromtimestamp(conv.get("create_time") or 0)
name = re.sub(r'[\\/:*?"<>|]+', " ", title)[:80].strip()
(out / f"{date} {name}.md").write_text("\n".join(lines), encoding="utf-8")
Ограничения этого способа:
- снимок на дату выгрузки: новые чаты придётся выгружать заново;
- ветки: если вы редактировали вопросы, в
mappingхранятся все версии, и простая сортировка по времени их перемешает. Чтобы взять только активную ветку, нужно идти отcurrent_nodeк корню поparent; - изображения и файлы придут отдельно или ссылками, их надо раскладывать вручную.
Для разовой архивации всей истории это лучший бесплатный путь.
Скоро: экспорт в Chatsavo
Экспорт в Markdown и другие форматы в Chatsavo — скоро, в ближайших обновлениях. Сейчас его нет: ниже — как он будет устроен.
Chatsavo будет строить Markdown из того же разговора, который вы видите на странице, и учитывать особенности формата:
- блоки кода с языком: блок на Python так и останется блоком с пометкой
python; - таблицы останутся таблицами Markdown;
- формулы сохранятся как LaTeX;
- ссылки не потеряются;
- роли будут подписаны: «Вы» и «ИИ»;
- в шапке — сайт, дата и ссылка на исходный чат.
Так мы планируем оформлять экспорт в режиме «для Obsidian», с YAML front matter:
---
title: "Миграция на Postgres 17"
source: "ChatGPT"
url: "https://chatgpt.com/c/…"
created: 2026-09-14
updated: 2026-10-02
folder: "Работа / Бэкенд"
---
# Миграция на Postgres 17
### Вы
Какие изменения в pg_upgrade стоит проверить?
### ИИ
…
Поле folder будет браться из папки Chatsavo, так что в Obsidian по нему сразу заработают поиск и Dataview.
Какие форматы планируются:
| Формат | Для чего |
|---|---|
| Markdown | Любой редактор, GitHub, документация |
| Markdown для Obsidian | YAML front matter: сайт, даты, папка, ссылка |
| Markdown для Notion | Совместимая разметка для импорта в Notion |
| HTML | Открыть в браузере или отправить коллеге |
| TXT | Простой текст без разметки |
Что есть уже сейчас: полная выгрузка всех ваших данных Chatsavo в JSON, бесплатно на любом тарифе: Настройки → Ваши данные → «Скачать всё (JSON)». Файлы до 25 МБ эта версия умеет восстановить; более крупные пока остаются только экспортом. Когда экспорт появится, это будет в журнале изменений.
Какой способ выбрать
- Один ответ → кнопка «Копировать» в ChatGPT.
- Вся история разом, один раз → официальный экспорт и скрипт.
- Регулярно сохранять отдельные чаты в Obsidian или Notion → пока кнопка «Копировать» или скрипт; экспорт в Chatsavo — скоро.
Куда класть экспортированные чаты
Файл сам по себе мало что даёт: полезно то, что его потом можно найти. Несколько рабочих схем:
- Obsidian. Отдельная папка
AI/в хранилище, внутри — подпапки по темам. Поля front matter позволяют построить таблицу через Dataview: все чаты по папке «Работа / Бэкенд» за месяц. - Notion. Импорт Markdown создаёт страницу на каждый файл. Удобно для команды: чат превращается в документ, к которому можно оставить комментарии.
- Git-репозиторий проекта. Папка
docs/decisions/с разговорами, где принимались архитектурные решения. Через год это лучше любой памяти.
Имя файла лучше начинать с даты: 2026-10-02 Миграция на Postgres 17 (ChatGPT).md. Тогда сортировка по имени совпадает с хронологией.
Частые проблемы
Блоки кода в Markdown потеряли язык. Так бывает при копировании выделением мыши: браузер копирует отображаемый текст, а не исходную разметку. Используйте кнопку «Копировать» под сообщением или официальный экспорт.
Таблица превратилась в текст через табуляцию. Та же причина. Кнопка «Копировать» сохраняет таблицы в синтаксисе Markdown.
Длинное имя файла не сохраняется. Названия чатов бывают длинными и с символами / или :. Скрипт выше обрезает имя до 80 символов и заменяет недопустимые символы; в своём скрипте сделайте так же.
Экспорт в Markdown и Obsidian появится в Chatsavo в ближайших обновлениях — следите за журналом изменений. А папки и поиск по тексту чатов ChatGPT и Claude работают уже сейчас: 7 дней Pro бесплатно, без карты. Как установить Chatsavo.
Найдите любой старый чат за секунду
Chatsavo добавляет папки и поиск по тексту в ChatGPT и Claude. Бесплатно, тексты остаются в браузере.