ChatGPT CLI: Полное руководство по работе с нейросетью из терминала

Узнайте, как использовать ChatGPT и Codex CLI из командной строки. Установка, настройка, интерактивный и пакетный режимы, магические команды, интеграции и автоматизация.

Что такое 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 Hooks

Codex CLI автоматически создаёт Git-контрольные точки до и после задачи, что позволяет легко откатить изменения.

Просмотр статуса сессии:

  • /status — показать текущую конфигурацию.
  • /permissions — выбрать, что Codex может делать.
  • /model — сменить модель и уровень рассуждений.
  • /review — просмотреть изменения и найти проблемы.

Пакетный режим и автоматизация через конвейеры

Пакетный режим позволяет передавать данные в ChatGPT CLI через стандартный ввод (stdin) или аргументы командной строки. Это идеально для автоматизации и интеграции в скрипты.

Примеры использования пакетного режима:

  1. Простой запрос через echo:
echo "Напиши приветствие" | chatgpt
  1. Передача содержимого файла:
cat paper.txt | chatgpt -m "Пожалуйста, суммируй эту статью."
  1. Передача файла как аргумент:
chatgpt -m "Напиши commit message" <(git diff --cached)
  1. Использование с флагом -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:

  1. Работа с локальным репозиторием: Codex может просматривать файлы, вносить изменения и запускать инструменты, установленные на вашей машине.
  1. Контроль над моделью: можно выбирать модель (например, gpt-5.6-sol), уровень рассуждений (reasoning effort), разрешения и команды.
  1. Интеграция с Git: автоматическое создание контрольных точек до и после задачи, возможность отката изменений.
  1. Плагины и скиллы: Codex поддерживает установку плагинов из маркетплейса (более 1700 доступных). Плагины подключают Codex к внешним сервисам: GitHub, Gmail, Google Calendar, Google Drive и другим. Скиллы позволяют упаковывать повторяющиеся инструкции.
  1. Режим ревью: команда /review запускает выделенный обзор изменений без модификации рабочего дерева. Можно проверять незакоммиченные изменения, отдельные коммиты или целые ветки.
  1. Поддержка MCP (Model Context Protocol): Codex может подключаться к MCP-серверам для доступа к дополнительным инструментам и данным.
  1. Неинтерактивный режим: codex exec позволяет запускать задачи из скриптов и CI/CD пайплайнов.
  1. Безопасность: встроенные профили разрешений, песочница, авто-ревью и контроль доступа к интернету.

Пример использования плагинов:

# Установка плагина 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.md

5. Пакетная обработка логов:

cat server.log | openai responses create --model gpt-5.6 --input "Извлеки все IP-адреса и верни в JSON" --format jsonl > ips.jsonl

6. Автоматическое ревью кода в 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 и сохранение в файлы.