Вы всё ещё кликаете мышкой по веб-интерфейсу OpenAI, как будто застряли в 2023-м? А ведь есть способ гораздо круче — официальный CLI. Да-да, тот самый терминал, где живут ваши git commit и npm install, теперь умеет общаться с GPT, генерировать картинки и таскать файлы. И это не какой-то хакерский скрипт с тёмного форума, а настоящий проект от OpenAI под лицензией Apache 2.0.

Ставится всё за пару секунд. Если у вас macOS — просто brew install openai/tools/openai. Любители Go? go install 'github.com/openai/openai-cli/cmd/openai@latest' — и бинарь уже в $HOME/go/bin. Не забудьте добавить путь в PATH, если терминал вдруг начнёт делать вид, что не знает команду. Классика жанра.

Дальше — магия начинается после export OPENAI_API_KEY="sk-...". И вот вы уже пишете:

openai responses create --input "Say this is a test" --model gpt-5.5

Чувствуете? Никакого браузера, никаких вкладок. Только вы, терминал и ответ нейросети. А если нужно сгенерировать картинку — вообще песня:

openai images generate --prompt "A tiny orange robot"

CLI сам сохранит файл в ~/Downloads/gpt-images/ и покажет путь. Котики больше не потеряются в дебрях интернета!

Но погодите, это ещё не всё. Хотите загрузить свой файл? Пожалуйста: openai files upload "мой_доклад.txt" --purpose user_data. Скачать обратно? openai files download file-id --output "копия.txt". Как будто у вас в терминале поселился персональный ассистент-трудоголик.

А ещё CLI дружит с автодополнением. Нажмите Ctrl+X, затем Tab — и он предложит примеры команд или настройки, прямо как умный шпаргалочник. Кстати, обновления проверяются сами (не чаще раза в день), но ничего не ставят без спроса — только вежливо намекают: «Эй, вышла новая версия, может, обновимся?». Хотите тишины — ставьте OPENAI_CLI_NO_UPDATE_CHECK=1.

Для параноиков (в хорошем смысле) есть mutual TLS: можно прикрутить клиентские сертификаты, чтобы каждое соединение было под двойной защитой. Или кастомные заголовки через OPENAI_CUSTOM_HEADERS — чтобы секреты не светились в истории команд. А если вы пайпите JSON из ненадёжного источника, включайте OPENAI_UNTRUSTED_STDIN=1, и CLI перестанет читать файлы по ссылкам @file — вдруг там что-то зловредное?

Ошибки? Они выводятся человеческим языком, а не простынёй JSON. Нужны детали — добавьте --format-error json. Хотите вытащить только код ошибки из длинного ответа? Легко: --transform-error error.code. GJSON-синтаксис вам в помощь.

Короче, если вы живёте в терминале (а кто из нас нет?), этот инструмент — must have. Он не заменит веб-интерфейс для сложных сценариев, но для быстрых запросов, автоматизации и простого удовольствия от командной строки — самое то. Попробуйте. И да пребудет с вами сила --help!