Как экспортировать переписку с ChatGPT в Markdown
Как сохранить чат ChatGPT в Markdown: вручную, скриптом из официального экспорта или кнопкой в Chatsavo — с front matter для Obsidian.
Markdown — самый удобный формат для чатов с ИИ: файл читается в любом редакторе, блоки кода сохраняют язык, таблицы остаются таблицами, а Obsidian, Notion и GitHub понимают его без конвертации. Встроенной кнопки «Сохранить в Markdown» в ChatGPT по-прежнему нет. Разберём два рабочих способа экспорта чата ChatGPT — ручной и через скрипт — и покажем, как скачать чат в Markdown из 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
В Chatsavo чат можно скачать в Markdown прямо из панели:
- один чат — меню «…» у чата в панели → «Скачать Markdown»;
- несколько чатов — на панели нажмите «Выбрать», отметьте чаты и нажмите «Скачать Markdown»: они придут одним файлом;
- 20 недавних чатов для Obsidian — в настройках расширения, раздел «Закладки и Markdown» → «Скачать 20 недавних в Markdown».
В файл попадает текст, который Chatsavo сохранил, когда вы открывали чат. Если чат ещё не открывали после установки, текста в файле не будет: откройте чат и подождите секунду. Файл скачивается на ваш компьютер, на наши серверы ничего не уходит.
Как устроен файл:
- в начале — название чата и строка с сайтом, датой и ссылкой на исходный чат;
- роли подписаны: «Вы» и «ИИ».
В выгрузке для Obsidian вместо строки с сайтом — YAML front matter:
---
title: "Миграция на Postgres 17"
source: "ChatGPT"
url: "https://chatgpt.com/c/…"
created: 2026-09-14
updated: 2026-10-02
folder: "Работа / Бэкенд"
tags: []
---
# Миграция на Postgres 17
### Вы
Какие изменения в pg_upgrade стоит проверить?
### ИИ
…
Поле folder берётся из папки Chatsavo, а tags — из тегов чата, так что в Obsidian по ним сразу работают поиск и Dataview.
Кроме Markdown есть полная выгрузка всех ваших данных Chatsavo в JSON: Настройки → Ваши данные → «Скачать всё (JSON)». Файлы до 25 МБ эта версия умеет восстановить; более крупные пока остаются только экспортом. Изменения мы пишем в журнале изменений.
Какой способ выбрать
- Один ответ → кнопка «Копировать» в ChatGPT.
- Вся история разом, один раз → официальный экспорт и скрипт.
- Регулярно сохранять отдельные чаты в Obsidian или Notion → «Скачать Markdown» в Chatsavo или кнопка «Копировать».
Куда класть экспортированные чаты
Файл сам по себе мало что даёт: полезно то, что его потом можно найти. Несколько рабочих схем:
- Obsidian. Отдельная папка
AI/в хранилище, внутри — подпапки по темам. Поля front matter позволяют построить таблицу через Dataview: все чаты по папке «Работа / Бэкенд» за месяц. - Notion. Импорт Markdown создаёт страницу на каждый файл. Удобно для команды: чат превращается в документ, к которому можно оставить комментарии.
- Git-репозиторий проекта. Папка
docs/decisions/с разговорами, где принимались архитектурные решения. Через год это лучше любой памяти.
Имя файла лучше начинать с даты: 2026-10-02 Миграция на Postgres 17 (ChatGPT).md. Тогда сортировка по имени совпадает с хронологией.
Частые проблемы
Блоки кода в Markdown потеряли язык. Так бывает при копировании выделением мыши: браузер копирует отображаемый текст, а не исходную разметку. Используйте кнопку «Копировать» под сообщением или официальный экспорт.
Таблица превратилась в текст через табуляцию. Та же причина. Кнопка «Копировать» сохраняет таблицы в синтаксисе Markdown.
Длинное имя файла не сохраняется. Названия чатов бывают длинными и с символами / или :. Скрипт выше обрезает имя до 80 символов и заменяет недопустимые символы; в своём скрипте сделайте так же.
Экспорт в Markdown и для Obsidian, папки и поиск по тексту чатов ChatGPT и Claude в Chatsavo работают уже сейчас — бесплатно, без карты. Как установить Chatsavo.
Найдите любой старый чат за секунду
Chatsavo добавляет папки и поиск по тексту в ChatGPT и Claude. Бесплатно, тексты остаются в браузере.