
ChatGPT -> Codex CLI: как перенести контекст диалога в локальную сессию
vvbogdanov 14 минут назад ChatGPT -> Codex CLI: как перенести контекст диалога в локальную сессию Простой 4 мин 354 Open source * Программирование * Node.JS * TypeScript * Кейс Иногда полезная инженерная работа...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Вот важная новость с фронта ИИ: vvbogdanov 14 минут назад ChatGPT -> Codex CLI: как перенести контекст диалога в локальную сессию Простой 4 мин 354 Open source * Программирование * Node. JS * TypeScript * Кейс Иногда полезная инженерная работа начинается не с кода, а с разговора. Например, вы обсуждаете архитектуру, ограничения, варианты реализации или странный баг в ChatGPT.
Через какое-то время направление становится понятным, и дальше хочется продолжить уже локально: в репозитории, терминале, с Codex CLI. Но контекст остался в ChatGPT. Можно вручную скопировать summary, можно вставить отдельные фрагменты, можно начать новую сессию в Codex и заново объяснить задачу.
Технические детали
Всё это работает, но теряет часть деталей: почему было принято решение, какие варианты отбросили, какие ограничения уже проговорили. Мне захотелось сделать маленький мост:ChatGPT share URL -> локальная сессия Codex CLI Так появился chatgpt2codex. npx chatgpt2codex Репозиторий: npm: делает утилитаchatgpt2codex принимает публичную ссылку на расшаренный ChatGPT-диалог и импортирует его как локальную сессию Codex CLI.
По умолчанию сессия привязывается к текущей директории:npx chatgpt2codex Можно явно указать проект:npx chatgpt2codex -C /path/to/project Можно сначала посмотреть, что будет импортировано, ничего не записывая:npx chatgpt2codex --dry-run Если для директории уже есть сессия, утилита по умолчанию завершится с ошибкой. Для осознанной замены есть флаг:npx chatgpt2codex --force Почему это не просто “записать файл”Первая версия казалась очевидной: распарсить ChatGPT share page, нормализовать сообщения и записать JSONL-файл в директорию сессий Codex. У Codex CLI локальные сессии лежат примерно здесь:~/.
codex/sessions/YYYY/MM/DD/ Файл называется в духе:rollout-2026-06-30T11-50-01-. jsonl Внутри это JSONL: строка с метаданными сессии, дальше события диалога. Но после первого импорта Codex не всегда подхватывал сессию в resume flow.
Отраслевые последствия
Оказалось, что в современных сборках одного JSONL недостаточно. Codex использует ещё и локальную SQLite-базу:~/. sqlite Именно там хранится индекс тредов: cwd, title, preview, source, archived state, путь до rollout-файла и другие поля, которые нужны для отображения сессии в списке продолжения.
То есть рабочий импорт должен писать не только файл, но и согласованную запись в локальный state. Формат на практикеМинимально полезный импорт делает несколько вещей. Сначала создаёт rollout JSONL с метаданными сессии.
Важно, чтобы сессия выглядела для Codex как нормальная CLI-сессия:{ "type": "session_meta", "payload": { "source": "cli", "thread_source": "user", "cwd": "/path/to/project" } } В ранней версии я использовал кастомный source, и это оказалось плохой идеей: Codex не воспринимал такую сессию как обычную CLI-сессию и мог фильтровать её из resume picker.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





