Przejdź do głównej zawartości

Aplikacja desktopowa Codex to graficzny klient agenta Codex na macOS i Windows: jedno okno, w którym działa kilka wątków na projekt, każdy w twoim checkoucie, w Git worktree albo w środowisku chmurowym. Aplikacja dzieli katalog ~/.codex/ z CLI i rozszerzeniem IDE. Równoległe wątki opłacają się tylko wtedy, gdy każdy kończy się bramkami, które da się sprawdzić.

Masz trzy zadania w jednej funkcji: zmianę interfejsu, testy do niej i dokumentację. W terminalu robiłbyś je po kolei albo żonglował trzema powłokami z nadzieją, że nie edytują tych samych plików. W aplikacji uruchomisz wszystkie trzy przed obiadem, ale wrócisz do trzech diffów, trzech podsumowań z „gotowe” i żadnego szybkiego sposobu, by sprawdzić, które mówi prawdę. Ta strona jest dla developera, który codziennie pracuje w aplikacji, i dla tech leada, który chce, by wątki zespołu w aplikacji trzymały ten sam poziom co praca w terminalu.

Co daje ci sprawdzalna praca równoległa w aplikacji Codex

Dział zatytułowany „Co daje ci sprawdzalna praca równoległa w aplikacji Codex”
  • Tabelę decyzyjną: kiedy wątek ma działać lokalnie, w worktree, a kiedy w chmurze.
  • Wzorzec trzech wątków dla jednej funkcji z promptami do skopiowania, które kończą się dowodami, a nie podsumowaniem.
  • Procedurę weryfikacji, która sprawdza każdy wątek twoimi bramkami i codex review, zanim przeczytasz choć linijkę kodu.
  • Kroki w Git, które przenoszą pracę z worktree na branch bez błędu „already checked out”.
  • Ustawienia uprawnień dla wątków i automatyzacji w aplikacji oraz sposoby wyjścia z typowych awarii.

Gdzie aplikacja desktopowa pasuje obok CLI i rozszerzenia IDE?

Dział zatytułowany „Gdzie aplikacja desktopowa pasuje obok CLI i rozszerzenia IDE?”

Wszystkie trzy klienty sterują tym samym agentem i czytają ten sam katalog domowy Codex (~/.codex/ albo CODEX_HOME), więc logowanie, config.toml, serwery MCP i skille przechodzą między nimi. Instalację i wersje opisuje strona Instalacja Codex.

KlientSięgnij po niego, gdyJak go uruchomić
Aplikacja desktopowa (macOS, Windows)Prowadzisz kilka wątków naraz, przeglądasz diffy wizualnie, sprawdzasz UI w przeglądarce albo planujesz cykliczne zadaniacodex app uruchamia aplikację albo otwiera instalator, jeśli jej brakuje
CLI / TUIPotrzebujesz skryptów, codex exec, precyzyjnych flag albo pracujesz na Linuksiecodex; zobacz triki z CLI i slash commandami
Rozszerzenie IDEEdytujesz kod i chcesz mieć Codex obok plikuPanel Codex w VS Code lub Cursorze

Łączą je dwa mosty. W TUI /app kontynuuje bieżącą sesję w aplikacji desktopowej, a /ide pobiera z edytora bieżące zaznaczenie i otwarte pliki. codex agents przegląda sesje agentów we współdzielonym lokalnym demonie app-servera.

Aplikacja jest teraz dostarczana jako tryb Codex w aplikacji desktopowej ChatGPT, obok Chat i Work. Neowin (źródło wtórne) datuje tę zmianę na 2026-07-09. README OpenAI nadal nazywa ją Codex App, a na macOS codex app otwiera ChatGPT.app albo Codex.app — tę, która jest zainstalowana. Na Linuksa nie ma wersji: linuksowe CLI nie ma podkomendy app (sprawdzone na codex-cli 0.157.1).

Kilka możliwości aplikacji figuruje w rejestrze funkcji codex-cli 0.157.1 jako stabilne i włączone: in_app_browser, computer_use, in_app_dictation i in_app_local_automation. codex features list wypisuje ten rejestr na twojej maszynie.

Wybierz, gdzie działa każdy wątek: lokalnie, w worktree czy w chmurze

Dział zatytułowany „Wybierz, gdzie działa każdy wątek: lokalnie, w worktree czy w chmurze”

Każdy nowy wątek startuje w jednym z trzech miejsc. Ten wybór decyduje, czego wątek może dotknąć i co musisz zrobić później, by zachować jego pracę.

Uruchom wątekDo czegoIle cię to kosztuje
Lokalnie, w twoim checkouciePytania o kod, małe poprawki w plikach, które i tak zmieniasz, praca, która musi widzieć niezacommitowane zmianyDwa lokalne wątki edytujące te same pliki zderzają się, a zmiany lądują w working tree bez przeglądu
W worktree, we własnym Git worktreeFunkcje, eksperymenty, które możesz wyrzucić, wszystko, co idzie równoleglePracę przenosisz przez Git, a każdy worktree potrzebuje własnej instalacji zależności
W chmurze, w skonfigurowanym środowiskuDługie lub ciężkie zadania, zadania wymagające czystej maszyny, próby best-of-N przy ryzykownej poprawceWymaga środowiska chmurowego i nie sięga do usług dostępnych tylko lokalnie

Dokumentacja worktrees OpenAI ujmuje cel w jednym zdaniu: „Worktrees let Codex run multiple independent chats in the same project without interfering with each other” (learn.chatgpt.com, odczyt 2026-08-28). Wynika z tego zasada: najwyżej jeden lokalny wątek na projekt zapisuje pliki; wszystko inne, co zapisuje, idzie do worktree albo do chmury. Mechanikę worktrees na każdej powierzchni, łącznie ze sprzątaniem, opisuje Izolowane zadania Codex w Git worktrees.

Zaczynaj wątek w worktree od czystej bazy. Worktree pobiera branch bazowy w stanie zacommitowanym, więc niezacommitowanych zmian z twojego checkoutu w nim nie ma. Jeśli wątek ich potrzebuje, najpierw zrób commit albo stash.

Poprowadź jedną funkcję jako trzy równoległe wątki

Dział zatytułowany „Poprowadź jedną funkcję jako trzy równoległe wątki”

Wzorzec, który w aplikacji działa najlepiej, dzieli funkcję na implementację, testy i dokumentację. Implementacja i testy dostają po worktree na tym samym branchu bazowym; dokumentacja dostaje wątek lokalny, bo nie koliduje z kodem.

  1. Zapisz kryteria akceptacji raz. Umieść trzy do pięciu sprawdzalnych stwierdzeń w pliku, który wątki mogą przeczytać, na przykład specs/user-id.md. Prompt każdego wątku wskazuje ten plik zamiast go powtarzać, więc trzy wątki nie rozjadą się.

  2. Uruchom wątek implementacji w worktree. Wklej pierwszy prompt poniżej.

  3. Uruchom wątek testów w drugim worktree na tym samym branchu bazowym. Pisze testy do kryteriów, a nie do implementacji, której jeszcze nie widzi. Tak napisane testy padają z właściwego powodu, dopóki implementacja nie trafi do kodu.

  4. Uruchom wątek dokumentacji lokalnie. Edytuje tylko docs/, więc nie zderzy się z worktrees.

  5. Pracuj dalej, gdy wątki działają. Zaglądaj do nich, gdy skończą albo poproszą o zgodę. Gdy wątek idzie w złą stronę, wyślij poprawkę w tym samym wątku zamiast zaczynać od nowa, bo wątek zachowuje kontekst.

  6. Zweryfikuj, potem scal. Przejdź procedurę z następnej sekcji dla każdego worktree, przenieś oba branche i raz uruchom pełny zestaw testów na połączonym wyniku.

To polecenie, by testy padały z właściwego powodu, nadaje wynikowi wątku testów wartość: test, który przechodzi, zanim powstała implementacja, niczego nie dowodzi. Po połączeniu branchy te same testy muszą przejść na zielono.

Jak zweryfikować pracę wątku bez czytania każdej linijki?

Dział zatytułowany „Jak zweryfikować pracę wątku bez czytania każdej linijki?”

Podsumowanie wątku to deklaracja. O tym, czy zachowujesz pracę, decydują dowody, a sam czytasz tylko te linijki, których dowody nie pokrywają. Przejdź tę procedurę w każdym worktree, zanim przeniesiesz z niego pracę:

  1. Uruchom własne bramki w katalogu wątku. Użyj tych samych poleceń co CI. Agent, który raportuje, że testy przeszły, to nie to samo co twój terminal, który to pokazuje.

    Okno terminala
    # w terminalu, w worktree wątku (git worktree list wypisuje jego ścieżkę)
    pnpm typecheck && pnpm lint && pnpm test
    git status --short # coś nieoczekiwanego, np. zmieniony lockfile?
  2. Uruchom osobny przegląd. codex review --uncommitted przegląda zmiany staged, unstaged i nieśledzone z instrukcją szukania błędów, a nie bronienia kodu. Gdy praca jest już zacommitowana na branchu, użyj codex review --base main. Triaż wyników i prompty do tego przeglądu znajdziesz w Przejrzyj zmiany Codex przed commitem.

  3. Przypisz kryteriom dowody. Każde kryterium akceptacji potrzebuje testu, który pada bez zmiany. Kryteria bez testu to linijki, które czytasz sam.

  4. Przeglądaj diff w aplikacji, nie podsumowanie. Przejrzyj diff wątku w aplikacji. Zachowaj to, co pokrywają dowody, cofnij resztę i odpisz w wątku, co ma zmienić.

Kto zatwierdza: developer, który uruchomił wątek, odpowiada za scalenie, a bramki i przegląd to dowody, na których opiera decyzję. Dla tech leada regułą do wpisania w AGENTS.md jest to, że żaden wątek z aplikacji nie trafia do kodu na podstawie samego podsumowania. Przewodnik po pakiecie dowodów pokazuje, jak dołączyć te dowody do pull requesta.

Git pozwala, by branch był checkoutowany tylko w jednym worktree naraz. Jeśli wątek w worktree utworzył codex/user-id, a ty uruchomisz git switch codex/user-id w głównym checkoucie, Git odmówi z błędem „already checked out”, bo worktree wciąż trzyma ten branch. Masz dwie drogi:

  • Zostaw pracę na jej branchu. Zrób commit w worktree, wypchnij branch i otwórz pull request; wersja terminalowa jest poniżej. Wybierz ją, gdy możesz zweryfikować wszystko wewnątrz worktree.
  • Przenieś ją do swojego checkoutu. Scal albo przenieś cherry-pickiem commity z worktree na branch w głównym checkoucie. Wybierz tę drogę, gdy lokalnie możesz uruchomić tylko jedną kopię aplikacji, na przykład dlatego, że zajmuje stały port.
Okno terminala
# w worktree: nazwij branch, zrób commit i wypchnij
git switch -c codex/user-id # pomiń, jeśli wątek już utworzył branch
git add -A && git commit -m "Accept a generic ID type in UserService"
git push -u origin codex/user-id
# albo z głównego checkoutu: weź commity bez checkoutowania brancha
git merge --no-ff codex/user-id

Gdy praca wątku jest już scalona, zarchiwizuj wątek i usuń jego worktree (git worktree remove <path>); worktree pozostawiony na dysku trzyma własną kopię plików i każdą zależność oraz artefakt builda, które wątek zainstalował.

Sprawdzaj UI zrzutami ekranu, przeglądarką i głosem

Dział zatytułowany „Sprawdzaj UI zrzutami ekranu, przeglądarką i głosem”

Przy pracy wizualnej aplikacja wygrywa z terminalem. Dołącz do promptu zrzut ekranu rozjechanego układu i opisz, co ma się zmienić; w CLI to samo robi codex -i screenshot.png "...". Wbudowana przeglądarka pozwala wątkowi otworzyć twój lokalny serwer deweloperski i sprawdzić własną zmianę, co zamienia „powinno wyglądać dobrze” w coś, co wątek może zaobserwować.

Dyktowanie jest w aplikacji włączone (in_app_dictation w 0.157.1) i sprawdza się przy długich opisach problemów wizualnych. Słabo radzi sobie z nazwami z kodu, więc popraw identyfikatory w transkrypcji przed wysłaniem. TUI ma własne polecenie /voice; konfiguracje głosowe dla wielu narzędzi opisuje strona o wprowadzaniu głosowym dla agentów.

Skille ładują się ze współdzielonego katalogu domowego Codex ($CODEX_HOME/skills, domyślnie ~/.codex/skills), więc aplikacja widzi te same osobiste skille co CLI. Aby wywołać skill jawnie, podaj jego nazwę z prefiksem $ w prompcie, na przykład $skill-creator, jeden z przykładowych skilli dołączonych do Codex. Skille zespołu trzymaj w repozytorium, żeby zmiana skilla przechodziła code review. Wyszukiwanie i weryfikację skilli opisuje strona o instalowaniu i zarządzaniu skillami, a marketplace’y pluginów (codex plugin marketplace add) strona o marketplace’ach i rejestrach pluginów.

Automatyzacje uruchamiają zapisany prompt według harmonogramu, w twoim checkoucie albo w dedykowanym worktree, i raportują wyniki w aplikacji. Działają tylko wtedy, gdy aplikacja jest otwarta, a komputer nie śpi. Najpierw przetestuj prompt ręcznie, daj mu najwęższe uprawnienia, które wystarczą, i każ mu raportować zamiast zmieniać kod, dopóki mu nie zaufasz. Pełną konfigurację, łącznie z automatyzacjami wątków i zapasowym harmonogramem w CI dla zadań, które muszą ruszyć przy wyłączonym laptopie, opisuje strona Automatyzacje Codex.

Aplikacja czyta ten sam config.toml co CLI, więc ustawiaj uprawnienia właśnie tam. Preferowanym przez OpenAI mechanizmem są profile uprawnień (beta, Codex CLI 0.138.0 i nowsze): wbudowane :read-only, :workspace i :danger-full-access oraz nazwane profile, które definiujesz sam. Własny profil może rozszerzać tylko :read-only albo :workspace; codex-cli 0.157.1 odrzuca każdego innego wbudowanego rodzica.

~/.codex/config.toml
# Klucze najwyższego poziomu muszą stać przed każdą [tabelą], inaczej TOML przypisze je do tej tabeli.
default_permissions = "review"
[permissions.review]
description = "Review and triage: read the repo, write nothing"
extends = ":read-only"

Zmień uprawnienia dla jednej sesji TUI przez /permissions albo dla jednego uruchomienia przez -c default_permissions=":workspace". Nie łącz profilu ze starszą flagą --sandbox: OpenAI pisze, że te dwa systemy „do not compose”. :danger-full-access zostaw dla jednorazowych sandboksów z ograniczoną siecią, nigdy dla automatyzacji na twoim laptopie. Model wspólny dla wszystkich narzędzi opisuje strona o uprawnieniach i sandboksach, a każdy klucz config.toml strona Konfiguracja Codex.

Dwa lokalne wątki nadpisały sobie nawzajem pracę. Oba edytowały ten sam plik w twoim checkoucie. Wyjście: git diff, by zobaczyć połączony stan, git restore -p, by odrzucić niechciane fragmenty, a potem jedno z zadań powtórz w worktree. Zapobieganie: jeden zapisujący wątek lokalny na projekt.

Wątkowi w worktree brakuje twoich ostatnich zmian. Były niezacommitowane, gdy wątek startował, a worktree widzi tylko zacommitowaną historię. Wyjście: zrób commit albo stash i uruchom nowy wątek od zaktualizowanej bazy; nie proś starego wątku, by „dociągnął” twoje zmiany.

git switch kończy się błędem „already checked out”. Worktree wciąż trzyma branch. Wyjście: pracuj na branchu wewnątrz worktree albo scal go ze swojego checkoutu przez git merge --no-ff codex/BRANCH, jak pokazano wyżej.

Wątek twierdzi, że testy przechodzą, a u ciebie padają. Uruchomił podzbiór, inne polecenie albo sprawdzał przed ostatnią edycją. Wyjście: wklej do wątku swój wynik z błędami i poproś o ponowne uruchomienie dokładnie tego polecenia, którego używa CI, z kodem wyjścia. Wpisz to polecenie do AGENTS.md, żeby używał go każdy wątek.

Długi wątek zaczyna ignorować specyfikację. Wcześniejsze tury, poprawki i wyniki narzędzi wypierają instrukcje podane na początku. Wyjście: uruchom nowy wątek, który wskazuje plik specyfikacji i bieżący diff, zamiast powtarzać poprawki w starym.

Aplikacja nie widzi twoich serwerów MCP, skilli ani ustawień. Czyta inny katalog domowy Codex niż CLI, zwykle dlatego, że CODEX_HOME jest ustawione w profilu powłoki, ale nie dla aplikacji. Wyjście: ustaw CODEX_HOME tak samo dla każdego klienta albo nie ustawiaj go nigdzie, żeby wszystkie używały ~/.codex/. codex doctor pokazuje, co czyta CLI.

Automatyzacja nie ruszyła albo nic nie zaraportowała. Aplikacja była zamknięta albo komputer zasnął. Wyjście: zadania, które muszą ruszyć w nocy, przenieś do harmonogramu w CI, jak opisano w Automatyzacjach Codex.

Kończy się miejsce na dysku. Stare worktrees trzymają zależności i wyniki builda. Wyjście: uruchom git worktree list, by znaleźć worktrees ze scaloną pracą, usuń każdy z nich przez git worktree remove <path> (dopiero to zwalnia miejsce), a potem uruchom git worktree prune, by wyczyścić wpisy katalogów usuniętych ręcznie.