Tryb uprawnień w Claude Code decyduje, które akcje wykonują się bez pytania Cię. default (wyświetlany jako Manual) pyta przed edycjami i komendami shella. acceptEdits dodatkowo przepuszcza edycje plików i typowe komendy na plikach. plan pozwala Claude czytać i proponować plan, ale nie edytować. auto pozwala, by akcje zatwierdzał zamiast Ciebie klasyfikator działający w tle. dontAsk odrzuca wszystko, co wymagałoby pytania. bypassPermissions, włączany przez --dangerously-skip-permissions, pomija pytania niemal całkowicie i jest przeznaczony tylko dla izolowanych kontenerów lub VM. Naciśnij Shift+Tab, żeby przełączać tryby, albo uruchom claude --permission-mode <mode>.
Ten poradnik opiera się na dokumentacji trybów uprawnień od Anthropic. Claude Code często się zmienia, więc sprawdź tam szczegóły dla swojej wersji.
01Sześć trybów w skrócie
default (Manual)Tylko odczytPrzeglądanie każdej akcji, wrażliwa pracaacceptEditsOdczyt, edycja plików i typowe polecenia systemu plików, takie jak mkdir, touch, mv i cp w katalogu roboczymIterowanie nad kodem, który obserwujeszplanOdczyt; edycja jest zablokowana, dopóki nie zatwierdzisz planuRozpoznanie terenu przed jakąkolwiek zmianąautoWszystko, ale każdą akcję najpierw sprawdza klasyfikatorDługie zadania z mniejszą liczbą promptówdontAskOdczyt w katalogach roboczych i wstępnie zatwierdzone narzędzia; cała reszta jest odrzucanaCI i zablokowane skryptybypassPermissionsWszystko, z kilkoma wyjątkamiWyłącznie izolowane kontenery i maszyny wirtualnedefault to nazwa używana w ustawieniach, hookach i fladze --permission-mode. CLI, rozszerzenia IDE i aplikacja desktopowa nazywają go Manual, a CLI akceptuje też alias manual.
02Jak przełączać tryby
W terminalu naciśnij Shift+Tab. Kolejność to default, acceptEdits, plan, a potem opcjonalne tryby dozwolone w twojej sesji. dontAsk nigdy nie pojawia się w tym cyklu; ustawisz go tylko flagą.
Aby uruchomić sesję w danym trybie:
claude --permission-mode plan
Aby ustawić tryb jako domyślny, wpisz go w ~/.claude/settings.json:
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
Flaga ma pierwszeństwo przed ustawieniem, a ustawienie przed wbudowanym domyślnym trybem. Warto znać jedno ograniczenie: auto i bypassPermissions nie działają, jeśli ustawisz je w projektowym .claude/settings.json lub .claude/settings.local.json. Repozytorium nie może po cichu przełączyć cię w tryb bypass. Te dwa tryby ustaw w ustawieniach użytkownika albo podaj flagę.
W jakim trybie startuje nowa sesja
Nowsze wersje Claude Code (v2.1.283 lub nowsze) uruchamiają interaktywne sesje w terminalu i VS Code w trybie auto, jeśli jest dostępny, chyba że twoje ustawienia mówią inaczej. claude -p i uruchomienia Agent SDK startują w default. Jeśli nigdy nie wybierałeś trybu i dziwisz się, czemu widzisz tak mało promptów, to właśnie dlatego.
03Tryby bardziej szczegółowo
default (Manual)
Claude może czytać pliki bez pytania. Edycje, polecenia shella i dostęp do sieci wymagają potwierdzenia. W prompcie Bash opcja „Yes, and don't ask again” zapisuje regułę allow w .claude/settings.local.json, więc to polecenie nie będzie już pytać w tym repozytorium. Zgody na edycję plików obowiązują do końca sesji.
acceptEdits
Edycje i proste polecenia plikowe (mkdir, touch, rm, rmdir, mv, cp, sed) w katalogu roboczym wykonują się bez promptu. Inne polecenia shella nadal pytają. Dobry kompromis, gdy śledzisz diff na bieżąco.
plan
Claude bada kod za pomocą odczytów i poleceń tylko do odczytu, a potem przedstawia plan. Nic w twoim kodzie nie zostanie zmienione, dopóki go nie zatwierdzisz. Używaj go przy nieznanym kodzie lub ryzykownych zmianach.
auto
Osobny model sprawdza każdą akcję przed wykonaniem i blokuje te, które wykraczają poza twoją prośbę, dotyczą nierozpoznanej infrastruktury lub wyglądają na sterowane wrogą treścią. Jawne reguły ask nadal pytają. Jeśli klasyfikator zablokuje trzy akcje z rzędu lub dwadzieścia w jednej sesji, tryb auto się wstrzymuje i wracają zwykłe prompty. Według samego Anthropic tryb auto „ogranicza prompty o uprawnienia, ale nie gwarantuje bezpieczeństwa”.
dontAsk
Wszystko, co wymagałoby promptu, jest odrzucane. Wykonują się tylko reguły allow i akcje, które nigdy nie wymagają zgody. Ten tryb jest dla skryptów i CI, gdzie nie ma kto odpowiadać.
bypassPermissions i --dangerously-skip-permissions
--dangerously-skip-permissions to to samo co --permission-mode bypassPermissions. Prompty są pomijane, także przy zapisie do chronionych ścieżek, takich jak .git i .claude. Kilka rzeczy nadal pyta lub jest odrzucanych w każdym trybie, m.in. jawne reguły ask, AskUserQuestion i niektóre niebezpieczne polecenia rm. Reguły deny nadal blokują.
Anthropic zaleca używanie go wyłącznie w kontenerach, maszynach wirtualnych lub dev containerach bez dostępu do internetu. Na Macu i Linux Claude Code odmawia startu w tym trybie jako root lub pod sudo poza rozpoznanym sandboxem. Jeśli chcesz mieć bypass tylko dostępny, a nie włączony, --allow-dangerously-skip-permissions dodaje go do cyklu Shift+Tab bez przełączania.
04Reguły działają ponad trybami
Tryby ustalają punkt wyjścia. Reguły uprawnień w ustawieniach go doprecyzowują:
{
"permissions": {
"allow": ["Bash(npm run test *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)"]
}
}
Reguły są sprawdzane w kolejności deny, potem ask, potem allow, a decyduje pierwsze dopasowanie. Reguły deny blokują w każdym trybie, także w bypassPermissions. Reguły allow nic nie zmieniają w bypassPermissions, bo tam wszystko i tak jest dozwolone. Uruchom /permissions, żeby zobaczyć wszystkie reguły i pliki, z których pochodzą.
Swój udział mogą mieć też hooki. Hook PreToolUse może zablokować wywołanie narzędzia w dowolnym trybie. Hook PermissionRequest może odpowiedzieć na prompt za ciebie, ale nie nadpisze reguły deny. Jak to zrobić, pokazuje przewodnik po PermissionRequest.
05Jaki tryb wybrać, gdy odchodzisz od komputera
Zwykle po --dangerously-skip-permissions sięga się dlatego, że chcesz zostawić Claude przy pracy i nie wrócić do sesji zawieszonej na prompcie. To realny problem, ale tryb bypass rozwiązuje go, całkowicie wyłączając twoją kontrolę — i to na twojej własnej maszynie.
Kilka bezpieczniejszych kombinacji:
- Reguły allow dla nudnych komend. Dodaj komendy testów, lintera i buildu do
allow, zostawaskdlagit pushi deployów, a sam zostań wdefaultalboacceptEdits. - Tryb auto do długich zadań, gdy akceptujesz ocenę klasyfikatora przy rutynowych akcjach.
- Dostawaj prompty tam, gdzie jesteś. Zostań w trybie, który pyta, i odpowiadaj na te kilka ważnych promptów z telefonu.
To ostatnie robi właśnie Claude Code Notifier. To niezależne narzędzie, niestworzone przez Anthropic. Jego narzędzie wiersza poleceń, ccn, działa jako hooki Claude Code na Macu, Windows i Linux. Gdy Claude Code ma poprosić o uprawnienia, a ty jesteś z dala od klawiatury, prośba trafia na sparowany telefon z iPhone lub Android, gdzie możesz zezwolić raz, zezwolić na całą sesję albo odmówić. Widzi tylko prompty, które Claude Code i tak by pokazał, więc to tryb i twoje reguły nadal decydują, o co trzeba pytać. W trybie auto dostajesz mniej próśb; w bypassPermissions żadnych, choć powiadomienia „Claude skończył” i pytania nadal przychodzą. Konfigurację opisuje poradnik o zatwierdzaniu z telefonu, a ryzyka — Czy zatwierdzanie z telefonu jest bezpieczne?
06FAQ
Czym różni się default od acceptEdits?
default pyta przed każdą edycją pliku i każdą komendą shella. acceptEdits pozwala bez pytania na edycje plików i typowe komendy plikowe, takie jak mkdir, mv i cp, w katalogu roboczym. Pozostałe komendy shella w obu trybach nadal wymagają zgody.
Czy --dangerously-skip-permissions to to samo co bypassPermissions?
Tak. Ta flaga odpowiada --permission-mode bypassPermissions. Anthropic zaleca ją tylko w izolowanych kontenerach lub maszynach wirtualnych, najlepiej bez dostępu do internetu.
Jak sprawić, żeby Claude Code przestał pytać o uprawnienia dla jednej komendy?
Wybierz w prompcie „Yes, and don't ask again” albo dodaj regułę allow, np. "Bash(npm test)", w permissions.allow w ustawieniach. To bezpieczniejsze niż zmiana całego trybu.
Czy ustawienia projektu mogą włączyć mi tryb bypassPermissions?
Nie. bypassPermissions i auto w .claude/settings.json lub .claude/settings.local.json nie działają. Obowiązują tylko z ustawień użytkownika, ustawień zarządzanych albo z flagi wiersza poleceń.
Czy hooki działają w trybie bypassPermissions?
Tak. Hooki działają w każdym trybie, a hook PreToolUse, który odrzuca wywołanie narzędzia, blokuje je nawet w bypassPermissions. Hook PermissionRequest uruchamia się tylko, gdy jest prompt do odpowiedzi, więc w trybie bypass odpala się rzadko.