Konfiguracja
Uwierzytelniłeś się, uruchomiłeś Codex, a on natychmiast spróbował uruchomić rm -rf node_modules bez pytania. Albo gorzej, pytał o pozwolenie na każde polecenie ls zanim zrobił cokolwiek użytecznego. Różnica między tymi doświadczeniami to jeden plik: config.toml. Skonfiguruj go dobrze, a Codex będzie działał jak zaufany starszy kolega. Skonfiguruj źle, a będzie albo nieodpowiedzialny, albo sparaliżowany.
Co wyniesiesz z tego przewodnika
Dział zatytułowany „Co wyniesiesz z tego przewodnika”- Plik
~/.codex/config.tomlskonfigurowany z twoim preferowanym modelem, polityką zatwierdzania i poziomem sandbox - Nadpisania na poziomie projektu w
.codex/config.tomldla ustawień zespołowych - Jasne zrozumienie kolejności priorytetów konfiguracji
- Flagi funkcji włączone dla potrzebnych możliwości
- Tryb wyszukiwania w sieci dostrojony do twoich wymagań bezpieczeństwa
Plik konfiguracji
Dział zatytułowany „Plik konfiguracji”Codex odczytuje konfigurację z plików TOML. Twoje osobiste ustawienia domyślne znajdują się w ~/.codex/config.toml, a nadpisania specyficzne dla projektu w .codex/config.toml w katalogu głównym repozytorium.
Zarówno CLI jak i rozszerzenie IDE współdzielą te same warstwy konfiguracji. Aplikacja też je czyta. Skonfiguruj raz, używaj wszędzie.
Kolejność priorytetów konfiguracji
Dział zatytułowany „Kolejność priorytetów konfiguracji”Codex rozwiązuje ustawienia w następującej kolejności, od najwyższego do najniższego priorytetu:
-
Flagi CLI i nadpisania
--config—codex -a neverma priorytet nad wszystkim. -
Wartości profilu — Z
--profile <name>jeśli używasz nazwanych profili. -
Konfiguracja projektu — Pliki
.codex/config.toml, uporządkowane od katalogu głównego projektu w dół do bieżącego katalogu roboczego. Najbliższy katalog wygrywa. Ładowane tylko dla zaufanych projektów. -
Konfiguracja użytkownika —
~/.codex/config.toml. -
Konfiguracja systemowa —
/etc/codex/config.tomlna Unix (jeśli istnieje). -
Wbudowane domyślne — Fabryczne ustawienia Codex.
Oznacza to, że twój zespół może commitować plik .codex/config.toml do repozytorium z polityką zatwierdzania specyficzną dla projektu, a poszczególni deweloperzy mogą nadpisać te ustawienia własnymi preferencjami w ~/.codex/config.toml.
Podstawowe ustawienia
Dział zatytułowany „Podstawowe ustawienia”Oto produkcyjny ~/.codex/config.toml z ustawieniami, które większość deweloperów zmienia najpierw.
# Wybór modelu -- GPT-5.3-Codex jest domyślny i najlepszy do zadań programistycznychmodel = "gpt-5.3-codex"
# Polityka zatwierdzania -- kontroluje kiedy Codex pauzuje aby zapytać przed uruchomieniem poleceń# Opcje: "on-request" (pytaj o wszystko), "on-failure" (auto-zatwierdzaj,# pytaj przy błędach), "never" (pełna autonomia -- tryb "yolo")approval_policy = "on-failure"
# Tryb sandbox -- kontroluje dostęp do systemu plików i sieci# Opcje: "workspace-write" (domyślny, ograniczony do projektu), "danger-full-access"sandbox_mode = "workspace-write"
# Tryb wyszukiwania w sieci# Opcje: "cached" (domyślny, zaindeksowane wyniki), "live" (w czasie rzeczywistym),# "disabled" (bez wyszukiwania)web_search = "cached"
# Nakład myślenia -- ile model myśli przed odpowiedzią# Opcje: "low", "medium", "high"model_reasoning_effort = "high"
# Przechowywanie poświadczeńcli_auth_credentials_store = "auto"Tryby zatwierdzania w szczegółach
Dział zatytułowany „Tryby zatwierdzania w szczegółach”Polityka zatwierdzania to najważniejsze ustawienie. Oto co faktycznie robi każdy tryb.
Codex pauzuje i prosi o pozwolenie przed każdą edycją pliku i wykonaniem polecenia. To najbezpieczniejszy tryb, ale tworzy najwięcej tarcia.
approval_policy = "on-request"Używaj gdy: Pracujesz w nieznanych bazach kodu, uruchamiasz Codex po raz pierwszy lub pracujesz w środowiskach produkcyjnych.
Codex auto-zatwierdza akcje, ale pauzuje i pyta gdy coś się nie powiedzie. To idealny punkt równowagi dla większości prac programistycznych — Codex płynie gładko na szczęśliwych ścieżkach, ale konsultuje się z tobą gdy pojawiają się błędy.
approval_policy = "on-failure"Używaj gdy: Codzienna praca programistyczna w zaufanych projektach.
Codex uruchamia wszystko bez pytania. Edycje plików, polecenia shell, operacje Git — wszystko autonomicznie. To najszybszy tryb, ale wymaga dużego zaufania. Możesz też użyć flagi CLI --full-auto dla tego samego efektu z sandboxingiem.
approval_policy = "never"Używaj gdy: Praca w skonteneryzowanych środowiskach, jednorazowych branchach, pipeline-ach CI/CD lub gdy chcesz niezakłóconego flow i możesz łatwo cofnąć zmiany.
Nadpisania na poziomie projektu
Dział zatytułowany „Nadpisania na poziomie projektu”Dla ustawień zespołowych utwórz .codex/config.toml w katalogu głównym repozytorium:
# .codex/config.toml -- commitowany do repozytorium
# Standardowa polityka zatwierdzania zespołuapproval_policy = "on-failure"
# Sandbox ograniczony do workspacesandbox_mode = "workspace-write"
# Zespół preferuje wysoki nakład myślenia dla tej złożonej bazy kodumodel_reasoning_effort = "high"Gdy deweloper sklonuje repozytorium i zaufa projektowi, te ustawienia zastosują się automatycznie. Jego osobisty ~/.codex/config.toml nadal ma priorytet dla ustawień, które jawnie nadpisze.
Flagi funkcji
Dział zatytułowany „Flagi funkcji”Opcjonalne możliwości znajdują się w tabeli [features]:
[features]# Przyspiesz powtarzane polecenia przez zrzut środowiska shellshell_snapshot = true
# Włącz cofanie przez zrzuty git ghost per-tura (włączone domyślnie)undo = true
# Włącz inteligentne zatwierdzanie sugerujące reguły prefiksówrequest_rule = trueKluczowe flagi funkcji:
| Flaga | Domyślna | Co robi |
|---|---|---|
shell_snapshot | false | Cache-uje środowisko shell dla szybszych powtarzanych poleceń |
undo | true | Tworzy zrzuty Git per-tura dla możliwości cofnięcia zmian |
request_rule | true | Inteligentne zatwierdzanie sugeruje reguły uprawnień do ponownego użycia |
unified_exec | false | Używa zunifikowanego narzędzia exec opartego o PTY (beta) |
remote_compaction | true | Kompresuje kontekst zdalnie (tylko uwierzytelnianie ChatGPT) |
Włącz z CLI bez edycji konfiguracji:
codex --enable shell_snapshotStyl komunikacji
Dział zatytułowany „Styl komunikacji”Codex obsługuje eksperymentalne ustawienie stylu komunikacji:
# Opcje: "friendly", "pragmatic", "none"model_personality = "pragmatic"Możesz też zmienić to per-sesję przez /personality w TUI.
Przekazywanie zmiennych środowiskowych
Dział zatytułowany „Przekazywanie zmiennych środowiskowych”Kontroluj które zmienne środowiskowe Codex przekazuje do uruchamianych poleceń:
[shell_environment_policy]include_only = ["PATH", "HOME", "NODE_ENV", "DATABASE_URL"]To kluczowe dla bezpieczeństwa. Bez tej polityki Codex przekazuje całe twoje środowisko shell do każdego uruchamianego polecenia, co może doprowadzić do wycieku tajemnic.
Szybkie nadpisania CLI
Dział zatytułowany „Szybkie nadpisania CLI”Nie zawsze musisz edytować config.toml. CLI akceptuje jednorazowe nadpisania:
# Nadpisz model dla tej sesjicodex -c model=gpt-5.2
# Nadpisz politykę zatwierdzaniacodex -a never
# Włącz flagę funkcjicodex --enable shell_snapshot
# Połącz wiele nadpisańcodex -c model=gpt-5.2 -c model_reasoning_effort=lowGdy coś nie działa
Dział zatytułowany „Gdy coś nie działa”Ostrzeżenie “Niezaufany projekt” i konfiguracja projektu ignorowana: Codex pyta o zaufanie do projektu przy pierwszym otwarciu. Jeśli odmówiłeś, pliki .codex/config.toml na poziomie projektu są pomijane. Uruchom ponownie Codex w projekcie i zaakceptuj pytanie o zaufanie.
Tryb zatwierdzania wydaje się być zły: Sprawdź kolejność priorytetów. Flaga CLI nadpisuje wszystko. Uruchom codex bez flag aby przetestować ustawienia pliku konfiguracji w izolacji.
Flaga funkcji nie działa: Niektóre flagi wymagają ponownego uruchomienia Codex. Zamknij Aplikację, zakończ CLI i otwórz ponownie. Flagi funkcji są odczytywane przy starcie, nie ładowane na żywo.
Błąd “sandbox_mode not allowed”: Twoja organizacja może wymuszać ograniczenia przez requirements.toml. Skontaktuj się z administratorem jeśli zarządzane polityki blokują preferowany tryb sandbox.
Brakujące zmienne środowiskowe w poleceniach: Jeśli Codex uruchamia npm test i nie powiedzie się bo brakuje DATABASE_URL, sprawdź swoje [shell_environment_policy]. Albo dodaj zmienną do include_only, albo usuń politykę aby przekazywać wszystko.