Kimi K3.1 Pro: tańszy od K3 i blisko OpusaCzytaj →
Poradnik

Mody w Claude Code: czym są i jak ich używać

Mody to wtyczki, które dokładają do Claude Code panel, pasek nad promptem i linię statusu. Od której wersji działają, jak zrobić własnego i na co uważać.

Schemat sesji Claude Code z dokumentacji Anthropic: pomarańczową ramką zaznaczone miejsca, które dokłada mod (panel z boku, powiadomienie, wiersz komunikatu, pasek nad promptem, linia statusu), przerywaną te, które może przerysować

Mod w Claude Code to wtyczka napisana w JavaScripcie albo TypeScripcie, której funkcje Claude Code wywołuje u siebie, we własnym procesie, za każdym razem, gdy coś się dzieje: agent sięga po narzędzie, Ty wysyłasz prompt, program rysuje kolejny fragment ekranu. Taka funkcja może zdarzenie tylko podejrzeć, zmienić je w locie albo odpowiedzieć na nie zamiast Claude Code. Dlatego mod potrafi coś, czego nie zrobi żadna inna wtyczka: dorysowuje w oknie Claude Code własny panel, pasek nad promptem, powiadomienie czy linię statusu, a elementy rysowane przez sam program umie podmienić na swoje.

To oficjalna nazwa, nie żargon społeczności. Anthropic wprowadził ją wpisem „Added Claude Mods: plugins may now modify deeper behavior” w dzienniku zmian wersji 2.1.287, a dokumentacja Claude Code ma dziś osobny dział poświęcony modom. Jeżeli dopiero poznajesz pracę z agentem w terminalu, zacznij od hasła CLI i od naszego poradnika jak zainstalować Claude Code.

Od której wersji działają i czy potrzebny jest płatny plan

Mody są włączone domyślnie. Dokumentacja stawia jeden warunek i dotyczy on wersji programu, nie planu: w terminalu potrzebujesz Claude Code 2.1.287 lub nowszego, a w zakładce Code aplikacji desktopowej wystarczy 2.1.286, ponieważ aplikacja ma własną kopię programu. Wersję w terminalu sprawdzisz poleceniem claude --version, a w aplikacji komendą /status, w wierszu „Claude Code”.

Poza wersją ogranicza Cię tylko polityka Twojej organizacji. Administrator może przez ustawienia zarządzane, czyli takie, których nie zmienisz z własnego konta, dopuścić wyłącznie mody zatwierdzone przez firmę albo zablokować kod wtyczek spoza organizacji. Żeby sprawdzić, czy u Ciebie mody w ogóle mogą się wczytać, uruchom w katalogu, w którym nie ma moda, polecenie claude plugin test. Komunikat „no hooks module to load” oznacza, że wszystko jest w porządku i po prostu nie było czego testować. Komunikat „hooks modules are turned off here” oznacza, że blokuje je ustawienie na Twoim komputerze albo zasada firmowa.

Mod, wtyczka, skill, hook i MCP: pięć różnych rzeczy

Serwis ma już teksty o MCP i o pliku AGENTS.md, więc warto te pojęcia rozdzielić raz a dobrze.

  • Wtyczka (plugin) to opakowanie. Może zawierać jednocześnie komendy, skille, agentów pomocniczych, serwery MCP i kod moda.
  • Mod to wtyczka, która dodatkowo ma plik hooks/hooks.json z kluczem modules wskazującym plik z kodem. Na tym kończy się cała różnica: wtyczka z tym kluczem staje się modem.
  • Hook z pliku ustawień to polecenie systemowe, żądanie HTTP albo prompt, który Claude Code odpala z zewnątrz w reakcji na wybrane zdarzenie. W tym tekście nazywamy go settings hookiem, a funkcję moda po prostu hookiem, tak samo jak robi to dokumentacja.
  • Skill to plik SKILL.md z instrukcjami, które czyta model. Skill zmienia to, co Claude wie i jak działa, ale niczego nie rysuje.
  • Serwer MCP to zewnętrzny proces, który daje modelowi dostęp do narzędzi i danych spoza sesji.

Praktyczny podział wygląda tak. Po moda sięgasz, gdy chcesz panel, pasek nad promptem, własną komendę uruchamiającą Twój kod albo przepisanie zdarzenia w locie. Settings hook wybierasz wtedy, gdy masz już gotowy skrypt, który ma coś zablokować lub zapisać do logu. Skill przyda się, gdy wklejasz w kółko te same instrukcje. Po MCP sięgasz, gdy agent potrzebuje dostępu do zewnętrznego systemu.

Co mod naprawdę potrafi

Miejsca, w których mod rysuje, dokumentacja nazywa punktami rysowania. Są to: panel (w szerokim terminalu pełnoekranowym po prawej stronie zapisu rozmowy, w węższym ramka nad promptem), pasek tuż nad promptem, powiadomienie w prawym górnym rogu, wiersz z komunikatem w zapisie rozmowy oraz linia statusu pod promptem. Do tego dochodzą elementy, które Claude Code rysuje sam i które mod może podmienić: wiadomości Twoje i agenta, wiersz wywołania narzędzia wraz z jego wynikiem, wiersz wypisany przez komendę, okno z pytaniem zadanym przez Claude’a, animowany wiersz informujący, że agent pracuje (w kodzie Spinner), a także kilka wierszy statusu dostępnych tylko w terminalu.

Wewnątrz panelu składasz obraz z gotowych elementów. Kontener (Box) układa resztę w wiersz albo kolumnę, tekst (Text) przyjmuje kolor, pogrubienie i kursywę, a przycisk (Button), pole tekstowe (Input) i lista wyboru (Select) zbierają to, co wpiszesz albo klikniesz. Dochodzi do tego element do kodu (Code), który pokazuje też różnicę w pliku, element do sformatowanego tekstu (Markdown), odnośnik (Link), siatka kolorowych komórek na wykres lub planszę w terminalu (Raster) oraz grafika wektorowa (Svg), rysowana wyłącznie w aplikacji desktopowej.

Panel moda w terminalu z trzema przyciskami w osobnych wierszach: Save w nawiasach kwadratowych, n: Next ze skrótem klawiszowym i wyszarzony Skip

Rysowanie to dopiero połowa sprawy. Druga to zdarzenia. Mod potrafi wejść w wywołanie narzędzia, zanim ono ruszy, i odmówić jego wykonania, podmienić jego argumenty albo odpowiedzieć gotowym wynikiem bez uruchamiania czegokolwiek. Przepisze Twój prompt przed wysłaniem albo go odrzuci. Podmieni model lub to, jak długo ma on myśleć nad odpowiedzią, dla pojedynczego zapytania w ramach jednej tury, czyli jednej wymiany złożonej z Twojego promptu i odpowiedzi agenta. Zarejestruje też własną komendę ze znakiem ukośnika, która uruchamia jego kod od razu, bez angażowania modelu. Wszystkie hooki jednego moda mają dostęp do tych samych zmiennych w jednym pliku, dzięki czemu jeden hook może liczyć wywołania narzędzi, a drugi pokazywać tę liczbę obok animowanego wiersza pracy.

Jak zacząć: poproś Claude’a, żeby napisał moda

Najprostsza droga nie wymaga pisania kodu. W zwykłej sesji, tej otwieranej poleceniem claude, opisz po ludzku, czego chcesz, na przykład „zrób moda, który pokazuje nad promptem aktualną gałąź gita”. Claude Code ma do tego wbudowany skill o nazwie plugin-authoring, który podpowiada mu, gdzie zapisać pliki oraz jakie zdarzenia i metody ma Twoja wersja programu. Możesz go też wywołać ręcznie, komendą /plugin-authoring.

Claude zapisze moda w osobnym katalogu wewnątrz katalogu sesji, czyli ~/.claude/dev-mods/ z dopisanym identyfikatorem bieżącej sesji. W dwóch najczęściej używanych trybach uprawnień, default i acceptEdits, zatwierdzisz każdy plik osobno, ponieważ cały katalog ~/.claude jest ścieżką chronioną. Przy pierwszym zapisanym pliku program zapyta, czy włączyć przeładowywanie na żywo dla tej sesji. Odpowiedź „Enable for this session” sprawia, że mod wczytuje się na koniec tury i przeładowuje po każdej kolejnej turze, która zmieniła jego pliki. Odpowiedź „Not now” zostawia pliki na dysku i wczytuje je dopiero wtedy, gdy wrócisz do tej sesji.

Czy mod faktycznie się wczytał, sprawdzisz komendą /plugin, w zakładce Installed. Pod zakładkami pojawia się też wiersz z liczbą i nazwami, w stylu 1 mod active · first-mod. Jeżeli efekt nie jest taki, jak chcesz, po prostu powiedz w kolejnej turze, co zmienić.

Jedna pułapka: mod napisany w sesji wczytuje się wyłącznie w tej sesji, a jego katalog znika po liczbie dni ustawionej w opcji cleanupPeriodDays, odpowiadającej za sprzątanie starych plików. Jeżeli chcesz go zatrzymać na dłużej, skopiuj katalog w swoje miejsce i uruchamiaj Claude Code z dopiskiem wskazującym ten katalog:

claude --plugin-dir ~/mods/git-branch

Jak zainstalować cudzego moda

Mod instaluje się tak samo jak każda inna wtyczka, czyli z marketplace’u. Marketplace to repozytorium z listą wtyczek, które najpierw dodajesz do swojej konfiguracji, a dopiero potem instalujesz z niego pojedyncze pozycje. Przy instalacji podajesz nazwę wtyczki, znak @ i nazwę marketplace’u:

# w sesji Claude Code
/plugin install token-chart@your-org

# albo w terminalu, poza sesją
claude plugin install token-chart@your-org

Nazwy w przykładzie są poglądowe: podstawiasz te, które poda autor wtyczki. Jeżeli instalujesz z terminala przy otwartej sesji, wczytasz nowość komendą /reload-plugins. W przeciwnym razie mod zacznie działać przy następnym uruchomieniu programu.

Anthropic udostępnia też przykładowe mody w repozytorium claude-code-playground, bez gwarancji i pomocy technicznej, jako kod do podejrzenia. Są wśród nich token-weather, rysujący nad promptem prognozę zapełnienia okna kontekstu, blast-radius, który wstrzymuje ryzykowne polecenie systemowe i pokazuje, co by ono zmieniło, razem z przyciskami do zatwierdzenia albo odrzucenia, oraz replay-theater z komendą przeglądającą zmiany w plikach z ostatniej tury.

Z czego składa się mod

Ta część jest dla osób, które chcą zajrzeć do kodu. Do korzystania z modów nie jest potrzebna. Najmniejszy działający mod to trzy pliki, bez żadnego dodatkowego programu do przetwarzania kodu: Claude Code wczytuje pliki .js i .ts wprost.

first-mod/
├── .claude-plugin/
│   └── plugin.json      # opis wtyczki: nazwa, wersja, autor
└── hooks/
    ├── hooks.json       # {"modules": ["./register.js"]}
    └── register.js      # kod moda

Plik z kodem udostępnia funkcję register, a ta rejestruje hooki. Każdy hook dostaje trzy wartości: interfejs programu (oznaczany $), dane zdarzenia i funkcję przekazującą zdarzenie dalej. Wywołanie jej oznacza „rób swoje, Claude Code”, a pominięcie oznacza „odpowiadam zamiast ciebie”.

let calls = 0

export function register(on) {
  on('tool.call', async ($, e, next) => {
    calls += 1
    $.ui.invalidate('ui.render')
    return next(e)
  })

  on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
    return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
  })
}

Mody wbudowane, czyli te, których już używasz

Część funkcji Claude Code to mody, choć nikt ich tak nie reklamuje. Znajdziesz je w /plugin, w zakładce Installed, pod nagłówkiem Built-in. Komenda /diff i jej panel to mod. Wczytywanie pliku AGENTS.md jako instrukcji projektu to mod. Skill do pisania modów trafia na tę samą listę jako wtyczka wbudowana, choć sam kodu moda nie zawiera. Dochodzi do tego wtyczka pilnująca ustawień organizacji, wtyczka zbierająca dane o użyciu oraz wyłączona domyślnie funkcja „You should know”, w której agent pomocniczy obserwuje dłuższe zadania i pokazuje nad promptem uwagę o rzeczach łatwych do przeoczenia. Tę ostatnią włączasz komendą /plugin enable cc-plugin-you-should-know@builtin. Kod kilku z nich jest publicznie dostępny w repozytorium Claude Code i to najlepszy materiał poglądowy, jaki znajdziesz.

Panel moda z czterowierszową różnicą w pliku: usunięty wiersz na czerwonym tle, dodany na zielonym, z mocniej podświetlonymi zmienionymi słowami

Gdzie mody działają, a gdzie tylko częściowo

Hooki uruchamiają się w każdej sesji, która wczyta wtyczkę. Z rysowaniem jest inaczej: działa w mniejszej liczbie miejsc. W terminalu, również tym wbudowanym w edytor, sprawdza się jedno i drugie. W zakładce Code aplikacji desktopowej też, poza elementami zarezerwowanymi dla terminala. W sesji WSL w aplikacji, czyli w Linuksie uruchomionym wewnątrz Windowsa, nie działa nic, ponieważ wtyczki są tam niedostępne. W oknie czatu rozszerzenia do VS Code, w trybie nieinteraktywnym claude -p i w Agent SDK hooki się wykonują, ale nic się nie rysuje. Tak samo w sesji w chmurze, o ile wtyczka w ogóle do niej dociera. Przy zdalnym sterowaniu z claude.ai albo z telefonu hooki pracują w sesji na Twoim komputerze i tam też widać efekt rysowania.

Bezpieczeństwo: tu jest realne ryzyko

Dokumentacja mówi o tym wprost i warto to powtórzyć. Mod to kod uruchamiany z Twoimi uprawnieniami, wewnątrz Claude Code, i nie działa w piaskownicy, czyli w odizolowanym środowisku, z którego program nie sięgnie do reszty komputera. Po wczytaniu potrafi czytać i zapisywać pliki wszędzie tam, gdzie sięga Twoje konto, uruchamiać programy i łączyć się z siecią. Ma wgląd w ustawienia i w zmienne środowiskowe, czyli w miejsca, w których zwykle leży klucz API. Widzi każdy Twój prompt i każde wywołanie narzędzia. Potrafi je przepisać, wysłać polecenie tak, jakbyś wpisał je sam, albo zatwierdzić narzędzie, zanim program zdąży Cię o to zapytać. Może też zużywać Twój limit, ponieważ sam potrafi odpytywać model. Jeżeli włączysz piaskownicę, obejmie ona polecenia systemowe uruchamiane przez agenta, ale program uruchomiony przez moda i tak zostanie poza nią.

Jedna granica jest pewna: mod nie przerysuje okna z pytaniem o uprawnienia. To okno nie jest punktem rysowania, więc nikt nie podmieni Ci treści pytania, na które odpowiadasz.

Zanim zainstalujesz cokolwiek z zewnątrz, pobierz pliki wtyczki i sprawdź katalog poleceniem, które czyta kod, ale go nie uruchamia:

claude plugin validate ./some-mod

Wypisze wiersz hooks: z listą zdarzeń, które mod obsługuje, oraz wiersz calls: z listą metod, po które sięga, więc od razu widać, czy mod czyta pliki, uruchamia programy albo łączy się z siecią. Jeśli mod czyta albo zmienia zmienne środowiskowe, polecenie dopisze o tym osobne wiersze.

Wyłączyć mody można na trzy sposoby. Pojedynczy mod zatrzymasz w /plugin. Wszystkie zainstalowane wyłączysz na jedną sesję, uruchamiając program z dopiskiem --safe-mode. Na stałe wyłącza je wpis "disableAllHooks": true w pliku ~/.claude/settings.json, przy czym razem z modami przestaną wtedy działać Twoje settings hooki i własna linia statusu. Żaden z tych sposobów nie wyłącza modów wbudowanych.

Limity, o których warto wiedzieć

Hook ma 10 sekund na własną pracę przy jednym zdarzeniu, a hook reagujący na edycję promptu tylko 50 milisekund, więc ciężkie liczenie trzeba zepchnąć w tło. Liczba przerysowań jest ograniczona do 10 na sekundę, a w terminalu do 30 dla widocznego panelu, więc animacja nie będzie płynniejsza. Wspólny magazyn danych moda mieści 4 MiB, czyli około 4 MB tekstu. Panel otwarty przez samego moda, bez Twojego udziału, pojawi się dopiero przy terminalu szerokim na 144 kolumny, czyli znaki w poziomie. Po tym, jak raz otworzysz go sam, wystarczy 110. Chodzi o to, żeby wtyczka nie zagarnęła małego ekranu bez pytania.

Komu to się przyda

Jeżeli Claude Code jest Twoim głównym narzędziem pracy, mody są pierwszym miejscem, w którym możesz dopasować go do siebie bez czekania, aż Anthropic doda taką funkcję. Licznik zużycia limitu nad promptem, panel z listą plików zmienionych w sesji, zablokowanie polecenia, którego nigdy nie chcesz uruchomić, własna komenda odpalająca Twój skrypt: to wszystko mieści się w jednym pliku kodu, a od tego pliku dzieli Cię jedno zdanie opisu w sesji. O pozostałych funkcjach Claude Code, od instalacji po komendy na co dzień, piszemy w karcie narzędzia, ściądze z komendami i recenzji po trzech tygodniach testów.

Najczęstsze pytania

Czy „mod” to oficjalna nazwa Anthropic?

Tak. Anthropic wprowadził ją wpisem „Added Claude Mods” w dzienniku zmian wersji 2.1.287, a dokumentacja Claude Code ma osobny dział o modach: przegląd, tworzenie, rysowanie interfejsu i opis zdarzeń.

Czym mod różni się od zwykłej wtyczki?

Mod jest wtyczką, tylko szczególną: ma plik hooks/hooks.json z kluczem „modules”, który wskazuje plik z kodem. To ten klucz sprawia, że wtyczka staje się modem. Wtyczka bez niego daje tylko komendy, skille czy serwery MCP.

Od której wersji Claude Code działają mody?

W terminalu od wersji 2.1.287. W zakładce Code aplikacji desktopowej wystarczy 2.1.286, bo aplikacja ma własną kopię Claude Code i wyprzedziła o jedno wydanie wersję z terminala.

Czy mod może zatwierdzić coś za mnie?

Tak, i to główne ryzyko. Mod działa z Twoimi uprawnieniami, poza izolacją: czyta i zapisuje pliki, uruchamia programy, łączy się z siecią i potrafi zatwierdzić wywołanie narzędzia, zanim Claude Code zdąży Cię o nie zapytać.

Newsletter

Opanuj AI‑coding w 5 minut. W każdy poniedziałek.

Konkretne premiery, analizy cen i jeden trik, który przyspieszy Twoją pracę. Po polsku, bez żargonu, prosto na maila.

Zero spamu · wypisujesz się jednym kliknięciem.