Codex działa out-of-the-box, ale pełna kontrola wymaga znajomości config.toml. Ten plik decyduje o wszystkim – od modelu, przez uprawnienia, po eksperymentalne funkcje.
W poprzednich wpisach omawialiśmy podstawy Codex i bezpieczeństwo sandboxa. Dziś wchodzimy w konfigurację – jeden plik TOML, który zmienia wszystko.
- Warstwy konfiguracji
- Podstawowe ustawienia
- Sandbox i uprawnienia szczegółowo
- Feature flags
- Profile: różne konfiguracje dla różnych kontekstów
- Zaawansowana konfiguracja
- Troubleshooting
Warstwy konfiguracji
Codex czyta konfigurację z wielu źródeł, stosując ścisłą hierarchię priorytetów. Wyższy priorytet nadpisuje niższy:
| Priorytet | Źródło | Zastosowanie |
| 1 | CLI flags (--config) | Jednorazowe overridy |
| 2 | Profile (--profile) | Zestaw ustawień dla kontekstu |
| 3 | .codex/config.toml | Konfiguracja projektu |
| 4 | ~/.codex/config.toml | Twoje domyślne ustawienia |
| 5 | /etc/codex/config.toml | System-wide defaults |
| 6 | Built-in defaults | Fabryczne ustawienia |
Praktyczny przykład: Masz w ~/.codex/config.toml ustawiony model gpt-5.2. W projekcie .codex/config.toml jest gpt-5.1-codex-mini. Projekt wygrywa – Codex użyje Mini. Ale jeśli uruchomisz codex -m gpt-5.3, CLI flag nadpisze wszystko.
Konfiguracja projektu (.codex/config.toml) działa tylko w zaufanych projektach. Przy pierwszym uruchomieniu w nowym repo Codex pyta o trust. Bez zaufania ignoruje config projektu – to zabezpieczenie przed złośliwymi repozytoriami.
Podstawowe ustawienia
Oto minimalny config.toml z objaśnieniami każdego parametru:
# ~/.codex/config.toml
# Model domyślny – wpływa na jakość i koszt
# Opcje: gpt-5.3, gpt-5.2, gpt-5.1-codex-mini, gpt-5.1-codex-max
model = "gpt-5.2"
# Poziom reasoning dla modeli z chain-of-thought
# Opcje: low, medium, high
# Wyższy = lepsza jakość, wolniejsze odpowiedzi, więcej tokenów
model_reasoning_effort = "high"
# Styl komunikacji Codex
# friendly = przyjazny, wyjaśniający
# pragmatic = zwięzły, na temat
# none = minimalne komentarze
personality = "friendly"
# Wyszukiwanie w sieci
# cached = pre-indeksowane wyniki (domyślne)
# live = najświeższe dane, wyższe ryzyko prompt injection
# disabled = brak dostępu do sieci
web_search = "cached"| Scenariusz | Model | Dlaczego |
| Codzienna praca | gpt-5.2 | Balans jakość/koszt |
| Złożone zadania architektoniczne | gpt-5.3 | Najlepsze rozumowanie |
| Rutynowe operacje (testy, linting) | gpt-5.1-codex-mini | 4x więcej zapytań w limicie |
| Długie sesje agentowe | gpt-5.1-codex-max | Zoptymalizowany pod długi kontekst |
Sandbox i uprawnienia szczegółowo
Bezpieczeństwo Codex opiera się na dwóch mechanizmach: sandbox mode i approval policy. Działają niezależnie – możesz mieć restrykcyjny sandbox z luźną polityką zatwierdzania lub odwrotnie.
Tryby sandbox
# Opcje: read-only | workspace-write | danger-full-access
sandbox_mode = "workspace-write"| Tryb | Odczyt plików | Zapis plików | Sieć | Komendy |
| read-only | Tak (tylko workspace) | Nie | Nie | Nie |
| workspace-write | Tak | Tak (tylko workspace) | Nie* | Tak (w workspace) |
| danger-full-access | Tak (cały system) | Tak (cały system) | Tak | Tak (bez ograniczeń) |
*Sieć w workspace-write można włączyć osobno:
[sandbox_workspace_write]
network_access = true # Włącza sieć w trybie workspace-writeChronione ścieżki
Nawet w workspace-write Codex chroni niektóre pliki:
/.git– tylko odczyt (nie zepsuje historii)/.agents– tylko odczyt (nie zmodyfikuje skills)/.codex– tylko odczyt (nie zmieni własnej konfiguracji)
Polityka zatwierdzania
# Opcje: on-request | untrusted | never
approval_policy = "on-request"on-request (domyślna) – Codex pyta o zgodę gdy chce wyjść poza workspace lub użyć sieci. Dla większości przypadków to optymalny wybór.
untrusted – Codex pyta przed każdą nieznaną komendą. Bezpieczne, ale wymaga więcej interakcji.
never – Codex nie pyta o nic. Używaj tylko w kontrolowanych środowiskach lub z restrykcyjnym sandboxem.
Skrót CLI: codex --full-auto to workspace-write + on-request (domyślne). codex --yolo to danger-full-access + never (niebezpieczne, ale przydatne w izolowanych kontenerach CI).
Feature flags
Sekcja [features] włącza eksperymentalne i beta funkcje:
[features]
multi_agent = true # Experimental: multi-agent collaboration
shell_snapshot = true # Beta: cache dla powtarzanych komend
undo = true # Stable: git snapshots per-turn
apps = false # Experimental: ChatGPT Apps/connectors| Flag | Status | Co robi | Rekomendacja |
| undo | Stable | Git snapshot przed każdą zmianą | Włącz zawsze |
| shell_snapshot | Beta | Cache wyników komend | Włącz dla przyśpieszenia |
| multi_agent | Experimental | Równoległe agenty | Włącz dla złożonych zadań |
| apps | Experimental | Integracja ChatGPT Apps | Wyłącz jeśli nie używasz |
undo = true to must-have – pozwala cofnąć każdą zmianę jedną komendą. Codex tworzy git snapshot przed każdym turnem, więc możesz bezpiecznie eksperymentować.
Więcej o multi-agent workflows w osobnym artykule.
Profile: różne konfiguracje dla różnych kontekstów
Profile pozwalają przełączać zestawy ustawień jedną flagą. Przydatne gdy pracujesz z różnymi projektami lub środowiskami.
Definicja profilu:
# ~/.codex/profiles/production.toml
model = "gpt-5.3"
model_reasoning_effort = "high"
approval_policy = "untrusted"
sandbox_mode = "read-only"
# ~/.codex/profiles/experiment.toml
model = "gpt-5.3"
approval_policy = "never"
sandbox_mode = "danger-full-access"
# ~/.codex/profiles/budget.toml
model = "gpt-5.1-codex-mini"
model_reasoning_effort = "low"Użycie:
codex --profile production # Bezpieczny tryb dla prod
codex --profile experiment # Pełna autonomia do testów
codex --profile budget # Oszczędność kredytówStrategia dla zespołów: stwórz standardowe profile (dev, staging, prod) i wymagaj ich użycia przez konwencję. Profile w ~/.codex/profiles/ nie trafiają do repo, więc każdy developer może mieć własne ustawienia.
Zaawansowana konfiguracja
Konfiguracja agentów
Gdy używasz multi-agent, możesz definiować specjalistyczne agenty:
[agents]
max_threads = 6 # Maks. równoległych agentów
max_depth = 1 # Maks. zagnieżdżenie agentów
[agents.reviewer]
description = "Code reviewer dla bezpieczeństwa i jakości"
config_file = "agents/reviewer.toml"Plik agenta:
# agents/reviewer.toml
model = "gpt-5.3-codex"
model_reasoning_effort = "high"
sandbox_mode = "read-only"
developer_instructions = """
Recenzuj kod jak właściciel projektu.
Priorytet: bezpieczeństwo, poprawność, pokrycie testami.
"""AGENTS.md – alternatywa dla developer_instructions
Zamiast wpisywać instrukcje w TOML, możesz użyć AGENTS.md:
project_doc_fallback_filenames = ["TEAM_GUIDE.md", ".agents.md"]
project_doc_max_bytes = 65536 # Default: 32768Timeout i limity
# Timeout dla pojedynczego turnu (sekundy)
turn_timeout = 300
# Maksymalna liczba turnów w sesji
max_turns = 100
# Limit tokenów w kontekście
context_max_tokens = 128000Troubleshooting
Problem: Codex ignoruje moją konfigurację.
Rozwiązanie: Sprawdź hierarchię priorytetów. CLI flags nadpisują wszystko. Użyj codex config show żeby zobaczyć aktywną konfigurację i jej źródła.
Częste problemy:
Untrusted project – Codex nie czyta
.codex/config.tomlz niezaufanego projektu. Uruchomcodex trustw katalogu.Model niedostępny – Niektóre modele wymagają wyższego planu. Sprawdź
codex modelsdla listy dostępnych.Feature flag nie działa – Upewnij się że format jest poprawny:
feature_name = true(nie"true"w cudzysłowach).Zmiany nie działają – Zrestartuj sesję po edycji config.toml. Codex czyta konfigurację przy starcie.
Profile nie ładuje się – Sprawdź czy plik istnieje w
~/.codex/profiles/nazwa.tomli czy składnia TOML jest poprawna.
Diagnostyka:
codex config show # Pokaż aktywną konfigurację
codex config validate # Sprawdź błędy składni
codex doctor # Pełna diagnostyka instalacjiWięcej o bezpieczeństwie i sandbox znajdziesz w artykule o Exec Policy Rules. Jeśli szukasz alternatywnego podejścia do agentów AI, sprawdź Co to jest OpenClaw?.

