Hooks, Skills i Permissions
- Znasz system hooks i potrafisz skonfigurować automatyzacje
- Umiesz tworzyć custom skills (slash commands)
- Rozumiesz system uprawnień i bezpieczeństwa
- Wiesz, jak skonfigurować settings.json i sandbox
Hooks - automatyzacja lifecycle
Hooks to automatyczne reakcje na zdarzenia w pracy Claude Code. Gdy zdarzenie zajdzie (np. Claude ma zapisać plik), Claude Code sam uruchamia to, co skonfigurowałeś: komendę, zapytanie HTTP, narzędzie MCP, prompt do modelu albo agenta.
Hook events - pełna lista
Stan na 1 października 2026: dokumentacja (hooks reference na code.claude.com/docs) wymienia 33 zdarzenia - tyle samo co we wrześniu. Lista rośnie z kolejnymi wersjami, więc przy własnej konfiguracji zawsze sprawdzaj aktualny spis w docs. W codziennej pracy najczęściej użyjesz czterech: PreToolUse, PostToolUse, UserPromptSubmit i Stop.
| Event | Kiedy się odpala |
|---|---|
| SessionStart | Początek lub wznowienie sesji |
| Setup | Start z --init-only, albo --init/--maintenance w trybie -p (przygotowanie w CI) |
| UserPromptSubmit | Po wysłaniu promptu, zanim Claude go przetworzy |
| UserPromptExpansion | Gdy wpisana komenda rozwija się w prompt (może zablokować rozwinięcie) |
| PreToolUse | PRZED wykonaniem narzędzia (Write, Bash, Edit...) - może zablokować |
| PermissionRequest | Gdy pojawia się dialog uprawnień |
| PermissionDenied | Gdy klasyfikator auto mode odrzuca wywołanie narzędzia |
| PostToolUse | PO udanym wykonaniu narzędzia |
| PostToolUseFailure | Po nieudanym wywołaniu narzędzia |
| PostToolBatch | Po rozwiązaniu całej paczki równoległych wywołań |
| Notification | Gdy Claude Code wysyła notyfikację |
| MessageDisplay | Przy wyświetlaniu tekstu odpowiedzi asystenta |
| SubagentStart | Gdy startuje subagent |
| SubagentStop | Gdy subagent kończy pracę |
| TaskCreated | Przy tworzeniu zadania na liście zadań |
| TaskCompleted | Przy oznaczaniu zadania jako ukończone |
| Stop | Gdy Claude kończy odpowiedź |
| StopFailure | Gdy tura kończy się błędem API |
| TeammateIdle | Gdy członek agent teamu przechodzi w bezczynność |
| InstructionsLoaded | Gdy CLAUDE.md lub plik rules ładuje się do kontekstu |
| ConfigChange | Gdy plik konfiguracji zmienia się w trakcie sesji |
| CwdChanged | Gdy zmienia się katalog roboczy (np. cd) |
| DirectoryAdded | Gdy do sesji dochodzi nowy katalog roboczy (od 2.1.219) |
| FileChanged | Gdy obserwowany plik zmienia się na dysku |
| WorktreeCreate | Przy tworzeniu git worktree |
| WorktreeRemove | Przy usuwaniu git worktree |
| PreCompact | Przed kompaktowaniem kontekstu |
| PostCompact | Po zakończeniu kompaktowania kontekstu |
| PreModelSwitch | Przed zmianą modelu w sesji - może ją zablokować (od 2.1.251) |
| PostModelSwitch | Po zmianie modelu w sesji (od 2.1.251) |
| Elicitation | Gdy serwer MCP prosi o input użytkownika |
| ElicitationResult | Po odpowiedzi użytkownika na prośbę serwera MCP |
| SessionEnd | Na końcu sesji |
Pięć typów hooków
Hook nie musi być skryptem. Dokumentacja (stan na 1 października 2026) opisuje pięć typów, które wybierasz polem type:
| Typ | Co uruchamia |
|---|---|
command | Komendę powłoki. Dostaje JSON zdarzenia na stdin, odpowiada kodem wyjścia i tekstem na standardowym wyjściu (stdout). Najczęstszy wybór |
http | Wysyła JSON zdarzenia jako żądanie POST pod wskazany adres URL. Serwer odpowiada w tym samym formacie co komenda |
mcp_tool | Narzędzie z podłączonego serwera MCP. Jego odpowiedź Claude Code czyta jak stdout komendy |
prompt | Jednorazowe pytanie do modelu Claude, czy przepuścić akcję, czy ją zablokować. Model zwraca decyzję w JSON |
agent | Subagenta, który przed decyzją czyta pliki i przeszukuje kod, żeby sprawdzić warunki. Typ eksperymentalny |
Wszystkie hooki pasujące do zdarzenia uruchamiają się równolegle. Nie każde zdarzenie obsługuje wszystkie pięć typów - komplet mają m.in. PreToolUse, PostToolUse i Stop.
Jak hook dostaje dane
Hook typu command to komenda, która na stdin dostaje JSON z kontekstem zdarzenia: session_id, tool_name, tool_input (np. tool_input.file_path przy Write/Edit, tool_input.command przy Bash). Pola wyciągasz np. przez jq. Do dyspozycji masz też zmienną $CLAUDE_PROJECT_DIR - wskazuje root projektu, więc skrypty hooków trzymasz w repo niezależnie od bieżącego katalogu.
Przykład: Auto-formatowanie po zapisie pliku
Konfiguracja w settings.json - zwróć uwagę na schemat: matcher + zagnieżdżona tablica hooks:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"
}
]
}
]
}
}
Komenda czyta JSON ze stdin, jq wyciąga ścieżkę zapisanego pliku, prettier formatuje.
Przykład: Blokowanie niebezpiecznych operacji
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/check-safety.sh"
}
]
}
]
}
}
Skrypt blokujący:
#!/bin/bash
# .claude/hooks/check-safety.sh
COMMAND=$(jq -r '.tool_input.command')
if echo "$COMMAND" | grep -q 'rm -rf'; then
echo "Zablokowane: destrukcyjna komenda" >&2
exit 2
fi
exit 0
Kody wyjścia mają ścisłą semantykę: blokuje wyłącznie exit 2 - wtedy stderr wraca do Claude jako komunikat błędu i model wie, dlaczego operacja nie przeszła. Inne niezerowe kody NIE blokują (pokazują tylko notkę o błędzie hooka), a exit 0 to sukces. Zasada „blokuje tylko exit 2” obowiązuje bez zmian (stan na 1 października 2026). Co dokładnie znaczy „blokada”, zależy od zdarzenia: przy PreToolUse to odrzucenie wywołania narzędzia, przy PreModelSwitch to zatrzymanie zmiany modelu. Blokada z hooka działa nawet wtedy, gdy reguła allow przepuściłaby komendę: hook z exit 2 zatrzymuje wywołanie, zanim Claude Code w ogóle sprawdzi uprawnienia.
Podgląd: /hooks otwiera przeglądarkę skonfigurowanych hooków, tylko do odczytu. Przy każdym hooku widać, skąd pochodzi, np. z ustawień użytkownika, projektu, lokalnych, z pluginu albo z bieżącej sesji. Hooki dodajesz i usuwasz w plikach settings.json albo prosisz o to Claude.
Mody (mods) - hooki działające wewnątrz Claude Code
Nowość z 1 października 2026, wymaga wersji 2.1.287 lub nowszej. Mod to plugin, czyli paczka rozszerzeń do Claude Code, z funkcjami w JavaScripcie lub TypeScripcie. Claude Code wywołuje je przy zdarzeniach: wywołaniu narzędzia, wysłaniu promptu, rysowaniu interfejsu. Funkcja może zdarzenie obserwować, zmienić albo przejąć. Różnica wobec hooków z settings.json: te uruchamiają coś na zewnątrz, a mod działa w środku programu. Dzięki temu doda panel obok rozmowy, pasek nad promptem, własną komendę albo zmieni wygląd interfejsu.
Kilka funkcji Claude Code to już mody, np. /diff. Własny mod napisze Ci Claude - wystarczy opisać, czego potrzebujesz. Mody są domyślnie włączone i działają w terminalu oraz w zakładce Code aplikacji desktopowej.
| Chcesz | Wybierz |
|---|---|
| Zablokować, przepuścić albo zalogować zdarzenie skryptem | hook w settings.json |
| Przestać wklejać do czatu te same instrukcje | skill (opis niżej) |
| Dać Claude dostęp do zewnętrznego systemu | serwer MCP (następna lekcja) |
| Panel, pasek nad promptem, własną komendę albo przeróbkę zdarzenia | mod |
Uwaga na bezpieczeństwo: mod działa z Twoimi uprawnieniami i bez sandboxa, czyli izolacji opisanej na końcu lekcji. Może czytać i zapisywać pliki, uruchamiać programy, wysyłać dane w sieć, a nawet zatwierdzić wywołanie, o które reguła ask kazałaby pytać. Instaluj mody tylko od autorów i z marketplace'ów (katalogów pluginów), którym ufasz. Na jedną sesję wyłączysz wszystkie zainstalowane mody flagą --safe-mode, która wyłącza też inne Twoje dodatki.
Skills - custom slash commands
Skills to zdefiniowane przez użytkownika umiejętności - custom slash commands zapisane jako pliki Markdown z YAML frontmatter.
Struktura SKILL.md
---
name: "przeglad"
description: "Robisz code review aktualnych zmian"
---
## Instrukcje Code Review
1. Użyj `git diff` aby zobaczyć zmiany
2. Sprawdź: błędy logiczne, brakujące testy,
problemy z bezpieczeństwem
3. Wygeneruj raport: krytyczne → sugestie → pozytywy
Lokalizacja
| Ścieżka | Zakres | Git? |
|---|---|---|
.claude/skills/<nazwa>/SKILL.md | Projekt (zespół) | TAK |
~/.claude/skills/<nazwa>/SKILL.md | Globalny (osobisty) | NIE |
Poza tymi dwoma miejscami skille trafiają do sesji m.in. z ustawień zarządzanych, które wdraża administrator firmy (Enterprise), z pluginów (wywołujesz je jako /nazwa-pluginu:nazwa-skilla) i z konta claude.ai. Skille włączone na koncie synchronizują się do terminala, gdy logujesz się tym kontem (wymaga 2.1.275 lub nowszej). Synchronizacja nie działa przy logowaniu kluczem API ani na Amazon Bedrock. Wyłączysz ją ustawieniem syncClaudeAiSkills: false.
Wywoływanie
- Ręcznie: wpisz
/przegladw sesji - Automatycznie: Claude sam wywoła skill, jeśli uzna, że pasuje (na podstawie
description)
Jedna definicja, dwa wejścia - to celowe. Skill piszesz raz, a korzystasz z niego i Ty (slash command), i Claude (auto-inwokacja przy pasującym zadaniu).
Dlaczego przykład nie nazywa się review? /review to alias wbudowanego skilla /code-review. Własny skill o nazwie wbudowanego skilla (w spisie komend w dokumentacji ma oznaczenie Skill) zastąpi go, ale nie jego aliasy: skill code-review przejmie /code-review, a /review dalej uruchomi wersję wbudowaną. Wybieraj nazwy, które nie kolidują z komendami z /help.
Co ze starymi custom commands? Zostały scalone ze skillami: plik .claude/commands/deploy.md i skill .claude/skills/deploy/SKILL.md tworzą to samo /deploy i działają tak samo. Istniejące pliki w .claude/commands/ dalej działają - skille dodają folder na pliki pomocnicze i automatyczne wywoływanie.
Komendy do skilli: /skills pokazuje listę dostępnych skilli (klawisz t sortuje je po liczbie tokenów). /skill-doctor (wymaga 2.1.261 lub nowszej) pokazuje, ile kontekstu kosztuje każdy skill i jak często go używasz, i wskazuje skille, których nigdy nie wywołałeś. To ma znaczenie: opisy wszystkich skilli siedzą w kontekście, a lista ma budżet równy 1% okna kontekstu. Przy wielu skillach Claude Code pomija opisy części z nich, zaczynając od tych, których używasz najrzadziej, a skill bez opisu trudniej dopasować do Twojej prośby. Czy instrukcje w skillach i CLAUDE.md są aktualne i niesprzeczne, sprawdzi /doctor prompt-audit (wymaga 2.1.283 lub nowszej).
Aktualizacja (stan na 1 października 2026): od 6 sierpnia 2026 plan Enterprise ma skanowanie skilli i pluginów. Claude sprawdza cudzy skill albo plugin przy wgraniu lub edycji w organizacji (w Claude, Cowork i firmowym marketplace'ie) i zwraca wynik pass, warn (ostrzeżenie) albo fail (blokada). Do 2 października 2026 skanowanie było domyślnie wyłączone. Od tego dnia włącza się w organizacjach Enterprise, które same go nie ustawiły. Serwerów MCP i hooków nie obejmuje. Skill to kod uruchamiany w Twoim środowisku - traktuj cudze skille tak samo ostrożnie jak cudze paczki npm.
Przykład: Skill do tworzenia komponentów React
---
name: "component"
description: "Tworzysz nowy komponent React"
---
Użytkownik poda nazwę komponentu. Stwórz:
1. src/components/<Nazwa>/<Nazwa>.tsx
2. src/components/<Nazwa>/<Nazwa>.test.tsx
3. src/components/<Nazwa>/index.ts
Użyj konwencji z CLAUDE.md projektu.
Permissions - system uprawnień
Klasyczne zachowanie Claude Code: pytanie o pozwolenie PRZED każdą operacją z efektami ubocznymi (zapis pliku, wykonanie komendy, commit). Od sierpnia 2026 to już nie jest jedyny scenariusz. Od wersji 2.1.284 (28 września 2026) interaktywne sesje w terminalu i VS Code startują w trybie auto na każdym planie i u każdego dostawcy. Szczegóły i zastrzeżenia niżej.
Sześć trybów uprawnień
Stan na 1 października 2026 - dokumentacja wymienia sześć trybów, bez zmian od września:
| Tryb | Opis |
|---|---|
| default | Pyta o pozwolenie przy każdej operacji z efektami ubocznymi (w interfejsie: Manual) |
| acceptEdits | Auto-akceptuje edycje plików w katalogu roboczym; o resztę pyta |
| plan | Plan Mode - Claude tylko czyta i analizuje, potem przedstawia plan do zatwierdzenia. Zero zmian bez Twojego „go” |
| auto | Klasyfikator w tle ocenia każdą akcję: bezpieczne przepuszcza bez pytania, ryzykowne blokuje albo kieruje do Ciebie |
| dontAsk | Zamiast pytać - odmawia. Przechodzi to, co w trybie Manual nie wymaga zgody (np. odczyty w projekcie), to, na co pozwalają reguły allow, i to, co zatwierdzi hook PreToolUse. Przydaje się w CI, gdzie nikt nie odpowie na pytanie o zgodę |
| bypassPermissions | Wyłącza pytania o zgodę i kontrole bezpieczeństwa, więc wywołania idą od razu. Nie wyłącza wszystkiego: reguły deny dalej blokują, a reguły ask i usuwanie krytycznych ścieżek (np. rm -rf ~) dalej wymagają zgody. Tylko izolowane środowiska, np. kontenery i maszyny wirtualne bez dostępu do internetu (CI/CD). W terminalu to flaga --dangerously-skip-permissions, równoważna --permission-mode bypassPermissions |
Aktualizacja (stan na 1 października 2026): auto jest domyślne wszędzie. Od 14 sierpnia 2026 w trybie auto startowały nowe sesje na planach Pro, Max i Team. Od wersji 2.1.284 (28 września 2026) interaktywne sesje w terminalu i VS Code startują w auto na każdym planie i u każdego dostawcy, także na Enterprise, z kluczem API oraz na Bedrock, Google Cloud i Foundry. Cztery zastrzeżenia, bez których ta informacja wprowadza w błąd:
- Wersja. Start w auto na każdym planie wymaga Claude Code 2.1.284 lub nowszej. Na wersjach starszych niż 2.1.228 (macOS, Linux, WSL) albo 2.1.233 (natywny Windows) sesje startują w Manual.
- Pierwsza sesja. Pierwsza sesja po instalacji lub aktualizacji może wystartować w innym trybie niż zwykle, bo Claude Code wybiera tryb, zanim pobierze ustawienia z serwera. Kolejna sesja wraca do normy.
- Wyjątki.
claude -p(tryb jednorazowy) i Agent SDK startują wdefault, a w auto tylko u zewnętrznych dostawców albo przy wyłączonej telemetrii (2.1.285 lub nowsza). Organizacja może wyłączyć auto w ustawieniach zarządzanych. Ustawiony przez Ciebiepermissions.defaultModema pierwszeństwo przed wbudowanym auto - Claude Code go nie nadpisze. - Model. Na API Anthropic auto działa z Opus 4.6 lub nowszym, Sonnet 4.6 lub nowszym i z modelami Fable. Na Bedrock, Google Cloud i Foundry potrzebujesz Sonnet 5 lub nowszego, Opus 4.7 lub nowszego albo modelu Fable, a z innym modelem sesja startuje w Manual. Z Haiku i starszymi modelami trybu auto nie ma u żadnego dostawcy.
Co robi auto w praktyce: klasyfikator w tle przepuszcza akcje, które uznaje za bezpieczne (odczyty, edycje w projekcie, typowe komendy), a blokuje ryzykowne. Reguły auto mode podejrzysz i zmienisz w zakładce Auto mode w /permissions. Komenda /auto-mode-setup (Pro, Max, Team) szkicuje z projektu i ostatnich sesji opis Twojego środowiska dla klasyfikatora, a Ty go zatwierdzasz. Dokumentacja uczciwie zastrzega: auto zmniejsza liczbę pytań, ale nie gwarantuje bezpieczeństwa i przy wrażliwych operacjach nie zastąpi Twojego przeglądu. Pełny opis auto mode, dynamic workflows i agent teams znajdziesz w lekcji Tryb auto, dynamic workflows i agent teams.
Tryby przełączasz w sesji skrótem Shift+Tab: default → acceptEdits → plan → auto. bypassPermissions wchodzi do cyklu tylko po starcie z odpowiednią flagą albo z permissions.defaultMode ustawionym na bypassPermissions w ustawieniach użytkownika lub zarządzanych, a dontAsk nigdy (ustawiasz go flagą --permission-mode dontAsk). Bieżący tryb pokazuje pasek stanu, np. ⏵⏵ auto mode on albo ⏸ plan mode on. /permissions służy do reguł allow, ask i deny oraz ma zakładkę Auto mode. Plan Mode to najbezpieczniejszy sposób pracy z nieznanym codebase: najpierw analiza i plan, dopiero po akceptacji edycje. Domyślny tryb ustawisz kluczem permissions.defaultMode. Uwaga: z ustawień projektu (.claude/settings.json i .claude/settings.local.json) terminal nie przyjmie wartości auto ani bypassPermissions.
Reguły w settings.json
Reguły uprawnień zapisujesz w trzech tablicach: allow (bez pytania), deny (zawsze blokuj), ask (zawsze pytaj). Wpis to wzorzec Narzędzie(argumenty). Reguły obowiązują w każdym trybie, także w auto: deny blokuje niezależnie od tego, co uznał klasyfikator, a ask wymusza pytanie do Ciebie. W trybie bypassPermissions reguły allow nic nie zmieniają, ale deny i ask działają dalej. Reguły egzekwuje Claude Code, nie model: polecenie w prompcie albo w CLAUDE.md nie zmieni tego, na co program pozwala.
Projektowe (.claude/settings.json):
{
"permissions": {
"allow": [
"Read",
"Bash(npm run test *)"
],
"deny": [
"Bash(rm -rf *)",
"Bash(curl *)",
"Read(./.env)"
],
"ask": [
"Bash(git push *)"
]
}
}
Osobiste (.claude/settings.local.json - poza gitem):
{
"permissions": {
"allow": ["Write", "Edit", "Bash(npm run lint)"]
}
}
Zasada rozstrzygania: deny z dowolnego pliku wygrywa z allow z każdego innego. Blokada w repo zatrzyma Twoje osobiste zezwolenie, a Twoja osobista blokada (w ~/.claude/settings.json albo .claude/settings.local.json) zatrzyma zezwolenie z repo. Blokady z ustawień zarządzanych (managed, czyli narzuconych przez administratora firmy) nie zdejmie żaden inny plik ani flaga, nawet --allowedTools.
Trzy pułapki przy pisaniu takich reguł (stan na 1 października 2026):
- Glob i Grep. Na macOS, Linuksie i WSL Claude Code domyślnie nie ma tych narzędzi. Szuka przez
findigrepw Bashu, a te komendy nie wymagają zgody. Reguła allow ich nie przywróci, więcGlobiGrepwpisuj do reguł tylko na natywnym Windows. - Składnia
:*. FormaBash(npm run test:*)działa tak samo jakBash(npm run test *), ale okno uprawnień zapisuje wersję ze spacją. Spacja przed gwiazdką jest częścią reguły, więc żadna z tych form nie złapienpm run test:unit. Do tego potrzebujeszBash(npm run test*)bez spacji, która złapie też np.npm run testowy. - Deny to nie mur. Reguła Bash porównuje tekst komendy, więc
/bin/rm -rfalbosh -c 'curl …'ją ominą. Granicę dla plików i sieci niezależną od zapisu komendy daje sandbox (opis niżej). Własną logikę sprawdzania pełnej komendy dodasz hookiem PreToolUse z początku lekcji.
Granice auto mode: Containment Escape i odczyty poza projektem
Dwa bezpieczniki, które warto znać przed pracą w trybie auto (stan na 1 października 2026):
- Reguła Containment Escape (od 2.1.257): akcje, które wyprowadzają Claude poza granice środowiska, w którym pracuje, nie dostają automatycznej zgody klasyfikatora. Przykłady: pobranie poświadczeń z serwera metadanych chmury, tunel na zewnątrz albo skanowanie sąsiednich kontenerów. Auto mode ma przyspieszać pracę w projekcie, nie otwierać drzwi na zewnątrz.
permissions.blockReadsOutsideWorkingDirectories(od 2.1.257): ustawienie wsettings.json, przy którym narzędzia plikowe Claude odmawiają odczytu spoza katalogów roboczych sesji w każdym trybie, takżebypassPermissions. Komendy powłoki czytające takie pliki pytają wtedy o zgodę. Włącz je, jeśli w katalogu domowym trzymasz klucze, konfiguracje albo dane klientów.
Sandbox
Sandbox to dodatkowa warstwa izolacji: system operacyjny wymusza granice na plikach i sieci dla komend powłoki, które uruchamia Claude (Bash, PowerShell), i dla procesów, które te komendy startują. Włączasz go komendą /sandbox albo ustawieniem sandbox.enabled - to opcja, nie zachowanie domyślne:
- macOS: Seatbelt (wbudowany w system, nic nie instalujesz)
- Linux i WSL2: bubblewrap + socat (doinstalowujesz pakiety)
- Windows natywnie: brak wsparcia - na Windows sandbox uruchomisz tylko w WSL2
W sandboxie komendy piszą domyślnie tylko w katalogu roboczym, w prywatnym katalogu tymczasowym i w katalogach dodanych przez --add-dir. Czytać mogą za to większość dysku, łącznie z ~/.ssh i ~/.aws/credentials, więc wrażliwe ścieżki blokujesz ustawieniem sandbox.filesystem.denyRead. Ruch sieciowy idzie przez pośrednika (proxy) na Twoim komputerze z listą dozwolonych domen, na starcie pustą. Przy nowej domenie Claude Code pyta o zgodę, a w trybie auto (dziś domyślnym) domeny ocenia klasyfikator.
Granica sandboxa: obejmuje tylko komendy powłoki. Narzędzia plikowe Claude (Read, Edit, Write), WebFetch, serwery MCP i hooki działają poza nim, więc denyRead nie zatrzyma narzędzia Read. Do tego służą reguły deny z sekcji wyżej. Procesy uruchomione przez mody też działają poza sandboxem.
Ćwiczenie praktyczne: Skonfiguruj hooks i skills:
- Utwórz hook PostToolUse z matcherem
Write|Edit, który automatycznie formatuje kod po zapisie. Potem otwórz/hooksi sprawdź, czy hook jest na liście- Stwórz custom skill
/deployz instrukcjami deploy dla Twojego projektu- Skonfiguruj permissions:
ReadiBash(npm run test *)dopermissions.allow, aBash(rm -rf *)dopermissions.deny- Przełącz się Shift+Tab w Plan Mode i poproś o plan refaktoringu - zobacz, jak Claude analizuje bez dotykania plików
- Spójrz na pasek stanu i sprawdź, w jakim trybie startuje Twoja sesja. Jeśli to auto, otwórz
/permissions, zakładkę Auto mode, i przeczytaj, co klasyfikator przepuszcza bez pytania- Uruchom
/skill-doctori sprawdź, ile kontekstu kosztują Twoje skille. Nieużywane wyłącz
Co dalej
W następnej lekcji podłączysz Claude Code do zewnętrznych usług przez MCP Servers.