← Практика · 2 сентября 2026
Ставим Codex CLI, входим по подписке ChatGPT и даём Claude команду, которой он спрашивает GPT-5 прямо посреди работы.
6 минут чтенияинструменты

У меня две подписки — ChatGPT и Claude. И долго было обидно: сидишь в Claude Code, хочешь второе мнение по архитектуре, а чтобы спросить GPT, надо открывать браузер, копировать туда код, копировать ответ обратно. Плюс за API-доступ к GPT просят отдельные деньги, хотя подписка уже оплачена.
Оказалось, платить второй раз не нужно. Codex CLI умеет авторизоваться подпиской ChatGPT, а значит, из терминала можно спрашивать GPT-5 столько же, сколько в браузере. Дальше дело техники: обернуть вызов в скрипт и рассказать про него Claude.
Ниже — ровно то, что стоит у меня и работает каждый день.
ask-gpt "оцени этот план миграции, что я упускаю"
cat большой-файл.py | ask-gpt "найди узкие места"
Claude Code запускает эти команды сам, когда я прошу «спроси у GPT». Ответ приходит в сессию, лимит Claude на это не тратится — расходуется подписка ChatGPT.
Нужен Node.js 20 или новее:
npm install -g @openai/codex
codex --version
Если npm ставит глобальные пакеты в системную папку и ругается на права, поставьте локально в домашний каталог и добавьте путь:
npm config set prefix ~/.local/node
export PATH="$HOME/.local/node/bin:$PATH"
codex login --device-auth
Команда покажет короткий код и ссылку. Открываете ссылку в браузере — хоть на телефоне, — вводите код, подтверждаете вход в свой аккаунт ChatGPT. Всё: токен лёг в ~/.codex/auth.json и обновляется сам, повторно входить не нужно.
Это ключевой момент: API-ключ не создаётся и не оплачивается. Работает та же подписка, за которую вы уже платите.
Проверка:
codex exec -s read-only --skip-git-repo-check "Ответь одним словом: привет"
Голый codex exec неудобен: он агентный, печатает служебный лог, ответ приходится выуживать. Заведём скрипт ~/.local/bin/ask-gpt:
#!/usr/bin/env bash
set -euo pipefail
export PATH="$HOME/.local/node/bin:$PATH"
# вопрос: либо аргументом, либо через stdin
PROMPT="${*:-}"
[ -z "$PROMPT" ] && PROMPT="$(cat)"
[ -z "$PROMPT" ] && { echo "ask-gpt: пустой вопрос" >&2; exit 2; }
WORK="$(mktemp -d)"; trap 'rm -rf "$WORK"' EXIT
ANS="$WORK/answer.txt"
codex exec -s read-only --skip-git-repo-check -C "$WORK" -o "$ANS" "$PROMPT" \
>"$WORK/run.log" 2>&1 || { cat "$WORK/run.log" >&2; exit 1; }
# сохраняем копию вопроса и ответа, чтобы потом найти
ARCH="$HOME/gpt-consult/$(date +%Y-%m-%d_%H%M%S).md"
mkdir -p "$(dirname "$ARCH")"
{ echo "## Вопрос"; echo "$PROMPT"; echo; echo "## Ответ"; cat "$ANS"; } > "$ARCH"
cat "$ANS"
echo "[сохранено: $ARCH]" >&2
chmod +x ~/.local/bin/ask-gpt
ask-gpt "Ответь одним словом: работает?"
Три вещи, которые тут не случайны. -s read-only — GPT не может менять файлы, только читать и думать; для консультанта это правильный режим. -C "$WORK" — рабочей папкой становится пустой временный каталог, чтобы агент не бродил по проекту. Ответ уходит в stdout чистым текстом, а путь к архиву — в stderr, чтобы не мешался, если вы направляете вывод в файл.
Claude Code сам не догадается, что у него есть доступ к GPT. Добавьте в ~/.claude/CLAUDE.md (или в CLAUDE.md проекта) несколько строк:
## Второе мнение от GPT — команда `ask-gpt`
Из любой сессии можно спросить GPT-5 (подписка ChatGPT, не API, лимит Claude не тратится):
echo "вопрос или код" | ~/.local/bin/ask-gpt
~/.local/bin/ask-gpt "короткий вопрос"
Когда использовать: ревью кода и архитектуры, второе мнение по спорному решению,
генерация длинных текстов. Нельзя: отправлять персональные данные пользователей.
После этого «спроси у GPT, что он думает про эту схему» работает как обычная просьба.
Длинный вопрос — только через stdin. Аргументом командной строки многострочный текст с кавычками и кодом рано или поздно сломает экранирование, а на паре сотен килобайт вы получите «Argument list too long». Пишите вопрос в файл и передавайте ask-gpt < вопрос.txt.
Не убивайте зависший запрос через pkill -f codex. Шаблон -f ищет по полной командной строке и совпадёт с вашей же командой — убьёте собственную оболочку. Только по точному имени: pkill -x codex, или по конкретному PID.
Ответ идёт одну–три минуты. Codex работает агентно: думает, планирует, потом отвечает. Пустой файл ответа на тридцатой секунде — это не зависание. Ставьте timeout 300 и ждите; в диалоге лучше запускать в фоне.
Лимиты подписки не бесконечны. На потоке из десятков тяжёлых вопросов в час можно упереться в потолок ChatGPT Plus. Для фонового потока запросов дешевле смотреть в сторону OpenRouter — про это будет отдельная заметка.
Три сценария, ради которых всё затевалось.
Ревью чужими глазами. Claude написал модуль — прошу GPT найти в нём дыры. Две модели ошибаются по-разному, и там, где одна уверенно проходит мимо бага, вторая часто спотыкается о него взглядом.
Длинные тексты. Описания, статьи, тексты для сайтов — генерировать их Claude дорого по лимиту. Отдаю в GPT, Claude только правит и вставляет.
Спор двух моделей. Иногда прошу обе оценить одно решение и показать разногласия. Если они спорят — значит, вопрос действительно неоднозначный, и решать его надо мне, а не подбрасыванием монетки.