22 października przed południem wątek zatytułowany po prostu „OpenAI CLI” zbierał na Hacker News 145 punktów, licząc przy moim odczycie z wieczora. To oficjalny klient REST API OpenAI na linię poleceń: repozytorium openai/openai-cli istnieje na GitHubie od 1 maja 2026, ale dopiero ostatnia doba rozkręciła tempo, bo między 21 a 22 października wyszły trzy wydania, w tym v1.40.2 opublikowane 22 października o 03:31 UTC. Samo narzędzie jest darmowe, otwarte na licencji Apache-2.0 i napisane w Go. Repozytorium miało przy moim odczycie 921 gwiazdek oraz 82 forki.
Opisuję tu, co to narzędzie robi, jak je zainstalować i czym różni się od Codexa oraz od zwykłego curla. Zakres sprawdzenia podaję uczciwie: pobrałem binarkę v1.40.2 dla linux-amd64 z GitHub Releases, przejrzałem helpy całej struktury komend, policzyłem tokeny tokenizerem, który działa w całości offline, i raz wywołałem komendę bez klucza, żeby zobaczyć komunikat błędu. Na prawdziwym koncie API nie uruchomiłem niczego, więc o cenach piszę bez liczb, a nie z pamięci.
- Najważniejsze informacje
- Jak zainstalować OpenAI CLI
- Jak działają komendy: zasoby zamiast luźnych flag
- Co dzieje się przy pierwszym uruchomieniu
- Tokenizer bez klucza i komenda o Codexie
- OpenAI CLI a Codex i curl
- Co mówią krytycy na Hacker News
- Co z tego dla Polski
- Najczęstsze pytania
Jedno rozróżnienie od razu, bo o nie pytali już komentujący. Jeśli szukasz agenta do pracy z kodem, jakim jest Gemini CLI od Google, to odpowiednik OpenAI nazywa się Codex. OpenAI CLI to co innego: cienka, oficjalna nakładka na endpointy REST dla ludzi, którzy mają klucz API i chcą go używać z terminala albo ze skryptu.
Najważniejsze informacje
| Co | Szczegóły (odczyty z 22.10.2026) |
|---|---|
| Czym jest | oficjalny klient REST API OpenAI w terminalu, open source |
| Licencja i cena narzędzia | Apache-2.0, 0 zł; wywołania rozliczane osobno kluczem API |
| Wymagania | klucz API z platformy OpenAI w zmiennej OPENAI_API_KEY, nie subskrypcja ChatGPT |
| Instalacja | brew install openai/tools/openai na macOS albo go install z Go 1.26+ |
| Wersja | v1.40.2 z 22.10.2026 03:31 UTC; trzy wydania w ciągu 21-22.10 |
| Technologia | Go, binarka linux-amd64 około 59 MB, repo od 1.05.2026 |
| Działa bez klucza | helpy, tokenizer offline oraz komenda z instrukcjami Codexa |
| Aktualizacje | tylko ręczne; sprawdzanie dostępności maks. raz dziennie, limit 200 ms |
Jak zainstalować OpenAI CLI
Na macOS najkrótsza droga prowadzi przez Homebrew: brew install openai/tools/openai. Gdzie indziej wystarczy Go w wersji 1.26 albo nowszej i komenda go install 'github.com/openai/openai-cli/cmd/openai@latest', po której binarka ląduje w katalogu $HOME/go/bin. Z mojej maszyny mam praktyczną ciekawostkę: lokalne Go 1.22 nie zablokowało instalacji, bo narzędzie samo dociągnęło toolchain 1.26.10 i skompilowało v1.40.2. Kto nie chce kompilować, ten bierze gotowe pakiety z każdego wydania na GitHubie: dla Linuksa tar.gz, deb oraz rpm, dla macOS i Windows zipy, są też warianty arm64.
Po instalacji klucz ustawiasz zmienną środowiskową OPENAI_API_KEY, wygenerowany na stronie organizacji na platformie OpenAI. Endpointy administracyjne wymagają osobnego klucza admina w OPENAI_ADMIN_KEY. Przeglądanie helpów nie potrzebuje ani klucza, ani sieci, co potwierdza help główny zdaniem „Help needs no API key or internet”.
Jak działają komendy: zasoby zamiast luźnych flag
Struktura wygląda znajomo dla każdego, kto używał gh albo kubectl: najpierw zasób, potem ewentualny podzasób, na końcu akcja z flagami. Lista modeli to openai models list, wygenerowanie obrazu openai images generate --prompt "A tiny orange robot", a klasyczne zapytanie do modelu openai responses create --input "Say this is a test" --model gpt-5.5. Wszystkie trzy przykłady pochodzą z README oraz z helpów, które mam zapisane z lokalnego uruchomienia.
Help dzieli grupy tematycznie. Generate Content zbiera responses dla odpowiedzi modeli, chat dla uzupełnień czatu oraz images dla obrazów, a obok nich siedzą audio wraz z videos. W Data and Retrieval wchodzą files do wysyłania plików oraz vector-stores do indeksowania ich treści, a grupa Models and Jobs zawiera models, obok fine-tuning oraz batches. Jest jeszcze Administration pod klucz admina, sekcja Beta API i dwie komendy lokalne, opisane niżej.
Domyślnie odpowiedzi drukują się jako czytelny tekst także w pipe’ach, więc do parsowania w skryptach włączasz --format jsonl, a fragment wyniku wycina flaga --transform ze składnią GJSON. Flagą --base-url skierujesz ruch na własny endpoint HTTPS, z wyjątkiem dla localhosta; jeśli prowadzisz własny proxy do modeli LLM, CLI podepniesz pod niego bez patchowania.
Mój test bez klucza skończył się wzorowo: openai models list zwróciło czytelny komunikat „HTTP 401: Unauthorized” z identyfikatorem żądania, podpowiedzią sprawdzenia klucza oraz adresu komendy konfiguracyjnej, a dla maszyn przewidziano --format-error json. Do tego obrazy: komenda zapisuje wyniki w ~/Downloads/gpt-images/, drukuje ścieżki, a bez jawnego modelu przy zapisie wybiera gpt-image-2.5-sunburst. Starsza akcja create-variation została już wycofana, co zapowiada wątek o cyklu życia endpointów.
Co dzieje się przy pierwszym uruchomieniu
Interaktywna praca ma jedną pułapkę. Przy pierwszym kwalifikującym się uruchomieniu CLI po cichu dopisuje do profili Bash, zsh oraz fish skróty Tab otwierające interaktywny picker obrazów, a nowy skrót złapie się dopiero w świeżo otwartym terminalu. Bash wymaga wersji 4.3 lub nowszej, PowerShell zachowuje zwykłe uzupełnianie i tam pickera otwiera Enter po komendzie generującej. Dokumentacja opisuje zabezpieczenia: ustawianie czeka maksymalnie 250 ms, pomija CI oraz konta roota, stary profil ląduje w kopii w katalogu .openai-picker-recovery-*, a całość wycofasz jedną komendą openai @completion zsh --uninstall-picker.
Aktualizacje instalują się wyłącznie ręcznie. Gołe openai zagląda maksymalnie raz dziennie do publicznych metadanych wydań GitHuba, czeka najwyżej 200 ms, a najwyżej raz na siedem dni dopisuje pod tekstem helpu zwykły tekstowy dopisek o nowszej wersji i nic więcej. Cały mechanizm wyłączasz zmienną OPENAI_CLI_NO_UPDATE_CHECK=1, a instalacja Homebrew dostaje podpowiedź brew upgrade --cask openai/tools/openai. To rzadkie dzisiaj podejście: narzędzie nie grzebie samo w sobie bez pytania.
Tokenizer bez klucza i komenda o Codexie
Dwie funkcje działają całkowicie lokalnie. Tokenizer liczy tokeny offline i to dla mnie najmilsza niespodzianka tego narzędzia: polskie zdanie „Sztuczna inteligencja zmienia sposób, w jaki piszemy kod i teksty.” ma 67 bajtów i 21 tokenów w kodowaniu o200k_base, tyle pokazał mój pomiar z 22.10. Interaktywny edytor przyjmuje do 1 MiB tekstu, podświetla granice tokenów i pokazuje ich bajty, a obok domyślnego kodowania dostępny jest starszy cl100k_base z ery GPT-4. Dokumentacja zastrzega przy tym ważną rzecz: liczba tokenów z czystego tekstu to nie jest rozliczenie zapytania, bo doliczają się instrukcje systemowe oraz narzut endpointu. Liczenie po stronie serwera to responses input-tokens count, już z kluczem.
Drugą komendą lokalną jest openai codex: drukuje instrukcje instalacji oraz linki dla osobnego narzędzia Codex i niczego nie instaluje. Samo jej istnienie w helpie potwierdza, że OpenAI utrzymuje te dwa produkty rozdzielone.
OpenAI CLI a Codex i curl
Najciekawsza wymiana w wątku HN zaczyna się od pytania użytkownika mi_lk: kiedy używać tego zamiast Codexa i czy to narzędzie do wołania przez inne agenty. Odpowiedź komentującego imdsm ma dwie linie i trafia w sedno: „Codex = agent harness” oraz „OpenAI CLI = wrapper around API”. Po polsku: Codex to agent pracujący w repozytorium, czytający pliki i uruchamiający polecenia, a CLI odwzorowuje endpointy REST jeden do jednego, bez własnej pętli rozumowania. Dyskusję podbił theanonymousone z „aka curl?”, na co BikiniPrince odpowiedział, że to curl z licznikiem zużycia tokenów, więc lepszy. mohsen1 dorzucił z praktyki, że jemu gh zastępuje klejenie zapytań curl znacznie lepiej, nawet z pomocą modeli.
W praktyce różnica sprowadza się do rozliczenia i kontroli. CLI posługuje się kluczem API z platformy, więc nie dotyka subskrypcji ChatGPT, o co w wątku pytał albert_e, a każde wywołanie płacisz osobno. Ktoś, kto chce agenta, niech zostanie przy Codexie; kto chce deterministycznego klienta do skryptów oraz metadanych organizacji, ten właśnie dostał oficjalne narzędzie.
Co mówią krytycy na Hacker News
Najgłośniejszy zarzut rzucił throw20261022: ostrożnie z wchodzeniem głęboko w narzędzia OpenAI, bo firma rzekomo wycofuje prawie wszystko w mniej niż dwa lata, czasem bez formalnego zawiadomienia. Ten sam komentujący uznał ostatnie produkty za silnie vibecodowane bez porządnego przeglądu, a administrację za blokującą zgłaszających problemy zamiast je naprawiać. To opinia jednej osoby, nie raport, ale w wątku przypadła do ogólnego nastroju. isodev narzekał na chaos nazewniczy („wasn’t codex the openai cli?”), Yokolos opisał, jak w miesiąc zastąpił aplikację Codex własnym zamiennikiem pisanym w trybie vibe coding, a Lucasoato nie mógł uruchomić trybu live w nowej aplikacji ChatGPT na macOS.
Między tym sentymentem a kodem jest wyraźna różnica. Trzy wydania w ciągu doby, 20 plików dokumentacji w katalogu docs oraz czytelne komunikaty błędów wyglądają na porządnie utrzymany projekt. Z drugiej strony kultura wycofywania funkcji to nie plotka: w samym helpie obrazów widać sekcję RETIRED COMMANDS, a akcja create-variation już tam trafiła.
Co z tego dla Polski
Narzędzie jest darmowe i z Polski działa identycznie jak zewsząd: interfejs to angielskie komendy, dokumentacja jest po angielsku, żadnych lokalizacji nie ma. Prawdziwy koszt siedzi w rozliczeniu API według cennika platformy, którego przy pisaniu nie odczytałem do liczb, bo strona cenowa renderuje się wyłącznie w przeglądarce z JavaScriptem. Uwaga dla wyszukujących: podpowiedź Google „openai clip” dotyczy modelu wizyjnego CLIP do rozumienia obrazów, a nie tego CLI, choć frazy różnią się jedną literą.
Z darmowej strony najprzydatniejszy jest tokenizer: policzy tokeny polskiego promptu offline, bez konta i bez opłat, więc do szacowania długości zapytań wystarczy sama binarka.
Najczęstsze pytania
Jak zainstalować OpenAI CLI?
Na macOS komendą brew install openai/tools/openai. Z Go 1.26 lub nowszym przez go install 'github.com/openai/openai-cli/cmd/openai@latest', przy czym binarka trafi do katalogu $HOME/go/bin. Dla Linuksa i Windows w każdym wydaniu czekają gotowe pakiety, w tym deb wraz z rpm oraz warianty arm64.
Czy OpenAI CLI jest darmowe?
Samo narzędzie tak: licencja Apache-2.0, kod publicznie na GitHubie, zero opłat za pobranie. Płatne są wywołania API rozliczane kluczem z platformy OpenAI. Helpy oraz tokenizer działają bez konta.
OpenAI CLI a klient Python?
To dwa narzędzia do tego samego API. Klient Python to biblioteka do osadzania w kodzie aplikacji, a CLI pracuje w terminalu oraz skryptach powłoki. Do jednorazowych zadań i automatyzacji wygodniejsze bywa CLI, do budowania własnego oprogramowania biblioteka.
Ile kosztuje korzystanie z OpenAI CLI?
Narzędzie kosztuje zero złotych, ale każdy płatny endpoint rozlicza się kluczem API według cennika platformy. Konkretnych liczb tu nie podaję, bo cennika nie udało mi się odczytać bez przeglądarki, a zgadywanie cen zostawiam innym.
Czy „openai cli” i „openai clip” to to samo?
Nie. CLI to interfejs wiersza poleceń opisany w tym tekście, a CLIP to model OpenAI łączący obrazy z tekstem. Wyszukiwarka miesza obie frazy, bo różnią się jedną literą.
Źródła
- Repozytorium openai/openai-cli: README (instalacja, struktura komend, zmienne środowiskowe, image picker), odczyt: https://github.com/openai/openai-cli
- Dokumentacja repo image-picker-shell-setup.md (skróty Tab, zabezpieczenia setupu), odczyt: https://github.com/openai/openai-cli/blob/main/docs/image-picker-shell-setup.md
- Dokumentacja repo local-utilities.md (tokenizer offline, kodowania, limit 1 MiB), odczyt: https://github.com/openai/openai-cli/blob/main/docs/local-utilities.md
- Wydanie v1.40.2 (data publikacji 22.10.2026 03:31 UTC, pakiety binarne), odczyt: https://github.com/openai/openai-cli/releases/tag/v1.40.2
- Wątek Hacker News „OpenAI CLI” (145 punktów przy odczycie; komentarze mi_lk, imdsm, theanonymousone, BikiniPrince, mohsen1, throw20261022), odczyt: https://news.ycombinator.com/item?id=50191507
- Metadane repozytorium przez GitHub API (gwiazdki, forki, licencja, data utworzenia 2026-05-01), odczyt: https://api.github.com/repos/openai/openai-cli
- Strona cennika platformy OpenAI (SPA, ceny nieodczytane bez JavaScriptu), odczyt: https://platform.openai.com/pricing
- Ustawienia kluczy API organizacji na platformie OpenAI, odczyt: https://platform.openai.com/settings/organization/api-keys
