Tryb nieinteraktywny (headless)
claude -p wypisuje odpowiedź bez uruchamiania trybu interaktywnego, więc nadaje się do zadań wykonywanych z poziomu skryptu lub terminala. W trybie print możesz wybrać format odpowiedzi: tekst, JSON albo JSON w formie strumienia.
Format wejścia dla trybu print może być tekstowy albo stream-json, co pozwala dopasować sposób przekazywania danych do skryptu. Jeśli potrzebujesz danych wynikowych w JSON, ustaw --output-format json obok -p. Możesz też zażądać odpowiedzi zgodnej ze schematem JSON; wynik jest walidowany po zakończeniu pracy agenta.
Przebieg można ograniczyć maksymalną liczbą tur agenta, a tę opcję stosuje się wyłącznie w trybie print. Jeśli agent osiągnie ustawiony limit tur, polecenie kończy się błędem; domyślnie limitu nie ma.
W trybie nieinteraktywnym możesz wskazać narzędzie MCP do obsługi próśb o uprawnienia, podając jego pełną nazwę. Jeżeli w trybie print nikt nie może odpowiadać na prośby o uprawnienia, ustaw --permission-prompts none, a Claude będzie je odrzucać. Wybór trybu uprawnień wpływa na start sesji, a --permission-mode może nadpisać ustawienie defaultMode z plików ustawień.
claude -p "query" --output-format json
claude -p --max-turns 3 "query"
Zastosowanie w praktyce
Do automatyzacji, która ma przetwarzać odpowiedź jako dane, uruchom -p z formatem JSON. Gdy wejście pochodzi w postaci strumienia JSON, ustaw format wejścia stream-json w trybie print. Jeśli wynik ma spełniać określoną strukturę, przekaż schemat przez --json-schema. W zadaniu z ograniczonym budżetem ustaw --max-budget-usd; limit dotyczy szacowanych wydatków na wywołania API, a wydatki subagentów również są wliczane.
--max-turns, uwzględnij, że osiągnięcie limitu kończy się błędem, a bez tej flagi limit nie jest ustawiony.