Что такое ChatGPT CLI и зачем он нужен
ChatGPT CLI — это инструмент командной строки, который позволяет взаимодействовать с моделями OpenAI (GPT-5.6, GPT-5.1 и другими) без использования веб-интерфейса или графического приложения. Вместо того чтобы открывать браузер и вводить запросы в чат, вы можете отправлять их прямо из терминала, что особенно удобно для разработчиков, системных администраторов и всех, кто привык работать в консоли.
Основные преимущества использования CLI:
- Скорость и эффективность: не нужно переключаться между окнами, все действия выполняются в одном терминале.
- Автоматизация: можно встраивать запросы в скрипты, пайплайны CI/CD и другие автоматизированные процессы.
- Пакетная обработка: легко обрабатывать большие объёмы данных, передавая их через конвейер (pipe).
- Гибкость: поддержка различных форматов вывода (JSON, YAML, pretty-print) и возможность извлекать только нужные поля.
- Интеграция с инструментами разработки: Git, редакторы кода, системы сборки.
Существует несколько реализаций ChatGPT CLI. Официальный инструмент от OpenAI называется Codex CLI (ранее известный как OpenAI CLI). Он предоставляет полный доступ к API Responses, поддерживает работу с файлами, компьютером и веб-контекстом. Также есть сторонние реализации, например chatgpt-cli от kojix2, которые предлагают дополнительные возможности вроде магических команд и шаблонов Mustache.
CLI подходит как для одноразовых запросов, так и для повторяющихся задач, где важна воспроизводимость и контроль над параметрами модели.
Установка ChatGPT CLI: официальный Codex CLI и альтернативы
Установка официального Codex CLI (OpenAI CLI) выполняется несколькими способами.
Для macOS и Linux рекомендуется использовать автономный установщик:
curl -fsSL https://chatgpt.com/codex/install.sh | shПосле установки нужно открыть проектную директорию и запустить codex. При первом запуске потребуется войти в систему через ChatGPT или другой доступный метод аутентификации.
Для Windows можно использовать Homebrew (через WSL) или установить через Go:
go install 'github.com/openai/openai-cli/cmd/openai@latest'Также доступна установка через Homebrew на macOS:
brew install openai/tools/openaiАльтернативный клиент chatgpt-cli от kojix2 устанавливается через Homebrew:
brew install kojix2/brew/chatgpt-cliИли сборкой из исходного кода на Crystal:
git clone https://github.com/kojix2/chatgpt-cli
cd chatgpt-cli
sudo make installПосле установки любого клиента необходимо настроить API-ключ. Для официального CLI используется переменная окружения OPENAI_API_KEY. Для chatgpt-cli также требуется OPENAI_API_KEY, а на Windows дополнительно нужно задать CHATGPT_CLI_CONFIG.
Важно: если ранее был установлен Python SDK OpenAI, его устаревшая команда openai может конфликтовать с новой. Убедитесь, что в PATH используется правильный бинарник.
Аутентификация и настройка окружения
Для работы любого ChatGPT CLI требуется API-ключ OpenAI. Получить его можно в личном кабинете на платформе OpenAI (раздел API keys).
Установка ключа через переменную окружения:
export OPENAI_API_KEY="sk-..."Для административных эндпоинтов используется OPENAI_ADMIN_KEY. SDK автоматически выбирает нужный ключ в зависимости от вызываемого метода.
Смена базового URL: Если вы используете прокси или кастомный эндпоинт (например, для работы с развёртыванием, поддерживающим другой набор моделей), задайте переменную:
export OPENAI_BASE_URL="https://your-custom-endpoint.com"Прокси-сервер (для chatgpt-cli):
export HTTP_PROXY=http://[IP]:[port]
export HTTPS_PROXY=https://[IP]:[port]Настройка конфигурационного файла: Официальный Codex CLI использует файл конфигурации, который можно отредактировать командой codex config --edit. В нём задаются параметры модели, уровень разрешений, правила для Git-контроля и другие опции.
Для chatgpt-cli конфигурация хранится в ~/.config/chatgpt-cli/config.json. Её можно изменить командой chatgpt config --edit или магической командой %config в интерактивном режиме. Файл позволяет настроить шаблоны для встраивания файлов, цвета терминала и извлечение блоков кода.
Сброс конфигурации:
- Codex CLI:
codex config --reset - chatgpt-cli:
chatgpt config --reset
После настройки окружения можно приступать к работе.
Интерактивный режим: общение с нейросетью в терминале
Интерактивный режим позволяет вести диалог с моделью в реальном времени, как в обычном чате, но прямо в командной строке.
Запуск интерактивного режима:
- Для Codex CLI: просто выполните
codexв директории проекта. - Для chatgpt-cli: выполните
chatgpt i.
После запуска появляется приглашение, где можно вводить запросы. Модель отвечает в том же окне терминала.
Особенности интерактивного режима:
- История сообщений: все сообщения сохраняются в рамках сессии. Можно ссылаться на предыдущие ответы.
- Отмена запроса: нажмите
Ctrl+C, чтобы прервать генерацию ответа. - Выход: введите
exit,quitили нажмитеCtrl+D. - Навигация: стрелки вверх/вниз позволяют перемещаться по истории ввода (GNU Readline).
- Перенос строк: в chatgpt-cli перенос строк пока не поддерживается, но в Codex CLI можно вводить многострочные запросы.
Пример сессии в Codex CLI:
$ codex
╭──────────────────────────────────────────────────╮
│ >_ OpenAI Codex │
│ model: gpt-5.6-sol medium /model to change │
│ directory: ~/code/my-app │
╰──────────────────────────────────────────────────╯
› Refactor the Dashboard component to React HooksCodex CLI автоматически создаёт Git-контрольные точки до и после задачи, что позволяет легко откатить изменения.
Просмотр статуса сессии:
/status— показать текущую конфигурацию./permissions— выбрать, что Codex может делать./model— сменить модель и уровень рассуждений./review— просмотреть изменения и найти проблемы.
Пакетный режим и автоматизация через конвейеры
Пакетный режим позволяет передавать данные в ChatGPT CLI через стандартный ввод (stdin) или аргументы командной строки. Это идеально для автоматизации и интеграции в скрипты.
Примеры использования пакетного режима:
- Простой запрос через echo:
echo "Напиши приветствие" | chatgpt- Передача содержимого файла:
cat paper.txt | chatgpt -m "Пожалуйста, суммируй эту статью."- Передача файла как аргумент:
chatgpt -m "Напиши commit message" <(git diff --cached)- Использование с флагом -r (режим ответа):
echo "Всё хорошо. Отдыхай." | chatgpt -rОфициальный Codex CLI также поддерживает неинтерактивный режим через команду codex exec. Это позволяет запускать задачи из скриптов и пайплайнов CI/CD.
Пример использования в CI:
codex exec "Проверь код на уязвимости" --directory ./srcПакетная обработка с JSONL: CLI может извлекать структурированные данные в формате JSONL для последующей обработки в shell:
openai responses create --model gpt-5.6 --input "Извлеки имена из текста" --format jsonlАвтоматизация с Git-хуками: Можно настроить выполнение Codex CLI перед коммитом для автоматического ревью кода или генерации документации.
Магические команды chatgpt-cli для управления сессией
Сторонний клиент chatgpt-cli от kojix2 предоставляет набор магических команд (начинаются с %), которые значительно расширяют возможности управления диалогом.
Основные магические команды:
%clear— очистить все сообщения, начать новую тему, обнулить счётчик токенов.%listили%list[n]— показать список сообщений (или конкретное сообщение по индексу).%pop— удалить последние n сообщений и ответов.%shift— удалить первые n сообщений и ответов.%copy— скопировать n-е сообщение в буфер обмена.%write— сохранить последнее сообщение в файл.%config— открыть конфигурационный файл в редакторе.%system— показать текущее системное сообщение.%system— установить новое системное сообщение.%edit— редактировать данные в формате JSON (можно изменять историю диалога).%html— экспортировать разговор в HTML и открыть в браузере.%save— сохранить сессию в файл.%load— загрузить сохранённую сессию.%resume— восстановить сессию из автосохранённого файла.%model— сменить модель (например,%model gpt-5.1).%tokens— показать количество использованных токенов.%webapp— открыть веб-интерфейс ChatGPT.%debug— показать отладочную информацию.%help— вывести справку по всем командам.
Пример использования:
> %model gpt-5.1
> %system Ты — опытный Python-разработчик.
> Напиши функцию для сортировки списка.Эти команды делают работу в интерактивном режиме более гибкой и позволяют тонко настраивать поведение модели без перезапуска сессии.
Работа с файлами, системными командами и шаблонами
ChatGPT CLI поддерживает встраивание содержимого файлов и результатов выполнения системных команд прямо в запрос. Это особенно полезно для контекстно-зависимых задач.
Встраивание файлов: Используйте синтаксис %{путь/к/файлу}:
Улучши код: %{my/script.py}
Найди ошибки: %{src/*.py}Можно использовать шаблоны с подстановочными знаками.
Встраивание вывода системных команд:
!{команда}— выполнить команду и вставить её stdout и stderr.!!{команда}— выполнить команду, вставить только stdout.%STDOUTи%STDERR— ссылки на захваченный вывод предыдущей команды.
Примеры:
Напиши commit message: !{git diff}
Объясни эту ошибку: %STDERRШаблоны Mustache (экспериментально): chatgpt-cli поддерживает шаблонизацию через crustache. Это позволяет параметризовать запросы:
cat document.txt | chatgpt run -M gpt-5.1 translate.txt -- --language spanishГде translate.txt содержит шаблон: "Переведи следующий текст на {{language}}."
Извлечение блоков кода: После ответа модели блоки кода автоматически извлекаются и сохраняются во временные файлы, доступные через переменные $CODE0, $CODE1 и т.д. Это позволяет сразу выполнять полученный код:
! python $CODE0
! ruby $CODE1Для синтаксической подсветки блоков кода требуется утилита bat. chatgpt-cli поддерживает два уровня подсветки: только для блоков кода или для всего ответа как Markdown.
Codex CLI: продвинутые возможности для разработчиков
Официальный Codex CLI от OpenAI предоставляет значительно больше возможностей, чем просто отправка запросов. Это полноценная среда для разработки с поддержкой агентов, плагинов и автоматизации.
Ключевые возможности Codex CLI:
- Работа с локальным репозиторием: Codex может просматривать файлы, вносить изменения и запускать инструменты, установленные на вашей машине.
- Контроль над моделью: можно выбирать модель (например, gpt-5.6-sol), уровень рассуждений (reasoning effort), разрешения и команды.
- Интеграция с Git: автоматическое создание контрольных точек до и после задачи, возможность отката изменений.
- Плагины и скиллы: Codex поддерживает установку плагинов из маркетплейса (более 1700 доступных). Плагины подключают Codex к внешним сервисам: GitHub, Gmail, Google Calendar, Google Drive и другим. Скиллы позволяют упаковывать повторяющиеся инструкции.
- Режим ревью: команда
/reviewзапускает выделенный обзор изменений без модификации рабочего дерева. Можно проверять незакоммиченные изменения, отдельные коммиты или целые ветки.
- Поддержка MCP (Model Context Protocol): Codex может подключаться к MCP-серверам для доступа к дополнительным инструментам и данным.
- Неинтерактивный режим:
codex execпозволяет запускать задачи из скриптов и CI/CD пайплайнов.
- Безопасность: встроенные профили разрешений, песочница, авто-ревью и контроль доступа к интернету.
Пример использования плагинов:
# Установка плагина GitHub
/codex plugin install github
# Использование в запросе
"Создай PR с этими изменениями"Codex CLI также поддерживает работу с несколькими агентами (subagents), что позволяет делегировать подзадачи и ускорять сложные рабочие процессы.
Сравнение официального Codex CLI и сторонних решений
Выбор между официальным Codex CLI и сторонними клиентами (например, chatgpt-cli от kojix2) зависит от ваших задач и предпочтений.
Официальный Codex CLI (OpenAI CLI):
- Плюсы: полная поддержка API Responses, работа с файлами, компьютером и веб-контекстом; встроенная система плагинов и скиллов; интеграция с Git; режим ревью; поддержка MCP; регулярные обновления от OpenAI.
- Минусы: требует установки через curl или Go; может быть избыточным для простых запросов; привязан к экосистеме OpenAI.
chatgpt-cli от kojix2:
- Плюсы: лёгкий и быстрый; магические команды для управления сессией; встраивание файлов и системных команд; шаблоны Mustache; извлечение блоков кода; синтаксическая подсветка через bat; поддержка буфера обмена.
- Минусы: проект в режиме поддержки (рекомендуется aichat); не поддерживает все возможности API (например, компьютер use); меньше интеграций.
Когда что выбирать:
- Если вам нужна глубокая интеграция с инструментами разработки, автоматизация CI/CD и работа с агентами — выбирайте Codex CLI.
- Если вы хотите лёгкий инструмент для быстрых запросов из терминала с удобным управлением сессией — подойдёт chatgpt-cli.
Оба инструмента поддерживают интерактивный и пакетный режимы, работу с файлами и настройку модели.
Практические примеры использования ChatGPT CLI
Рассмотрим несколько реальных сценариев, где ChatGPT CLI может существенно ускорить работу.
1. Генерация commit message:
git diff --cached | chatgpt -m "Напиши краткое и информативное commit message"2. Рефакторинг кода:
codex "Перепиши этот компонент на React Hooks"3. Объяснение ошибок компиляции:
!gcc main.c 2>&1 | chatgpt -m "Объясни ошибки компиляции и предложи исправления"4. Создание документации:
cat src/*.py | chatgpt -m "Создай документацию в формате Markdown для этого кода" > DOCS.md5. Пакетная обработка логов:
cat server.log | openai responses create --model gpt-5.6 --input "Извлеки все IP-адреса и верни в JSON" --format jsonl > ips.jsonl6. Автоматическое ревью кода в CI:
# .github/workflows/review.yml
- name: Code Review
run: codex exec "Проведи ревью изменений" --directory .7. Перевод документации:
cat README.md | chatgpt run -M gpt-5.1 translate.txt -- --language russian > README.ru.mdГде translate.txt содержит: "Переведи следующий текст на {{language}}. Сохрани форматирование Markdown."
8. Генерация изображений (через API):
openai images create --prompt "Кот в космосе" --output cat.pngЭти примеры показывают, как CLI может быть встроен в повседневные рабочие процессы разработчика.
Вопросы и ответы
Как установить ChatGPT CLI на Windows?
Официальный Codex CLI можно установить через WSL (Windows Subsystem for Linux) с помощью curl-установщика или через Go: go install 'github.com/openai/openai-cli/cmd/openai@latest'. Для стороннего chatgpt-cli требуется установить Crystal и выполнить сборку из исходников. Также обязательно задайте переменную окружения CHATGPT_CLI_CONFIG с путём к директории конфигурации.
В чём разница между Codex CLI и chatgpt-cli?
Codex CLI — официальный инструмент OpenAI с полной поддержкой API, плагинами, Git-интеграцией и режимом ревью. chatgpt-cli — лёгкая сторонняя утилита с магическими командами, встраиванием файлов и шаблонами Mustache. Codex CLI подходит для сложных задач разработки, chatgpt-cli — для быстрых запросов из терминала.
Как передать файл в запрос ChatGPT CLI?
В chatgpt-cli используйте синтаксис %{путь/к/файлу} для встраивания содержимого. В официальном Codex CLI можно передать файл через аргумент или перенаправление stdin: cat file.txt | codex "Проанализируй этот файл". Также поддерживается команда openai responses create --input "..." с подстановкой содержимого файла.
Можно ли использовать ChatGPT CLI в CI/CD пайплайнах?
Да. Официальный Codex CLI поддерживает неинтерактивный режим codex exec, который можно вызывать из скриптов GitHub Actions, GitLab CI и других систем. Также можно использовать openai responses create в shell-скриптах для пакетной обработки данных. Убедитесь, что API-ключ передан через переменную окружения OPENAI_API_KEY.
Как сменить модель в ChatGPT CLI?
В интерактивном режиме Codex CLI используйте команду /model и выберите нужную модель (например, gpt-5.6-sol). В chatgpt-cli используйте магическую команду %model <имя>, например %model gpt-5.1. В пакетном режиме укажите флаг -M или --model: chatgpt -M gpt-5.1 "запрос".
Как сохранить историю диалога в ChatGPT CLI?
В chatgpt-cli используйте команду %save для сохранения сессии и %load для загрузки. Также доступна команда %write для сохранения последнего сообщения. Codex CLI автоматически создаёт Git-контрольные точки, что позволяет отслеживать изменения. Для экспорта в HTML используйте %html .
Какие форматы вывода поддерживает ChatGPT CLI?
Официальный Codex CLI поддерживает форматы: auto, json, jsonl, pretty, raw, yaml, explore. Формат задаётся флагом --format. Также можно извлекать отдельные поля с помощью --transform и GJSON-пути. chatgpt-cli выводит текст в терминал, но поддерживает экспорт в HTML и сохранение в файлы.