ChatGPT десктоп втихую ставит LibreOffice на 1,7 ГБ — зачем и как это работает
Десктопное приложение ChatGPT (бывший Codex) прячет в кэше 1,7 ГБ: Python, Node.js, Git и полный LibreOffice. Разбираемся, зачем OpenAI это нужно и что там внутри.
Разработчик Саймон Уиллисон чистил кэш на MacOS и наткнулся на папку весом 1,7 гигабайта от десктопного приложения ChatGPT (раньше называлось Codex). Внутри — полноценные установки Python, Node.js, Git и LibreOffice. Оказалось, что OpenAI собрал целую runtime-среду для локальной работы с файлами: от парсинга PDF через Poppler до конвертации документов через офисный пакет.
Что лежит в папке codex-primary-runtime
Вся runtime-среда находится в директории ~/.cache/codex-runtimes/codex-primary-runtime/ (путь для macOS, на других ОС может отличаться). Внутри:
- Python — полная установка интерпретатора со стандартной библиотекой
- Node.js — рантайм для выполнения JavaScript-кода
- Git — бинарник системы контроля версий
- Poppler — набор утилит для работы с PDF (извлечение текста, рендеринг страниц)
- LibreOffice — headless-версия (без графического интерфейса) офисного пакета, весит около 430 МБ
В поддиректории plugins/openai-primary-runtime/plugins/documents лежат «навыки» (skills) — конфигурационные файлы, которые объясняют ChatGPT, где найти эти бинарники и как их вызывать.
Зачем ChatGPT нужен локальный офисный пакет
OpenAI встроил LibreOffice для обработки документов без отправки на сервер. Типичные сценарии:
- Конвертация форматов — из DOCX в PDF, из ODT в TXT, из XLSX в CSV. LibreOffice умеет это через командную строку в headless-режиме.
- Извлечение данных — таблицы из Excel, текст из PowerPoint, метаданные из Writer-документов.
- Локальный парсинг — пользователь может прикрепить файл, и ChatGPT обработает его на машине, не передавая содержимое в облако (важно для конфиденциальных данных).
Poppler дополняет картину: он специализируется на PDF, а LibreOffice закрывает форматы Microsoft Office и OpenDocument.
Как это работает под капотом
ChatGPT вызывает LibreOffice через утилиту soffice с флагом --headless. Пример команды для конвертации DOCX в PDF:
soffice --headless --convert-to pdf --outdir /path/to/output input.docxPython и Node.js используются для оркестрации: скрипты читают файлы, формируют команды, обрабатывают вывод. Git нужен для работы с репозиториями — например, если пользователь просит проанализировать код из локального проекта.
Структура skills-файлов выглядит примерно так (условный пример):
{
"name": "document_converter",
"binary_path": "plugins/openai-primary-runtime/bin/soffice",
"supported_formats": ["docx", "xlsx", "pptx", "odt", "ods"],
"commands": {
"convert_to_pdf": "--headless --convert-to pdf --outdir {output_dir} {input_file}"
}
}Подводные камни и нюансы
Размер кэша. 1,7 ГБ — это заметно для SSD на 256 ГБ. Если место критично, можно удалить папку ~/.cache/codex-runtimes/, но приложение загрузит её снова при следующем запуске.
Версии софта. OpenAI контролирует версии Python, Node и LibreOffice. Это значит, что даже если у вас установлен Python 3.12 системно, ChatGPT будет использовать свою версию. Может быть несовместимость, если пытаться использовать эти бинарники напрямую из терминала.
Прозрачность. Приложение не спрашивает разрешения на установку runtime-среды. Это стандартная практика для Electron-приложений, но для desktop-агента с доступом к файловой системе вопросы безопасности острее.
Headless LibreOffice нестабилен. Конвертация сложных документов (с макросами, кастомными шрифтами, внедрёнными объектами) может упасть или дать неожиданный результат. ChatGPT, видимо, обрабатывает такие ошибки и падает обратно на облачную обработку.
Что попробовать дальше
Если вам интересна идея локальной обработки документов через ИИ:
- Изучите папку
plugins/documents— там могут быть примеры команд и форматов, которые можно адаптировать под свои скрипты. - Попробуйте вызвать LibreOffice из этой папки напрямую — например, для автоматизации конвертации в CI/CD.
- Посмотрите на альтернативы: Pandoc (легче, но меньше форматов), OnlyOffice (есть headless-режим), unoconv (обёртка над LibreOffice).
Если вы работаете с конфиденциальными данными, локальная runtime-среда от OpenAI — неплохой компромисс между удобством и приватностью. Но помните: остальные запросы всё равно уходят на сервер.
FAQ
Можно ли удалить папку codex-runtimes без последствий?
Да, но приложение ChatGPT скачает её заново при следующем запуске. Если место на диске критично, лучше отключить автоматическую загрузку runtime через настройки приложения (если такая опция появится).
Зачем OpenAI включил Git в комплект?
Git позволяет ChatGPT работать с локальными репозиториями: анализировать коммиты, читать историю изменений, генерировать патчи. Это полезно для задач по code review и рефакторингу.
LibreOffice в кэше — это полная версия с GUI?
Нет, это headless-сборка (без графического интерфейса). Она легче обычной версии, но всё равно весит около 430 МБ из-за поддержки множества форматов и зависимостей.
Может ли ChatGPT использовать мою системную установку Python вместо встроенной?
Нет, приложение жёстко привязано к своей runtime-среде. Это сделано для изоляции и предсказуемости: OpenAI гарантирует, что все зависимости совместимы.
Безопасно ли давать ChatGPT доступ к локальным файлам?
OpenAI заявляет, что файлы обрабатываются локально, если это возможно (через встроенные инструменты), но гарантий полной изоляции нет. Для критичных данных используйте отдельную учётную запись или виртуальную машину.
Источники
Читайте также
Комментарии
Пока никто не написал. Будьте первым.
