Команда codex completion в Codex CLI: назначение, синтаксис и практические примеры

Команда codex completion в Codex CLI служит для генерации скриптов автодополнения команд, подкоманд, параметров и значений аргументов для популярных оболочек. Вместо того чтобы каждый раз вспоминать, как называется нужный режим, где находится параметр или какие варианты поддерживает конкретная команда, пользователь нажимает Tab и получает подсказку прямо в терминале.

Автодополнение — это не просто удобная подсказка: оно помогает обнаружить возможности установленной версии Codex CLI и одновременно уменьшает количество опечаток в командах.

Команда codex completion особенно полезна тем, кто регулярно работает с codex, переключается между режимами вроде exec, resume и mcp, использует длинные параметры или запускает CLI в разных окружениях. Скрипт генерируется самой установленной версией Codex CLI, после чего подключается к выбранной оболочке один раз или автоматически загружается при каждом запуске терминала.

Содержание
  1. Обзор команды codex completion
  2. Синтаксис команды codex completion
  3. Аргумент <SHELL>
  4. Глобальные параметры и справка
  5. Как сгенерировать скрипт автодополнения
  6. Практический пример: проверка сгенерированного текста
  7. Практический пример: сохранение скрипта во временный файл
  8. Практический пример: сравнение скрипта после обновления
  9. Установка в Bash
  10. Практический пример: установка Bash в пользовательский каталог
  11. Практический пример: временное подключение Bash
  12. Установка в Zsh
  13. Практический пример: установка Zsh через пользовательский каталог
  14. Практический пример: проверка регистрации функции Zsh
  15. Установка в Fish
  16. Практический пример: установка Fish
  17. Практический пример: временная проверка Fish
  18. Установка в PowerShell
  19. Практический пример: временная загрузка в PowerShell
  20. Практический пример: сохранение в профиль PowerShell
  21. Установка в Elvish
  22. Практический пример: генерация файла для Elvish
  23. Как использовать автодополнение в повседневной работе
  24. Практический пример: поиск подкоманды
  25. Практический пример: дополнение параметров
  26. Практический пример: использование в цепочке команд
  27. Обновление и поддержка скрипта
  28. Практический пример: безопасное обновление Zsh-файла
  29. Практический пример: автоматическое обновление нескольких оболочек
  30. Диагностика типичных проблем
  31. Практический пример: проверка пути к Codex CLI
  32. Практический пример: поиск нескольких файлов автодополнения
  33. Практический пример: повторная установка после смены версии
  34. Рекомендации по безопасной и удобной настройке
  35. Практический пример: установка из скрипта настройки окружения
  36. Практический пример: проверка перед перезаписью файла
  37. Краткий алгоритм установки

Обзор команды codex completion

Команда codex completion относится к служебным возможностям Codex CLI. Её задача — не выполнять запрос к модели и не запускать рабочую сессию, а вывести в стандартный поток готовый скрипт для оболочки. Этот скрипт знает структуру команд Codex CLI и передаёт оболочке правила, по которым она должна предлагать варианты после нажатия Tab.

Главный принцип прост: Codex CLI генерирует файл, а оболочка отвечает за его загрузку и показ подсказок.

Команда обычно не устанавливает автодополнение самостоятельно. Это важное различие: она печатает содержимое скрипта, а пользователь уже перенаправляет вывод в нужный файл или подключает его к текущей сессии. Такой подход удобен для Unix-подобных систем, Windows PowerShell, dotfiles-репозиториев и автоматизированной настройки рабочих мест.

Что делает команда Что не делает команда
Генерирует скрипт автодополнения Не меняет конфигурацию оболочки автоматически
Учитывает структуру команд установленной версии Codex CLI Не устанавливает сам Codex CLI
Выводит результат в стандартный поток Не создаёт пользовательский файл без перенаправления вывода
Поддерживает несколько оболочек Не заменяет пакетный менеджер оболочки или системную настройку PATH

Практическая ценность автодополнения становится заметна не только на длинных командах. Оно помогает быстро увидеть доступные подкоманды, проверить допустимые значения параметра и понять, какие возможности действительно присутствуют в текущем релизе. Это особенно полезно после обновления Codex CLI, когда набор команд или флагов мог измениться.

Ситуация Без автодополнения С автодополнением
Поиск подкоманды Нужно вспоминать документацию или открывать справку Можно набрать начало команды и нажать Tab
Длинный параметр Высокий риск опечатки Оболочка предлагает корректное имя
Работа в новой версии Старые привычки могут вводить в заблуждение Подсказки строятся для установленного CLI
Повседневные команды Много ручного набора Команды вводятся быстрее и единообразнее

Синтаксис команды codex completion

Базовый синтаксис состоит из имени программы, подкоманды completion и обязательного аргумента, обозначающего оболочку. В простейшем виде команда ничего не записывает на диск: она формирует текст скрипта и выводит его в терминал.

Элемент Назначение Пример
codex Запуск Codex CLI codex
completion Выбор генератора автодополнения completion
<SHELL> Целевая оболочка bash, zsh, fish
> Перенаправление результата в файл > ~/.config/...

Аргумент <SHELL>

Аргумент <SHELL> определяет формат генерируемого скрипта. Он является обязательным: без него Codex CLI не знает, для какой оболочки нужно подготовить правила автодополнения. Название следует указывать в том виде, который поддерживается конкретной версией CLI.

Значение Для какой оболочки Типичный файл
bash GNU Bash codex в каталоге bash-completion
zsh Z shell _codex в одном из каталогов fpath
fish Friendly Interactive Shell codex.fish
powershell PowerShell Профиль PowerShell или отдельный скрипт
elvish Elvish Файл конфигурации или скрипт Elvish

У разных выпусков Codex CLI список поддерживаемых оболочек может отличаться. Поэтому перед установкой полезно проверить справку именно своей версии командой codex completion --help. Если оболочка не поддерживается, генератор обычно сообщает об ошибке вместо того, чтобы создать заведомо неподходящий файл.

Проверка справки:
codex completion --help

Пример базового вызова для Zsh:
codex completion zsh

Глобальные параметры и справка

У Codex CLI могут существовать общие параметры, доступные нескольким подкомандам. Однако их наличие, порядок и поведение зависят от конкретной версии программы. Для генерации автодополнения обычно достаточно указать оболочку, а для диагностики — обратиться к встроенной справке.

Команда или параметр Назначение Когда использовать
codex completion --help Показать справку подкоманды Перед первой установкой или после обновления
codex --help Показать общую справку Codex CLI Чтобы увидеть доступные подкоманды
codex --version Показать установленную версию При сравнении среды или поиске причины несовместимости

Не следует механически переносить параметры из примеров для другой версии. Если команда из инструкции не принимается, сначала сравните вывод codex --help и codex completion --help с документацией к установленному выпуску. Автодополнение должно соответствовать именно тому бинарному файлу, который реально запускается вашей оболочкой.

Как сгенерировать скрипт автодополнения

Генерация выполняется в два этапа: сначала выбирается оболочка, затем результат сохраняется в файл или передаётся непосредственно текущему процессу оболочки. Самый безопасный вариант — сначала вывести скрипт на экран и убедиться, что команда отработала без ошибки.

Скрипт автодополнения лучше считать производным файлом: его можно пересоздать в любой момент, если обновился Codex CLI или изменилась оболочка.

Для обычной установки применяется перенаправление вывода. Символ > записывает результат в новый файл или перезаписывает существующий, поэтому перед использованием важно проверить путь. Если каталог ещё не создан, оболочка сообщит об ошибке — это не проблема Codex CLI, а обычное правило работы с файловой системой.

Операция Команда Результат
Показать скрипт codex completion zsh Текст выводится в терминал
Сохранить в файл codex completion zsh > _codex Создаётся файл с правилами
Добавить в существующий файл codex completion zsh >> файл Скрипт добавляется в конец файла
Подключить временно Команда зависит от оболочки Автодополнение действует в текущем сеансе

Практический пример: проверка сгенерированного текста

Перед установкой полезно убедиться, что Codex CLI действительно генерирует результат. Такой шаг помогает отделить проблемы генерации от проблем загрузки файла оболочкой.

Для Zsh:
codex completion zsh | head -n 20

Для Bash:
codex completion bash | head -n 20

Если вывод начинается с текстового скрипта оболочки, генератор работает.

Практический пример: сохранение скрипта во временный файл

Временный файл удобен для просмотра и сравнения. Его можно открыть редактором, проверить права доступа, а затем переместить в каталог автодополнений.

mkdir -p "$HOME/.local/share/codex-completion"
codex completion bash > "$HOME/.local/share/codex-completion/codex.bash"

Проверка наличия файла:
ls -l "$HOME/.local/share/codex-completion/codex.bash"

Практический пример: сравнение скрипта после обновления

Если Codex CLI обновился, не обязательно сразу заменять рабочий файл. Сначала создайте новую версию рядом со старой и сравните их обычной утилитой diff.

codex completion zsh > /tmp/codex-completion-new

diff -u 
  "$HOME/.zsh/completions/_codex" 
  /tmp/codex-completion-new

Если различия ожидаемы, замените старый файл новой версией.

Установка в Bash

В Bash автодополнение обычно предоставляется механизмом bash-completion. Скрипт Codex CLI нужно положить в каталог, который Bash или пакет bash-completion сканирует при запуске. На разных системах путь может отличаться, поэтому универсального каталога для всех дистрибутивов нет.

Среда Возможный каталог Особенность
Linux с локальной установкой ~/.local/share/bash-completion/completions/ Не требует прав администратора
Системная установка Linux /etc/bash_completion.d/ Может потребоваться sudo
Homebrew на macOS Каталог, используемый установленным bash-completion Путь зависит от архитектуры и формулы
Домашний профиль ~/.bash_completion или подключаемый файл Удобно для личной конфигурации

Лучше предпочесть пользовательский каталог, если у вас нет необходимости устанавливать автодополнение для всех пользователей. Это уменьшает риск изменить системные файлы и делает настройку переносимой: каталог можно включить в резервную копию или dotfiles-репозиторий.

Практический пример: установка Bash в пользовательский каталог

Следующий вариант не требует прав администратора. После создания файла нужно перезапустить Bash или вручную подключить скрипт, если текущая конфигурация не загружает каталог автоматически.

mkdir -p "$HOME/.local/share/bash-completion/completions"

codex completion bash 
  > "$HOME/.local/share/bash-completion/completions/codex"

Перезапуск оболочки:
exec bash

Практический пример: временное подключение Bash

Временная загрузка полезна для проверки. Она действует только в текущем процессе Bash и не изменяет файлы профиля или системные каталоги.

source <(codex completion bash)

Проверка:
codex <TAB>
codex m<TAB>

В HTML-фрагменте выше запись <TAB> означает нажатие клавиши Tab, а не буквальный набор символов. Если подсказки не появились, проверьте, установлен ли пакет Bash Completion и не переопределяет ли команда codex функцию или псевдоним.

Установка в Zsh

Zsh использует систему функций автодополнения и ищет их в каталогах, перечисленных в переменной fpath. Для команды codex файл обычно должен называться _codex: начальный символ подчёркивания — часть соглашения Zsh, а не случайная деталь.

Для Zsh важны сразу три вещи: правильное имя файла, каталог в fpath и включённый механизм compinit.

Надёжная пользовательская схема выглядит так: создать каталог для собственных функций, добавить его в fpath до запуска compinit, сгенерировать файл _codex и перезапустить оболочку. Если compinit уже был вызван раньше, новое значение fpath может не дать ожидаемого результата до повторной инициализации.

Компонент Пример Зачем нужен
Каталог функций ~/.zsh/completions Хранит пользовательские функции автодополнения
Имя файла _codex Соответствует команде codex
fpath fpath=(~/.zsh/completions $fpath) Сообщает Zsh, где искать функции
compinit autoload -Uz compinit && compinit Включает систему автодополнения

Практический пример: установка Zsh через пользовательский каталог

Этот способ подходит для macOS и Linux, если конфигурация Zsh управляется вручную. Строку с fpath нужно разместить до вызова compinit.

mkdir -p "$HOME/.zsh/completions"

codex completion zsh 
  > "$HOME/.zsh/completions/_codex"

Добавьте в ~/.zshrc до compinit:
fpath=("$HOME/.zsh/completions" $fpath)
autoload -Uz compinit
compinit

Затем перезапустите Zsh:
exec zsh

Практический пример: проверка регистрации функции Zsh

Zsh позволяет проверить, откуда была загружена функция автодополнения. Это помогает обнаружить ситуацию, когда в системе осталась старая копия файла или другой генератор перехватывает имя _codex.

Показать расположение функции:
whence -v _codex

Проверить каталог:
print -l $fpath

Проверить подсказки:
codex <TAB>

Установка в Fish

Fish хранит пользовательские файлы автодополнения в каталоге ~/.config/fish/completions. В отличие от Zsh, здесь обычно не нужно отдельно редактировать переменную поиска функций: Fish автоматически подхватывает файлы с подходящими именами из стандартного каталога.

Путь Назначение Рекомендация
~/.config/fish/completions/codex.fish Пользовательское автодополнение Codex Предпочтительный вариант без прав администратора
/usr/share/fish/vendor_completions.d/codex.fish Общесистемная установка Использовать только при необходимости
~/.config/fish/config.fish Конфигурация запуска Fish Обычно не требуется для файла completion

После сохранения файла новая вкладка Fish обычно начинает использовать его без ручного вызова source. Если текущий процесс не подхватил изменения, откройте новый терминал или выполните команду перезагрузки конфигурации.

Практический пример: установка Fish

Команды ниже создают пользовательский каталог и сохраняют в него скрипт, сгенерированный Codex CLI. Такой файл не затрагивает системную конфигурацию Fish.

mkdir -p "$HOME/.config/fish/completions"

codex completion fish 
  > "$HOME/.config/fish/completions/codex.fish"

Перезагрузить конфигурацию:
source "$HOME/.config/fish/config.fish"

Практический пример: временная проверка Fish

Если вы хотите проверить генератор до постоянной установки, можно вывести скрипт во временный файл, подключить его и выполнить несколько команд. Это удобно при диагностике пути или несовместимости версии.

set -l temporary_completion /tmp/codex.fish
codex completion fish > $temporary_completion

source $temporary_completion

Проверка:
codex <TAB>

Установка в PowerShell

PowerShell отличается от Bash, Zsh и Fish тем, что его профиль — это обычный PowerShell-скрипт, который выполняется при запуске оболочки. Поэтому сгенерированный текст можно подключить временно в текущем окне или добавить в профиль для постоянной работы.

Способ Срок действия Когда подходит
Передать результат в текущий процесс До закрытия окна Для проверки
Добавить команду в профиль При каждом запуске PowerShell Для личного постоянного использования
Сохранить отдельный файл Пока файл подключается профилем Для управления конфигурацией и резервных копий
Установить системно Для нескольких пользователей В администрируемой среде

Профиль PowerShell может отсутствовать. В таком случае его создают командой New-Item. Перед изменением профиля стоит проверить значение $PROFILE, поскольку путь зависит от версии PowerShell и операционной системы.

Практический пример: временная загрузка в PowerShell

Этот вариант позволяет быстро убедиться, что сгенерированный скрипт совместим с текущим PowerShell. Он не сохраняет настройки после закрытия окна.

Сгенерировать и выполнить для текущего сеанса:
codex completion powershell | Out-String | Invoke-Expression

Проверка:
codex <TAB>

Практический пример: сохранение в профиль PowerShell

Чтобы не выполнять длинную команду вручную при каждом запуске, сохраните её в профиль. Перед этим создайте каталог профиля, если он ещё не существует.

New-Item -ItemType Directory -Force `
  -Path (Split-Path -Parent $PROFILE) | Out-Null

if (-not (Test-Path $PROFILE)) {
  New-Item -ItemType File -Path $PROFILE -Force | Out-Null
}

Add-Content -Path $PROFILE -Value `
  'codex completion powershell | Out-String | Invoke-Expression'

Загрузить профиль:
. $PROFILE

В корпоративной среде выполнение профилей может ограничиваться политикой PowerShell. Если профиль не запускается, проверьте действующую политику выполнения и правила организации, а не пытайтесь бездумно отключать защитные механизмы.

Установка в Elvish

Elvish использует собственный синтаксис и собственную модель загрузки функций. Поэтому скрипт, созданный для Bash или Zsh, в Elvish применять нельзя: оболочка не поймёт его команды. Для Elvish важно сохранить результат генератора в файл, который подключается конфигурацией этой оболочки.

Шаг Действие Проверка
1 Проверить поддержку elvish codex completion --help
2 Сгенерировать скрипт codex completion elvish
3 Сохранить файл в пользовательское место Проверить содержимое файла
4 Подключить файл в конфигурации Elvish Открыть новый сеанс

Названия каталогов конфигурации Elvish могут зависеть от платформы и способа установки. Поэтому для этой оболочки особенно важно свериться с её документацией и переменными окружения. Сам принцип остаётся тем же: генератор Codex CLI создаёт содержимое, а Elvish загружает его как часть собственной конфигурации.

Практический пример: генерация файла для Elvish

Ниже показан общий шаблон с пользовательским каталогом. Если в вашей системе используется другой каталог конфигурации, замените путь, но оставьте формат команды генерации.

mkdir -p "$HOME/.config/elvish/lib"

codex completion elvish 
  > "$HOME/.config/elvish/lib/codex-completion.elv"

Просмотр первых строк:
head -n 20 "$HOME/.config/elvish/lib/codex-completion.elv"

Как использовать автодополнение в повседневной работе

После установки пользователь работает с codex так же, как с любой другой командой оболочки. Начните вводить имя программы или подкоманды и нажмите Tab. Повторное нажатие может циклически переключать варианты или показывать расширенный список — конкретное поведение определяется настройками выбранной оболочки.

Автодополнение эффективнее всего использовать не как справочник вместо документации, а как быстрый навигатор по уже известной структуре команды.

Например, если вы помните, что в Codex CLI есть команда для продолжения предыдущей сессии, но забыли её точное написание, можно набрать codex r и нажать Tab. Аналогично удобно подставлять длинные имена параметров, не набирая их вручную посимвольно.

Действие Пример Польза
Поиск подкоманды codex r<TAB> Быстро найти подходящий вариант
Дополнение параметра codex exec --<TAB> Увидеть доступные флаги
Исправление начала слова codex com<TAB> Сократить ручной ввод
Проверка доступных значений codex ... --option <TAB> Выбрать допустимый вариант, если генератор его поддерживает

Практический пример: поиск подкоманды

Если вы не помните полное имя подкоманды, начните с нескольких букв. Оболочка либо подставит единственный вариант, либо покажет список совпадений.

Пример для Bash, Zsh или Fish:
codex ex<TAB>

Ожидаемый результат:
codex exec

Практический пример: дополнение параметров

Длинные параметры особенно легко набрать с ошибкой. Автодополнение помогает получить корректное имя, после чего можно вручную проверить его смысл через справку конкретной команды.

codex exec --<TAB>

После выбора варианта:
codex exec --help

Практический пример: использование в цепочке команд

Автодополнение не ограничивается запуском самой программы. Оно работает в обычной командной строке рядом с перенаправлением, переменными окружения и другими элементами оболочки.

Сначала выбрать подкоманду:
codex re<TAB>

Затем направить вывод в журнал:
codex resume > "$HOME/codex-session.log"

Обновление и поддержка скрипта

Скрипт автодополнения создаётся на основе конкретной версии Codex CLI. Если программа обновилась, старый файл часто продолжит работать, но может не знать о новых подкомандах и параметрах. Поэтому автодополнение следует обновлять вместе с CLI, особенно если вы заметили, что справка показывает больше возможностей, чем предлагает клавиша Tab.

Событие Что сделать Почему
Обновился Codex CLI Заново выполнить codex completion <SHELL> Получить правила новой версии
Сменили оболочку Сгенерировать скрипт для новой оболочки Форматы скриптов несовместимы
Подсказки исчезли Проверить путь, имя файла и загрузку конфигурации Проблема может быть не в генераторе
Появилась ошибка при запуске Сравнить версию и справку Старый скрипт может не соответствовать CLI

Не стоит без необходимости добавлять новый скрипт в конец старого файла через >>. В результате могут появиться дубликаты функций, конфликтующие правила или несколько версий автодополнения. Безопаснее перезаписать отдельный файл или сначала сделать резервную копию.

Практический пример: безопасное обновление Zsh-файла

При обновлении можно сначала создать резервную копию, затем записать новую версию. Если результат не понравится, старый файл легко вернуть.

completion_file="$HOME/.zsh/completions/_codex"

cp "$completion_file" "$completion_file.backup"

codex completion zsh > "$completion_file"

При необходимости откатить:
mv "$completion_file.backup" "$completion_file"

Практический пример: автоматическое обновление нескольких оболочек

Если вы регулярно работаете в нескольких оболочках, небольшая функция или скрипт избавит от ручного повторения одинаковых действий. Перед использованием проверьте, что целевые каталоги существуют и соответствуют вашей системе.

#!/usr/bin/env bash
set -e

mkdir -p "$HOME/.zsh/completions"
mkdir -p "$HOME/.config/fish/completions"
mkdir -p "$HOME/.local/share/bash-completion/completions"

codex completion zsh 
  > "$HOME/.zsh/completions/_codex"

codex completion fish 
  > "$HOME/.config/fish/completions/codex.fish"

codex completion bash 
  > "$HOME/.local/share/bash-completion/completions/codex"

echo "Codex completions updated."

Диагностика типичных проблем

Если после установки клавиша Tab ничего не делает, не нужно сразу переустанавливать Codex CLI. Чаще всего генератор отработал правильно, но файл лежит не в том каталоге, не загружается текущей оболочкой или перекрывается другой версией автодополнения.

Симптом Вероятная причина Что проверить
Команда не найдена Codex CLI отсутствует в PATH command -v codex или Get-Command codex
Неизвестная оболочка Значение не поддерживается текущей версией codex completion --help
Файл создан, но подсказок нет Оболочка не загрузила файл Путь, fpath, профиль или пакет completion
Старые подсказки Осталась старая копия скрипта Поиск дубликатов _codex или codex.fish
Ошибка синтаксиса Скрипт предназначен для другой оболочки Соответствие значения <SHELL> оболочке

Начинайте диагностику с самой простой проверки: запустите codex completion <SHELL> напрямую. Если текст выводится без ошибки, генератор работает, и внимание нужно перенести на установку. Затем проверьте фактическое расположение исполняемого файла командой оболочки: иногда в системе установлены несколько версий Codex CLI, и скрипт генерируется не тем бинарным файлом, который запускается в интерактивном терминале.

Практический пример: проверка пути к Codex CLI

Команды ниже помогают убедиться, какой именно исполняемый файл вызывается. Это особенно важно при установке через разные менеджеры пакетов или при наличии пользовательского и системного вариантов.

Bash, Zsh, Fish:
command -v codex
codex --version

PowerShell:
Get-Command codex
codex --version

Практический пример: поиск нескольких файлов автодополнения

Две версии скрипта могут приводить к неожиданному поведению. Например, Zsh найдёт файл в одном каталоге fpath, хотя пользователь редактирует копию в другом.

Поиск пользовательских файлов:
find "$HOME" 
  ( -name "_codex" -o -name "codex.fish" ) 
  -print 2>/dev/null

Проверка Zsh:
print -l $fpath

Практический пример: повторная установка после смены версии

Если подсказки устарели, сгенерируйте файл заново и перезапустите оболочку. Для Zsh иногда дополнительно требуется сбросить кэш функций автодополнения.

codex completion zsh > "$HOME/.zsh/completions/_codex"

Для Zsh:
rm -f "$HOME/.zcompdump"
exec zsh

Для Bash:
exec bash

Для Fish:
exec fish

Рекомендации по безопасной и удобной настройке

Автодополнение обычно не выполняет опасных действий само по себе: оно предлагает текст команды, а запуск происходит только после подтверждения пользователя. Но сгенерированный файл всё равно является исполняемым фрагментом конфигурации оболочки, поэтому не следует подключать файлы неизвестного происхождения. Надёжнее генерировать их локально установленным и проверенным бинарным файлом Codex CLI.

Рекомендация Практический смысл
Генерировать скрипт локально Файл соответствует реально установленной версии
Хранить пользовательские файлы в домашнем каталоге Не нужны права администратора
Не дублировать один и тот же скрипт Меньше конфликтов и путаницы
Обновлять completion после обновления CLI Появляются новые команды и параметры
Проверять профиль перед добавлением строки Избегаются ошибки запуска оболочки
Хранить конфигурацию в резервной копии Настройку проще восстановить на новом компьютере

Если вы используете dotfiles-репозиторий, есть два разумных подхода. Можно хранить уже сгенерированный файл и обновлять его вручную, либо хранить короткую команду установки и создавать скрипт во время настройки новой машины. Второй способ лучше отражает принцип «генерировать из текущей версии», а первый удобнее, если окружение разворачивается без доступа к нужному бинарному файлу на раннем этапе.

Практический пример: установка из скрипта настройки окружения

Такой фрагмент можно включить в личный bootstrap-скрипт. Он создаёт каталог, генерирует файл и не требует ручного копирования больших текстовых блоков.

#!/usr/bin/env bash
set -euo pipefail

completion_dir="$HOME/.local/share/bash-completion/completions"
mkdir -p "$completion_dir"

if command -v codex >/dev/null 2>&1; then
  codex completion bash > "$completion_dir/codex"
  echo "Bash completion installed."
else
  echo "Codex CLI is not installed; completion skipped." >&2
fi

Практический пример: проверка перед перезаписью файла

Если файл уже существует и вы не хотите случайно заменить его, используйте промежуточный результат и сравнение. Это особенно полезно на рабочей машине с тщательно настроенной оболочкой.

target="$HOME/.zsh/completions/_codex"
temporary="$(mktemp)"

codex completion zsh > "$temporary"

if [ -f "$target" ] && cmp -s "$temporary" "$target"; then
  echo "Completion is already up to date."
else
  echo "New completion differs from the installed file:"
  diff -u "$target" "$temporary" || true
fi

rm -f "$temporary"

Краткий алгоритм установки

Несмотря на различия между оболочками, общий порядок действий всегда примерно одинаков. Сначала нужно определить активную оболочку и убедиться, что команда codex доступна. Затем выбирается поддерживаемое значение <SHELL>, результат записывается в правильный файл, а конфигурация оболочки перезагружается.

  1. Проверьте наличие Codex CLI командой codex --version.
  2. Посмотрите поддерживаемые генераторы через codex completion --help.
  3. Выберите значение <SHELL>, соответствующее вашей оболочке.
  4. Создайте пользовательский каталог автодополнений.
  5. Сгенерируйте файл командой codex completion <SHELL>.
  6. Подключите файл согласно правилам Bash, Zsh, Fish, PowerShell или Elvish.
  7. Перезапустите оболочку и проверьте дополнение через codex <TAB>.
  8. После обновления Codex CLI повторите генерацию.
Оболочка Команда генерации Обычно используемое имя файла Что перезапустить
Bash codex completion bash codex Bash или механизм bash-completion
Zsh codex completion zsh _codex Zsh, иногда compinit
Fish codex completion fish codex.fish Fish при необходимости
PowerShell codex completion powershell Профиль или PS-файл Профиль PowerShell
Elvish codex completion elvish Файл конфигурации Elvish Сеанс Elvish

В результате команда codex completion превращает справочную информацию о Codex CLI в практический инструмент ежедневной работы. Один раз правильно разместив сгенерированный файл, пользователь получает более быстрый ввод, меньше опечаток и удобный способ ориентироваться в возможностях текущей версии программы. Главное — использовать скрипт для своей оболочки, обновлять его вместе с Codex CLI и помнить, что генерация и установка являются двумя отдельными шагами.

CIO-NAVIGATOR