Флаг Codex CLI --no-alt-screen применяется для отключения альтернативного экранного буфера терминала: вместо временного полноэкранного интерфейса Codex работает в обычном окне консоли, а уже выведенный текст остаётся в истории прокрутки. Это особенно заметно при работе по SSH, в встроенном терминале IDE, внутри tmux или при записи сессии в лог: команды, ответы и ход работы не исчезают после завершения программы.
Главная идея флага проста: Codex не «стирает» текущий экран при запуске и завершении полноэкранного интерфейса, поэтому историю взаимодействия легче просматривать, копировать и сохранять.
По умолчанию терминальные приложения могут использовать так называемый альтернативный экран — отдельный буфер, предназначенный для полноэкранных интерфейсов. После выхода приложение возвращает основной экран в прежнее состояние, что удобно для аккуратной работы, но не всегда удобно для отладки и аудита. Опция --no-alt-screen меняет именно это поведение, не отключая сам Codex, его модели, подтверждения команд или доступ к проекту.
- Как использовать
- Когда применять
- Примеры использования
- Обычный интерактивный запуск без альтернативного экрана
- Проверка справки перед запуском
- Работа по SSH
- Запуск внутри tmux
- Работа во встроенном терминале IDE
- Создание удобного алиаса
- Shell-скрипт для повторяемого запуска
- Сохранение вывода внешним инструментом
- Проверка поведения в минимальном терминале
- Запуск после перехода в нужный проект
- Использование в инструкции для команды
- Чем отличается от…
- --no-alt-screen и --help
- --no-alt-screen и --version
- --no-alt-screen и неинтерактивный режим
- --no-alt-screen и настройки терминала
- Типичные ошибки
- Ошибка: ожидать полноценного логирования
- Ошибка: поставить флаг в неподдерживаемую позицию
- Ошибка: считать, что флаг отключает подтверждения
- Ошибка: пытаться исправить неправильный размер терминала
- Ошибка: включить флаг в автоматизации без проверки интерактивности
- Краткая памятка
Как использовать
В большинстве сценариев флаг добавляется к команде запуска Codex CLI. Наиболее очевидная форма — codex --no-alt-screen. Она сообщает CLI, что интерактивный интерфейс следует запускать без переключения в альтернативный экран.
Флаг меняет способ отображения интерфейса, а не правила выполнения команд. Он не делает Codex безопаснее или опаснее сам по себе и не заменяет настройки подтверждений.
Если в вашей версии CLI используются подкоманды, положение параметра может зависеть от синтаксиса конкретного релиза. Поэтому перед автоматизацией полезно проверить локальную справку с помощью codex --help или справку соответствующей подкоманды. Документация и набор опций могут обновляться, а терминальные параметры иногда относятся только к интерактивному режиму.
| Команда | Назначение | Что проверить |
|---|---|---|
codex --no-alt-screen |
Запуск интерактивной сессии без альтернативного экранного буфера | Поддерживает ли установленная версия этот глобальный флаг |
codex --help |
Просмотр доступных параметров | Есть ли в выводе описание --no-alt-screen |
codex --version |
Проверка версии CLI | Не используется ли устаревший или экспериментальный релиз |
codex --no-alt-screen --help |
Проверка обработки флага в конкретной позиции | Не сообщает ли CLI о неизвестном параметре или неверном порядке аргументов |
На практике опцию удобно добавлять в shell-алиас или небольшой скрипт, если вы регулярно работаете в среде, где история терминала важнее визуальной чистоты. При этом лучше не скрывать флаг в слишком загадочном сокращении: через несколько недель будет полезно понимать, почему интерфейс ведёт себя иначе.
alias codex-log='codex --no-alt-screen' # Запуск сессии через алиас codex-log
| Способ запуска | Плюс | Ограничение |
|---|---|---|
| Однократный флаг | Ничего не меняет в конфигурации | Его нужно не забыть добавить снова |
| Алиас shell | Удобен для постоянной ручной работы | Действует только в настроенной оболочке |
| Shell-скрипт | Можно зафиксировать рабочий процесс и логирование | Скрипт нужно поддерживать при обновлении CLI |
| Общая конфигурация | Меньше ручных параметров | Нужно убедиться, что конкретная версия CLI поддерживает такую настройку |
Когда применять
Опция особенно полезна там, где вывод Codex должен оставаться частью обычной истории терминала. Это касается не только разработчиков, но и команд, которые разбирают ошибки, обучают новых сотрудников или сохраняют рабочие сессии для последующего анализа.
Если после выхода из приложения вы хотите нажать Page Up и увидеть весь разговор, обычный экран часто практичнее альтернативного.
Типичный случай — удалённая машина. При подключении по SSH терминал может работать нестабильно, а полноэкранные интерфейсы иногда конфликтуют с настройками терминального эмулятора, размером окна или обработкой управляющих последовательностей. Отключение альтернативного экрана не устраняет все проблемы SSH, но заметно упрощает диагностику: текст остаётся видимым, и его можно скопировать из текущего сеанса.
Другой сценарий — работа внутри tmux или screen. Эти инструменты сами управляют буферами, прокруткой и восстановлением состояния. Дополнительное переключение экрана со стороны приложения может выглядеть запутанно: пользователь видит один буфер внутри другого и не всегда понимает, куда исчез предыдущий вывод.
| Среда | Почему флаг может помочь | Что может измениться |
|---|---|---|
| SSH | Проще просматривать и копировать историю удалённой сессии | Терминал будет выглядеть менее «чисто» |
tmux |
Меньше неожиданностей при переключении между буферами | Вывод может занимать основной scrollback |
| Встроенный терминал IDE | Удобнее искать текст и сохранять логи | Часть полноэкранной визуальной логики может отображаться иначе |
| Запись терминала | Полезнее для последующего просмотра и аудита | В лог попадут управляющие или промежуточные сообщения, если их пишет приложение |
| CI-подобная среда | Меньше зависимости от интерактивного экрана | Флаг не превращает интерактивную программу в полностью неинтерактивную |
При обучении и разборе инцидентов флаг помогает сохранять контекст. Например, если Codex предложил изменить файл, а затем пользователь отклонил команду, последовательность событий останется в терминале. Это полезнее, чем пересказывать коллегам: «там что-то было на экране, но потом всё исчезло».
Однако применять параметр постоянно необязательно. Если вы цените чистый терминал, редко просматриваете историю и работаете локально в хорошо настроенном эмуляторе, альтернативный экран может быть удобнее. Вопрос не в том, какой режим «правильный», а в том, что важнее в конкретной задаче — компактный интерфейс или сохраняемый вывод.
| Приоритет пользователя | Рекомендуемый подход |
|---|---|
| Сохранить историю работы | Использовать --no-alt-screen |
| Получить максимально чистый полноэкранный интерфейс | Оставить стандартное поведение |
| Разобраться с проблемой отображения | Сначала попробовать --no-alt-screen, затем проверить настройки терминала |
| Собирать воспроизводимые логи | Сочетать флаг с явным журналированием и проверкой интерактивности |
Примеры использования
Ниже приведены практические сценарии, в которых разница между обычным экраном и альтернативным буфером становится заметной. Каждый пример показывает не только команду, но и задачу, ради которой параметр действительно имеет смысл.
Обычный интерактивный запуск без альтернативного экрана
Это базовый вариант для локальной работы, когда нужно видеть сессию в стандартной истории терминала и возвращаться к предыдущим сообщениям с помощью прокрутки.
codex --no-alt-screen
Проверка справки перед запуском
Если CLI давно не обновлялся или команда ведёт себя неожиданно, сначала стоит проверить наличие опции в локальной справке. Это безопаснее, чем полагаться на пример из статьи для другой версии.
codex --help codex --version # После проверки: codex --no-alt-screen
Работа по SSH
При удалённом подключении сохранение вывода особенно удобно: можно прокрутить историю, скопировать фрагмент ошибки и отправить его коллегам, не воспроизводя всю сессию заново.
ssh developer@example.com # На удалённой машине cd ~/project codex --no-alt-screen
Запуск внутри tmux
В tmux уже есть собственная модель окон и прокрутки. Отключение альтернативного экрана помогает оставить ответы Codex в том же буфере, где находятся остальные команды пользователя.
tmux new -s codex-work cd ~/project codex --no-alt-screen # Выйти из tmux, не завершая сессию: # Ctrl-b затем d
Работа во встроенном терминале IDE
Встроенные терминалы часто имеют собственный поиск по выводу, экспорт текста и ограниченный scrollback. Обычный экран позволяет использовать эти функции предсказуемее.
cd ~/workspace/application codex --no-alt-screen
Создание удобного алиаса
Если вы почти всегда хотите сохранять историю, можно создать отдельную команду с понятным именем. Отдельный алиас лучше, чем бездумно менять все сценарии запуска.
alias codex-history='codex --no-alt-screen' codex-history
Shell-скрипт для повторяемого запуска
Скрипт пригодится команде, где несколько разработчиков должны запускать CLI одинаково. В него можно добавить переход в каталог проекта и проверку версии.
#!/usr/bin/env bash
set -e
cd "${1:-.}"
echo "Codex CLI:"
codex --version
codex --no-alt-screen
Сохранение вывода внешним инструментом
Флаг не является системой логирования, но обычный экран удобнее сочетать с инструментами, которые сохраняют поток терминала. Это может пригодиться для учебной демонстрации или расследования ошибки.
mkdir -p logs script -q logs/codex-session.txt codex --no-alt-screen
Проверка поведения в минимальном терминале
Если полноэкранный интерфейс отображается некорректно, можно запустить Codex с отключённым альтернативным экраном и сравнить результат. Такой тест помогает отделить проблему CLI от проблемы эмулятора терминала.
echo "TERM=$TERM" echo "COLORTERM=$COLORTERM" codex --no-alt-screen
Запуск после перехода в нужный проект
Параметр отвечает за экран, но рабочий каталог по-прежнему важен: Codex должен быть запущен там, где находятся нужные файлы и настройки проекта.
cd ~/projects/site pwd git status codex --no-alt-screen
Использование в инструкции для команды
В командной документации полезно явно объяснить, зачем добавлен флаг. Тогда коллеги не примут необычное поведение терминала за ошибку и смогут повторить сценарий.
# Интерактивная сессия с сохраняемой историей codex --no-alt-screen
| Сценарий | Ожидаемый результат | Польза |
|---|---|---|
| Локальный запуск | Вывод остаётся в основном буфере терминала | Можно быстро вернуться к предыдущим сообщениям |
| SSH | История не скрывается после выхода из интерфейса | Проще копировать диагностику |
tmux |
Сессия лучше вписывается в обычную прокрутку окна | Меньше путаницы между буферами |
Запись через script |
Сеанс удобнее анализировать после завершения | Можно восстановить последовательность действий |
Чем отличается от…
Флаг часто путают с другими параметрами, потому что все они связаны с тем, как CLI выглядит или ведёт себя в терминале. Но --no-alt-screen отвечает только за использование альтернативного экранного буфера и не является универсальным переключателем «тихого», безопасного или автоматического режима.
--no-alt-screen и --help
Параметр --help выводит справочную информацию о командах и опциях. Он не меняет режим отображения рабочей сессии в том смысле, в котором это делает --no-alt-screen.
| Параметр | Основная задача | Влияние на рабочий интерфейс |
|---|---|---|
--no-alt-screen |
Отключить альтернативный экран | Сохранить вывод в основном буфере |
--help |
Показать справку | Обычно завершить текущий вызов после вывода текста |
--no-alt-screen и --version
Опция --version нужна для определения установленной версии CLI. Она полезна при диагностике поддержки флага, но сама не включает и не выключает альтернативный экран в полноценной интерактивной сессии.
--no-alt-screen и неинтерактивный режим
Неинтерактивные режимы предназначены для сценариев, где программа получает входные данные и выдаёт результат без постоянного взаимодействия с пользователем. --no-alt-screen не превращает интерактивный Codex в такой режим: он лишь меняет работу экранного буфера.
| Характеристика | --no-alt-screen |
Неинтерактивный запуск |
|---|---|---|
| Сохраняет обычный scrollback | Да | Зависит от способа запуска |
| Убирает необходимость отвечать на вопросы | Нет | Возможно, если это предусмотрено режимом |
| Подходит для полноценных диалоговых сессий | Да | Не всегда |
| Заменяет подтверждения действий | Нет | Нет, если отдельный режим явно этого не предусматривает |
--no-alt-screen и настройки терминала
Настройки терминального эмулятора определяют, как отображаются цвета, клавиши, размеры окна и управляющие последовательности. Флаг Codex влияет только на поведение приложения, поэтому он может помочь, но не исправит неверный TERM, повреждённое соединение или ошибку самого эмулятора.
Типичные ошибки
Большинство проблем возникает не из-за сложности самого флага, а из-за неверных ожиданий. Пользователь добавляет --no-alt-screen, рассчитывая получить журнал, отключить подтверждения или исправить любую проблему терминала, хотя параметр решает гораздо более узкую задачу.
Отсутствие альтернативного экрана — это не то же самое, что отсутствие интерактивности. Интерфейс всё ещё может ждать ввода и показывать служебные сообщения.
Ошибка: ожидать полноценного логирования
Флаг сохраняет текст в основном буфере, но не гарантирует бессрочное хранение. Терминал может иметь ограниченный размер scrollback, SSH-соединение может оборваться, а часть интерфейсных обновлений может записываться не так, как ожидает пользователь.
Для важных сессий используйте отдельное журналирование и заранее проверьте, не содержат ли логи секреты, токены или персональные данные.
| Проблема | Почему возникает | Что сделать |
|---|---|---|
| Старый вывод исчез | Ограничен размер scrollback | Увеличить историю терминала или использовать журналирование |
| Лог содержит нечитаемые символы | Записались управляющие последовательности | Проверить способ записи и фильтрацию вывода |
| Сессия не сохранилась | Соединение было прервано | Использовать устойчивый удалённый сеанс, например tmux |
Ошибка: поставить флаг в неподдерживаемую позицию
У разных версий CLI аргументы и подкоманды могут разбираться по-разному. Если команда сообщает об неизвестной опции, не стоит механически переносить флаг между всеми возможными позициями.
# Сначала проверить локальную справку codex --help # Затем использовать форму, которую принимает ваша версия codex --no-alt-screen
Ошибка: считать, что флаг отключает подтверждения
Режим отображения никак не определяет, будет ли Codex запрашивать разрешение на действие. Если вам нужно изменить поведение подтверждений, ищите соответствующие параметры и настройки безопасности, а не экранные опции.
| Ожидание | Что происходит на самом деле |
|---|---|
| «Команды начнут выполняться без вопросов» | Подтверждения остаются отдельным механизмом |
| «Codex получит больше прав» | Права доступа не меняются от переключения экранного буфера |
| «Все сообщения станут видимыми навсегда» | История зависит от scrollback и способа журналирования |
Ошибка: пытаться исправить неправильный размер терминала
Если строки переносятся, интерфейс обрезается или клавиши работают странно, причиной может быть неверное значение TERM, маленькое окно, проблема SSH или настройки локального эмулятора. --no-alt-screen иногда делает ситуацию терпимее, но не заменяет диагностику.
echo "TERM=$TERM" stty size # После изменения размера окна повторить запуск codex --no-alt-screen
Ошибка: включить флаг в автоматизации без проверки интерактивности
Обычный экран удобен для человека, но не превращает CLI в надёжный CI-инструмент. Автоматизированному процессу могут понадобиться предсказуемый ввод, обработка кодов завершения, отсутствие запроса подтверждений и отдельная стратегия хранения секретов.
Перед использованием в скрипте проверьте команду на тестовом проекте, зафиксируйте версию CLI и убедитесь, что в журнал не попадают чувствительные данные.
Краткая памятка
--no-alt-screen — небольшой, но полезный флаг для тех случаев, когда история терминала важнее полноэкранной аккуратности. Он особенно уместен в SSH, tmux, встроенных терминалах IDE, учебных демонстрациях и сценариях, где вывод нужно анализировать после завершения сессии.
| Вопрос | Короткий ответ |
|---|---|
| Что делает флаг? | Отключает использование альтернативного экранного буфера |
| Базовая команда | codex --no-alt-screen |
| Сохраняет ли он историю навсегда? | Нет, история зависит от scrollback и журналирования |
| Отключает ли он подтверждения? | Нет |
| Меняет ли права доступа Codex? | Нет |
Полезен ли он в SSH и tmux? |
Да, если нужно видеть обычную историю терминала |
| Что сделать при ошибке неизвестного флага? | Проверить codex --help и версию CLI |
- Проверьте версию установленного Codex CLI.
- Убедитесь по справке, что поддерживается
--no-alt-screen. - Запустите интерактивную сессию командой
codex --no-alt-screen. - Проверьте прокрутку, копирование и поиск по выводу.
- Для важных сессий настройте отдельное журналирование.
- Не путайте экранный флаг с параметрами подтверждений и автоматизации.
- При проблемах с отображением дополнительно проверьте
TERM, размер окна, SSH и настройки эмулятора.
# Минимальный рабочий вариант codex --no-alt-screen # Диагностический вариант codex --version codex --help codex --no-alt-screen
Иными словами, используйте --no-alt-screen, когда хотите, чтобы работа Codex оставалась частью обычной истории терминала. Если же вам нужен чистый временный интерфейс без накопления вывода, стандартное поведение может оказаться удобнее.

