Два входи в Codex: акаунт ChatGPT для роботи, API-ключ для скриптів

21 хв. читання

Коротко (TL;DR)

Codex — агент OpenAI, який сам пише і запускає код, — перед першою роботою просить представитися. Автентифікація Codex влаштована як розвилка з двох шляхів: вхід через акаунт ChatGPT і вхід за API-ключем OpenAI. Це не «логін і пароль», а вибір, від якого залежить, з чийого рахунку списуються гроші та які функції вам доступні.

Якщо коротко:

  • Вхід через ChatGPT — команда codex login, відкривається браузер, ви підтверджуєте вхід своїм акаунтом. Codex входить до вашого плану ChatGPT на всіх рівнях — від безкоштовного Free і Go до Plus, Pro, Business, Edu та Enterprise (склад планів станом на 17 липня 2026), окремо платити не треба. Це спосіб за замовчуванням для живої роботи за своїм комп’ютером.
  • Вхід за API-ключем — команда codex login --with-api-key, ключ береться з особистого кабінету OpenAI. Оплата йде за фактом (pay-as-you-go) через ваш акаунт на платформі OpenAI, а не з кредитів плану ChatGPT. Це спосіб для скриптів, серверів і CI/CD.
  • На сервері чи по SSH, де немає браузера, є третій прийом — codex login --device-auth: Codex покаже короткий код, ви вводите його у браузері на телефоні чи іншому пристрої.
  • Перевірити, хто увійшовcodex login status. Вийтиcodex logout.

Один вхід покриває одразу всі локальні поверхні Codex: CLI у терміналі, розширення в редакторі та десктоп-застосунок. А от Codex у хмарі вимагає саме входу через ChatGPT — API-ключ там не працює. Далі розберемо кожен шлях покроково, де фізично лежить токен і як не втратити ключ.

Два способи входу: у чому різниця

Обидва способи ведуть до одного результату — Codex отримує право звертатися до моделей OpenAI від вашого імені. Але за цим правом стоять різні рахунки й різні правила.

Вхід через ChatGPT — це OAuth-авторизація: той самий механізм, за яким ви «входите через Google» на сторонніх сайтах. Ви не віддаєте Codex пароль — браузер підтверджує вашу особу й повертає до термінала тимчасові токени доступу. Витрата списується з лімітів вашого плану ChatGPT, а доступ і зберігання даних підпорядковані правам вашого робочого простору (ролі, retention, політики).

Вхід за API-ключем — це окремий платіжний доступ до платформи OpenAI. Ключ (рядок на кшталт sk-proj-…) прив’язаний до вашої API-організації, і кожен запит Codex тарифікується за стандартними цінами API, а не з підписки. Кредити плану ChatGPT при цьому не витрачаються зовсім — це два незалежні гаманці.

Різниця між входом через підписку й оплатою за фактом — та сама розвилка, що й у сусідніх інструментів: наприклад, у Claude Code вибір між оплатою підписки Claude і доступом за API влаштований за тим самим принципом. Логіка «підписка для роботи руками, ключ для автоматизації» повторюється в усіх агентних асистентів.

Ось як два шляхи співвідносяться за ключовими параметрами:

ПараметрВхід через ChatGPTВхід за API-ключем
Команда входуcodex logincodex login --with-api-key
Як підтверджуєтьсяOAuth у браузері (або --device-auth)ключ sk-proj-… з кабінету OpenAI
Хто платитьліміти вашого плану ChatGPTваш рахунок на платформі OpenAI, за фактом
Окрема оплатане потрібна (входить у план)так, за тарифами API
Політика данихправа й retention робочого простору ChatGPTналаштування вашої API-організації
Codex у хмаріпрацюєне працює (потрібен вхід через ChatGPT)
Коли зручнішежива робота в CLI, IDE, десктопіскрипти, сервери, CI/CD, окремий білінг

Далі — як пройти кожен шлях на практиці.

Як увійти через акаунт ChatGPT

Це спосіб за замовчуванням і рекомендований для щоденної роботи за своїм комп’ютером. Припускаємо, що Codex CLI вже встановлено (якщо ні — почніть зі встановлення; механіка входу однакова на Windows, macOS і Linux).

Крок 1. Запустіть команду входу.

codex login

Якщо ви запускаєте Codex уперше, можна просто набрати codex і вибрати в меню пункт «Sign in with ChatGPT».

Крок 2. Підтвердіть вхід у браузері. Codex піднімає локальний сервер входу на http://localhost (порт випадковий) і сам відкриває браузер на сторінці авторизації OpenAI. У терміналі ви побачите приблизно таке:

Starting local login server on http://localhost:1455.
If your browser did not open, navigate to this URL to authenticate:
https://auth.openai.com/authorize?...

On a remote or headless machine? Use `codex login --device-auth` instead.

Якщо браузер не відкрився сам — скопіюйте посилання з термінала і вставте його вручну.

Крок 3. Увійдіть своїм акаунтом ChatGPT і дозвольте доступ. Після підтвердження браузер поверне вас на сторінку успіху, а в терміналі з’явиться:

Successfully logged in

От і все — Codex готовий до роботи в межах вашого плану. Можна одразу давати завдання:

codex "поясни, що робить цей проєкт"

Вхід на сервері чи по SSH: device-auth

Звичайний codex login розрахований на те, що поряд є браузер. Але якщо ви працюєте на віддаленому сервері, усередині SSH-сесії чи в headless-середовищі без графіки, відкривати локальний браузер нікому — і вхід зависає. Це одна з найчастіших скарг новачків (у репозиторії Codex за нею не одне відкрите обговорення).

Рішення — авторизація за кодом пристрою:

codex login --device-auth

Codex покаже короткий код і посилання:

Visit https://auth.openai.com/activate
Enter code: ABCD-EFGH

Відкрийте це посилання на будь-якому пристрої з браузером — телефоні, ноутбуці — введіть код, увійдіть акаунтом ChatGPT і підтвердіть доступ. Поверніться до термінала сервера: там з’явиться Successfully logged in. Далі Codex на віддаленій машині працює як зазвичай. Той самий прийом виручає, якщо браузер на локальній машині з якихось причин не відкривається.

Як увійти за API-ключем

Цей шлях потрібен, коли Codex має працювати без вашої участі (у скрипті, на сервері, у конвеєрі CI) або коли ви хочете тримати витрати окремим рахунком за API. Ключ виступає й логіном, і паролем одночасно, тому поводитися з ним треба як з паролем.

Крок 1. Отримайте ключ у кабінеті OpenAI. Зайдіть до розділу ключів на платформі (https://platform.openai.com/api-keys) і створіть новий секретний ключ. Він має вигляд sk-proj-… і показується лише один раз — скопіюйте одразу й не вставляйте потім у листування, тикети чи скріншоти.

Крок 2. Перевірте, під ким ви зараз увійшли. Корисно перед зміною акаунта переконатися, що не перезапишете чужу сесію:

codex login status

Якщо вивід показує зайвий акаунт — вийдіть (codex logout) перед завантаженням нового ключа.

Крок 3. Передайте ключ у Codex через стандартний ввід (stdin). Тут важлива деталь безпеки: Codex не приймає ключ як аргумент команди. Ключ подається лише через stdin — щоб він не залишився в історії оболонки (~/.bash_history, ~/.zsh_history), звідки його легко підгледіти.

Найакуратніший спосіб — спершу покласти ключ у змінну середовища, потім «пропустити» її в команду входу:

export OPENAI_API_KEY="sk-proj-…"
printenv OPENAI_API_KEY | codex login --with-api-key

У терміналі з’явиться:

Reading API key from stdin...
Successfully logged in

Можна передати ключ і з файлу (cat api-key.txt | codex login --with-api-key). Варіант echo "sk-proj-…" | codex login --with-api-key теж працює, але вписаний прямо в команду ключ знову потрапляє в історію — на спільній машині так краще не робити.

Крок 4. Перевірте, що увійшли саме за ключем:

codex login status
Logged in using an API key - sk-proj-***ABCD1

Хвіст ключа замаскований — це нормально. Якщо рядок про API-ключ на місці, вхід пройшов.

Крок 5. Приберіть ключ з відкритої змінної, якщо він більше не потрібен у цій сесії:

unset OPENAI_API_KEY

Codex при цьому із системи не вийде: він уже зберіг вхід локально у своєму кеші. Скидання змінної просто прибирає відкриту копію ключа з поточної оболонки.

Окремо варто тримати в голові різницю трьох змінних, які легко переплутати. OPENAI_API_KEY — та, що ви подаєте на вхід під час логіну. CODEX_API_KEY — ключ на один неінтерактивний запуск codex exec, а не постійний вхід. CODEX_ACCESS_TOKEN — токен доступу ChatGPT для довіреної автоматизації (подається через codex login --with-access-token). Нижче розберемо їх таблицею.

Де який спосіб застосовувати

Метод входу варто обирати під завдання, а не «раз і назавжди». Просте дерево рішень:

  • Працюєте руками в терміналі, редакторі чи десктоп-застосунку на своєму комп’ютері → вхід через ChatGPT (codex login). Нічого понад підписку не платите, доступні всі можливості плану.
  • Codex потрібен у хмарі (хмарні завдання, готовий pull request) → лише вхід через ChatGPT. API-ключ хмара не приймає.
  • Працюєте на віддаленому сервері чи по SSH → вхід через ChatGPT, але за кодом пристрою (codex login --device-auth).
  • Codex запускається у скрипті, конвеєрі CI/CD чи на автоматичному раннері → вхід за API-ключем. Це офіційно рекомендований спосіб для автоматизації.
  • Потрібен окремий, передбачуваний рахунок за фактом використання (не хочете витрачати ліміти плану) → вхід за API-ключем.

Суть розвилки: вхід через ChatGPT — «я, жива людина, працюю в межах своєї підписки»; вхід за API-ключем — «програма працює від імені моєї API-організації і платить за лічильником». У сусідніх агентів логіка та сама — якщо ви вже налаштовували доступ, встановлюючи Claude Code, схема «акаунт для інтерактиву, ключ для скриптів» буде знайомою.

Де зберігається вхід і як ним керувати

Після успішного входу Codex кешує дані й перевикористовує їх під час наступних запусків — заново авторизуватися щоразу не треба. Важливо розуміти, де саме лежить цей кеш.

За замовчуванням Codex зберігає вхід локально: або в простому текстовому файлі ~/.codex/auth.json, або в системному сховищі облікових даних операційної системи. Файл auth.json — це плейнтекст: усередині лежать токени доступу. Поводитися з ним треба як з паролем.

Каталог зберігання задає змінна CODEX_HOME (за замовчуванням ~/.codex). А способом зберігання керує параметр cli_auth_credentials_store у файлі конфігурації config.toml:

# file | keyring | auto
cli_auth_credentials_store = "keyring"
  • file — зберігати в auth.json усередині CODEX_HOME;
  • keyring — зберігати в системному сховищі (Keychain на macOS, Secret Service на Linux, Credential Manager на Windows);
  • auto — брати системне сховище, якщо воно доступне, інакше відкочуватися на auth.json.

На спільній чи робочій машині надійніше переключитися на keyring, щоб токени не лежали відкритим файлом.

Ще одна деталь: CLI і розширення для редактора ділять один і той самий кеш входу. Якщо ви вийшли (codex logout) в одному з них — під час наступного запуску другого теж доведеться увійти заново.

Для входу через ChatGPT є приємний бонус: Codex сам оновлює токени до завершення терміну. У поточному відкритому клієнті сесія вважається застарілою приблизно через 8 днів, і Codex оновлює її під час чергового запуску — активна робота зазвичай не вимагає повторного входу через браузер.

Змінні середовища, що відповідають за вхід

Частина поведінки входу керується змінними середовища. Їх легко переплутати, тож ось призначення кожної:

ЗміннаДе використовуєтьсяНавіщо
OPENAI_API_KEYвхід за ключемключ, який ви подаєте в codex login --with-api-key; експортуєте і «пропускаєте» в команду через stdin
CODEX_API_KEYлише codex execключ на один неінтерактивний запуск; задається рядково, не постійний вхід
CODEX_ACCESS_TOKENCLI, довірена автоматизаціятокен доступу ChatGPT/Codex; для постійного входу подається в codex login --with-access-token
CODEX_HOMECLI, розширення, інсталяторикаталог стану Codex (конфіг, вхід, логи); за замовчуванням ~/.codex
CODEX_CA_CERTIFICATEHTTPS і вхідшлях до власного CA-сертифіката для корпоративних мереж із TLS-перехопленням

Перевірити, вийти і змінити акаунт

Три команди закривають усе керування сесією.

Перевірити поточний вхід:

codex login status

Можливі відповіді: Logged in using ChatGPT, Logged in using an API key - sk-proj-***… або Not logged in.

Вийти:

codex logout
Successfully logged out

Дані входу видаляються з ~/.codex/. Щоб знову користуватися Codex, треба авторизуватися заново.

Змінити акаунт або спосіб входу — це просто зв’язка: codex logout, потім потрібний codex login (через ChatGPT) чи codex login --with-api-key (за ключем). Окремої команди «перемкнути акаунт» немає — вихід і повторний вхід і є перемиканням.

Вхід у CI/CD і на автоматичному раннері

Для конвеєрів збірки правило просте: використовуйте API-ключ. Ключ кладуть у секрети CI (GitHub Actions, GitLab CI) і подають на вхід тим самим способом через stdin.

# GitHub Actions
- name: Login to Codex
  run: echo "${{ secrets.OPENAI_API_KEY }}" | codex login --with-api-key
# GitLab CI
script:
  - echo "$OPENAI_API_KEY" | codex login --with-api-key
  - codex exec "прожени тести"

Є й просунутий шлях — працювати в CI під своїм акаунтом ChatGPT (коли потрібні саме можливості робочого простору, а не голий API). Тоді auth.json один раз створюють на довіреній машині через codex login, кладуть у сховище секретів і підкладають раннеру. Тонкість: Codex сам оновлює токени в цьому файлі (сесія «застаріває» приблизно за 8 днів), тому не можна перезаписувати оновлений auth.json початковим секретом на кожному прогоні — інакше викинете свіжі токени, які Codex щойно записав. Цей прийом OpenAI позначає як «для довіреної приватної інфраструктури» і прямо не радить для публічних та open-source репозиторіїв. Для більшості конвеєрів достатньо API-ключа.

Безпека і ризики: як не втратити доступ і гроші

Автентифікація — це саме та точка, де необережність коштує грошей. Головні ризики входу і що з ними робити:

  • API-ключ = доступ до вашого рахунку. Ключ, що витік до публічного репозиторію, — це чужі витрати за вашим тарифом API. Ніколи не комітьте ключ, не вставляйте його в тикети, чати й скріншоти. Саме тому Codex приймає ключ лише через stdin, а не аргументом — щоб він не осів в історії команд.
  • ~/.codex/auth.json — це пароль у відкритому вигляді. Файл містить токени доступу. Не додавайте його в git, не копіюйте в логи й публічні артефакти. На спільній машині переключіть зберігання на системний keyring (cli_auth_credentials_store = "keyring").
  • .env у проєкті — до .gitignore. Якщо зберігаєте OPENAI_API_KEY у файлі .env проєкту, додайте .env до .gitignore першою справою. Codex вміє підхоплювати змінні з .env, але й git підхопить його так само охоче, якщо не заборонити.
  • Права на файли. На Unix-системах розумно обмежити доступ: chmod 700 ~/.codex і chmod 600 ~/.codex/auth.json, щоб читати їх міг лише власник.
  • Спосіб входу змінює політику даних. Вхід через ChatGPT підпорядкований правам і retention вашого робочого простору; вхід за API-ключем — налаштуванням API-організації. Для командної роботи це не дрібниця: обирайте вхід свідомо, а не «аби залогінитися».

Окремо про гроші: вхід через ChatGPT і вхід за ключем — два різні гаманці. Легко думати, що «вже плачу за Plus, отже API безкоштовно» — ні. Ключ тарифікується за API окремо, і у скрипті, який ганяє Codex у циклі, рахунок росте непомітно. Якщо рахуєте витрати — тримайте в голові, з якої кишені зараз платить Codex.

Типові помилки входу і як їх виправити

СимптомПричинаЩо робити
codex login зависає, браузер не відкриваєтьсянемає графіки/браузера (сервер, SSH, headless)увійти за кодом пристрою: codex login --device-auth
Посилання входу не відкривається із SSH-сесіїлокальний порт входу недоступний ззовніcodex login --device-auth і відкрити посилання на своєму пристрої
«No API key was provided» під час --with-api-keyOPENAI_API_KEY не задана чи не експортованаexport OPENAI_API_KEY="sk-…", потім printenv OPENAI_API_KEY \| codex login --with-api-key
«Invalid API key»ключ з одруком, відкликаний чи простроченийперевірити/створити ключ заново в кабінеті OpenAI; ключ починається з sk- або sk-proj-
Вхід не зберігається між запускамизбій зі сховищем облікових данихперевірити codex login status; за потреби задати cli_auth_credentials_store в config.toml
Codex у хмарі не пускає за ключемхмара вимагає вхід через ChatGPTувійти через codex login (OAuth), API-ключ для хмари не підходить
Permission denied до збереженого входунадто суворі/зламані права каталогуchmod 700 ~/.codex і chmod 600 ~/.codex/auth.json

FAQ

Чи треба платити окремо за вхід у Codex? Ні, якщо ви входите через акаунт ChatGPT: Codex входить до вашого плану ChatGPT на будь-якому рівні — від безкоштовного Free до Enterprise, окремої підписки на Codex немає. Окрема оплата виникає лише під час входу за API-ключем — там витрата тарифікується за цінами API понад (чи замість) підписки.

Чи можна увійти в Codex без браузера? Так. На сервері, по SSH чи в headless-середовищі використовуйте codex login --device-auth: Codex покаже код, ви вводите його у браузері на будь-якому іншому пристрої. Це той самий вхід через ChatGPT, просто підтвердження переноситься на пристрій із браузером.

Де Codex зберігає дані входу? За замовчуванням — у файлі ~/.codex/auth.json (відкритий текст із токенами) або в системному сховищі облікових даних. Каталог задає змінна CODEX_HOME, спосіб зберігання — параметр cli_auth_credentials_store в config.toml (file, keyring чи auto).

Як перейти з API-ключа на акаунт ChatGPT? Вийдіть командою codex logout, потім увійдіть заново через codex login. Окремої команди перемикання немає — вихід і новий вхід і є зміною способу. Перевірити поточний стан завжди можна через codex login status.

Codex CLI і розширення в редакторі — це два різні входи? Ні, вони ділять один кеш входу. Авторизувалися в одному — другий теж увійде; вийшли з одного — другий під час наступного запуску попросить увійти знову.

Що буде, якщо мій API-ключ витече? Ключ — це платіжний доступ до вашого акаунта OpenAI, тому його можуть використати за ваш рахунок. За підозри на витік одразу відкличте ключ у кабінеті OpenAI і створіть новий. Щоб цього не сталося, не комітьте ключ і auth.json у git, тримайте .env у .gitignore і передавайте ключ лише через stdin.

Курс «OpenAI Codex: агентний кодинг» · модуль «Старт і доступ». Повна програма і два маршрути навчання — на сторінці курсу.

Попередній урок: Доступ і тарифи: плани ChatGPT, оплата · Наступний урок: Перший запуск: перша задача за 15 хвилин

Поділитися
Зв'язатися:
Крипто- та data-аналітик, інженер-програміст (факультет комп'ютерних наук ХНУРЕ). В IT з 2008 року: адміністрував корпоративний моніторинг у «Vodafone Україна», сім років розробляв і просував веб-проєкти, п'ять років керував маркетингом на метриках — конверсія, CTR, ROI, LTV.Криптовалютними ринками займаюся з 2021 року: ончейн-метрики, токеноміка, макроекономічні індикатори. Розробив власну data-driven модель аналізу ринку на 30+ метрик. Стек — Python (pandas, NumPy, SciPy, matplotlib), математична статистика та EDA; збір і звірку даних автоматизую AI-агентами.Принцип — «Don't trust, verify»: кожна цифра перевірена за першоджерелом, ключові — щонайменше за двома незалежними; прогнози — лише сценарії з умовами. Теза без даних не публікується.