Коротко (TL;DR)
Codex — агент OpenAI, який сам пише і запускає код, — перед першою роботою просить представитися. Автентифікація Codex влаштована як розвилка з двох шляхів: вхід через акаунт ChatGPT і вхід за API-ключем OpenAI. Це не «логін і пароль», а вибір, від якого залежить, з чийого рахунку списуються гроші та які функції вам доступні.
- Коротко (TL;DR)
- Два способи входу: у чому різниця
- Як увійти через акаунт ChatGPT
- Як увійти за API-ключем
- Де який спосіб застосовувати
- Де зберігається вхід і як ним керувати
- Перевірити, вийти і змінити акаунт
- Вхід у CI/CD і на автоматичному раннері
- Безпека і ризики: як не втратити доступ і гроші
- Типові помилки входу і як їх виправити
- FAQ
Якщо коротко:
- Вхід через 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; експортуєте і «пропускаєте» в команду через stdinCODEX_API_KEYлише codex execключ на один неінтерактивний запуск; задається рядково, не постійний вхід CODEX_ACCESS_TOKENCLI, довірена автоматизація токен доступу ChatGPT/Codex; для постійного входу подається в codex login --with-access-tokenCODEX_HOMECLI, розширення, інсталятори каталог стану Codex (конфіг, вхід, логи); за замовчуванням ~/.codexCODEX_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-key | OPENAI_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 хвилин
