Команда codex completion в Codex CLI служит для генерации скриптов автодополнения команд, подкоманд, параметров и значений аргументов для популярных оболочек. Вместо того чтобы каждый раз вспоминать, как называется нужный режим, где находится параметр или какие варианты поддерживает конкретная команда, пользователь нажимает Tab и получает подсказку прямо в терминале.
Автодополнение — это не просто удобная подсказка: оно помогает обнаружить возможности установленной версии Codex CLI и одновременно уменьшает количество опечаток в командах.
Команда codex completion особенно полезна тем, кто регулярно работает с codex, переключается между режимами вроде exec, resume и mcp, использует длинные параметры или запускает CLI в разных окружениях. Скрипт генерируется самой установленной версией Codex CLI, после чего подключается к выбранной оболочке один раз или автоматически загружается при каждом запуске терминала.
- Обзор команды codex completion
- Синтаксис команды codex completion
- Аргумент <SHELL>
- Глобальные параметры и справка
- Как сгенерировать скрипт автодополнения
- Практический пример: проверка сгенерированного текста
- Практический пример: сохранение скрипта во временный файл
- Практический пример: сравнение скрипта после обновления
- Установка в Bash
- Практический пример: установка Bash в пользовательский каталог
- Практический пример: временное подключение Bash
- Установка в Zsh
- Практический пример: установка Zsh через пользовательский каталог
- Практический пример: проверка регистрации функции Zsh
- Установка в Fish
- Практический пример: установка Fish
- Практический пример: временная проверка Fish
- Установка в PowerShell
- Практический пример: временная загрузка в PowerShell
- Практический пример: сохранение в профиль PowerShell
- Установка в Elvish
- Практический пример: генерация файла для Elvish
- Как использовать автодополнение в повседневной работе
- Практический пример: поиск подкоманды
- Практический пример: дополнение параметров
- Практический пример: использование в цепочке команд
- Обновление и поддержка скрипта
- Практический пример: безопасное обновление Zsh-файла
- Практический пример: автоматическое обновление нескольких оболочек
- Диагностика типичных проблем
- Практический пример: проверка пути к Codex CLI
- Практический пример: поиск нескольких файлов автодополнения
- Практический пример: повторная установка после смены версии
- Рекомендации по безопасной и удобной настройке
- Практический пример: установка из скрипта настройки окружения
- Практический пример: проверка перед перезаписью файла
- Краткий алгоритм установки
Обзор команды 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>, результат записывается в правильный файл, а конфигурация оболочки перезагружается.
- Проверьте наличие Codex CLI командой
codex --version. - Посмотрите поддерживаемые генераторы через
codex completion --help. - Выберите значение
<SHELL>, соответствующее вашей оболочке. - Создайте пользовательский каталог автодополнений.
- Сгенерируйте файл командой
codex completion <SHELL>. - Подключите файл согласно правилам Bash, Zsh, Fish, PowerShell или Elvish.
- Перезапустите оболочку и проверьте дополнение через
codex <TAB>. - После обновления 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 и помнить, что генерация и установка являются двумя отдельными шагами.
