AIDive

Przetestowałem 10 modów Claude Code. 3 zostają

AIDive · Opublikowano

Agenty do kodowaniaBezpieczeństwo AI

Wstęp — dziesięć modów, trzy zostają

Mody do Claude Code to funkcje TypeScript w pluginach, które potrafią przerysować interfejs Claude Code albo przepisać to, co robi. W ciągu doby od premiery na początku października trzy osobne przeglądy wideo kazały deweloperom zainstalować dziesięć z nich. Dwóch autorów przyznaje przed kamerą, że część modów nic nie oszczędza, a żaden z nich nie zmierzył ani jednego. Ten test to robi: każdy z dziesięciu rozreklamowanych modów przeszedł przez prawdziwy tydzień pracy, a przy każdym jest liczba opisująca narzut, oszczędność i werdykt: zostaje albo do usunięcia. Wynik na początek: tylko trzy z dziesięciu zasługują na miejsce na maszynie pracującego dewelopera, a jeden z nich po cichu zużywa tokeny przy każdej odpowiedzi.

Fala i co uruchomiliśmy

Oficjalna definicja Anthropic mieści się w jednym zdaniu: mod to funkcja, która podpina się pod zdarzenie i może się uruchomić przed nim, po nim albo zamiast niego. Zdarzeniem jest wywołanie narzędzia, wysłany prompt albo fragment rysowanego interfejsu. Mody to zwykły TypeScript, dostarczany w pluginie, który instaluje się jak każdy inny.

Tweet premierowy przekroczył cztery miliony wyświetleń w około dobę, z dwudziestoma tysiącami polubień i większą liczbą zakładek niż odpowiedzi i udostępnień razem wziętych. Dwa dni po premierze katalog społeczności przeskanował już ponad tysiąc publicznych modów w setkach repozytoriów.

Stanowiskiem testowym jest jeden prawdziwy tydzień pracy: 85 sesji w czterech projektach, prawie 900 promptów i niecałe 6000 wywołań narzędzi. Każdy mod przeszedł audyt walidatora, który wymienia, pod co się podpina i czego może dotknąć, a każdy wykonał to samo zadanie względem czystej bazy, na bieżącym wydaniu, na tej samej maszynie.

Główny podział: sześć z dziesięciu nie kosztuje nic, co da się zmierzyć w runtime, trzy kosztują realny czas lub realne tokeny, a jeden łamie jedyną obietnicę, jaką składa.

Warstwa dekoracji, zmierzona

Cichych sześć mieści się w szumie połączenia. Miernik celu, mapa cieplna repo, rejestrator lotu, router modeli, zakładki sesji i automatyczne przekazanie mieszczą się między ćwierć sekundy oszczędności a jedną piątą sekundy narzutu, przy zadaniu bazowym trwającym około czterech sekund.

Mod Różnica w runtime Uwagi
Miernik celu w granicach szumu panel dekoracyjny
Mapa cieplna repo w granicach szumu podświetla pliki w miarę czytania
Rejestrator lotu w granicach szumu oś czasu tury na żywo
Router modeli w granicach szumu opłaca się przy subagentach, zob. werdykt
Zakładki sesji w granicach szumu szeroki zakres uprawnień
Automatyczne przekazanie ~70 ms w bezczynności zapisuje jedno przekazanie po osiągnięciu progu kontekstu

Wyglądają świetnie i nic się nie zepsuło: każdy przebieg każdej konfiguracji poprawnie ukończył zadanie. W trybie headless nie kosztują nic, bo nie ma czego rysować; w terminalu te panele przerysowują się nawet trzydzieści razy na sekundę, więc uczciwym kosztem warstwy dekoracji jest uwaga, a nie tokeny.

Audyt walidatora to miejsce, w którym przestaje być zabawnie. Mod z zakładkami może wywoływać model, uruchamiać procesy na twojej maszynie i zapisywać pliki, a ścieżki do konfiguracji odczytuje ze zmiennych środowiskowych. Nic z tego nie jest ukryte i nic nie jest złośliwe, ale to bardzo duży zasięg jak na zakładki. Cztery mody odpadają tutaj: miernik celu, mapa cieplna i rejestrator lotu jako dekoracja bez żadnej zmierzonej korzyści oraz mod z zakładkami, bo prosi o więcej, niż daje.

Flagowy mod rachunkuje każdą turę

Podpowiadacz to mod, który każdy film pokazuje jako pierwszy: odpowiedź się kończy, nad polem wpisywania pojawiają się trzy propozycje promptów, naciskasz cyfrę i szkic wypełnia się sam. Mechanizm opisuje sam jego autor: gdy tura się kończy, mod rozwidla sesję, żeby poprosić model o te propozycje, a rozwidlenie współdzieli cache promptów sesji, więc kosztuje mniej więcej jedną krótką odpowiedź. Przeglądy nigdy nie wspominają o tej linii.

Na stanowisku testowym daje to około 250 dodatkowych tokenów wyjścia na kwalifikującą się odpowiedź i prawie trzy sekundy dodatkowego czasu, a kwalifikująca się odpowiedź to niemal każda odpowiedź: wszystko dłuższe niż około osiemdziesięciu znaków. Rozwidlenie nie ma też bramki powierzchni. Propozycje rysują się tylko w terminalu, ale rozwidlenie odpala się wszędzie, także w przebiegach headless, w których nic nie można narysować.

Mod Zmierzony koszt Kiedy się uruchamia
Podpowiadacz ~250 tokenów wyjścia + ~2,9 s na kwalifikującą się odpowiedź każda odpowiedź powyżej ~80 znaków, także w headless
Strażnik cache ~1,5 s na turę, plus wywołania modelu w trybie rozgrzewania każda tura, rozgrzewanie przez wiele godzin

Strażnik cache ma ten sam kształt: około półtorej sekundy na turę i tryb rozgrzewania, który przez wiele godzin wydaje małe wywołania modelu, żeby cache promptów nie wystygł. W planie subskrypcyjnym okno cache trwa już godzinę, więc płacisz pingami za problem, który plan w większości już rozwiązał. Oba projekty są uczciwe i mają udokumentowane koszty, oba są podatkiem od każdej tury, którego listy instalacyjne nie wyceniają, i oba wylatują z maszyny.

Mod kontra hook, ta sama robota

Claude Code miał już hooki: skrypt powłoki w ustawieniach, który odpala się na tych samych zdarzeniach. Dokumentacja rozstrzyga wybór jednym wierszem tabeli: mod służy do interfejsu i przepisywania zdarzeń; hook do blokowania, zezwalania lub logowania skryptem, który już masz.

Mierzalna różnica to uruchamianie procesu. Hook w ustawieniach startuje nowy proces przy każdym wywołaniu narzędzia. Zmierzone na tej maszynie, hook powłoki, który nic nie robi, kosztuje około 8 ms, a hook uruchamiający Node około 43 ms, przy każdym wywołaniu, zanim skrypt zrobi cokolwiek. Przy 5993 wywołaniach narzędzi z tygodnia testowego daje to ponad cztery minuty samego startu interpretera. Mod nie płaci nic z tego: jego handler działa w procesie samego silnika, a log silnika pokazuje, że przeskok zamyka się w około milisekundzie.

Handler Koszt wywołania Tydzień 5993 wywołań
Hook powłoki (no-op) ~8 ms ~48 s
Hook Node (no-op) ~43 ms ~4,3 min
Mod (w procesie) ~1 ms ~6 s

Jedyny prawdziwy raport z migracji w terenie mówi to samo: dwadzieścia siedem hooków powłoki zwinęło się w pięć modów, a start procesu przy każdym wywołaniu zniknął razem z nimi. Zasada, która zostaje: interfejs lub przepisywanie zdarzeń, mod; blokowanie, zezwalanie lub logowanie skryptem, któremu ufasz, hook; koszt startu procesu liczy się dopiero przy tysiącach wywołań; wiedza, którą ciągle powtarzasz, skill. Hook, który przeczytałeś, wygrywa z modem, którego nie przeczytałeś.

Strażnik, który nic nie robi

Najprostszy możliwy mod bezpieczeństwa to strażnik, który pilnuje każdego polecenia powłoki, a ten został napisany tak, żeby się wywalał. Claude Code poproszono o utworzenie pliku znacznikowego; strażnik rzucił wyjątek; polecenie i tak się wykonało, a plik się pojawił. To nie błąd, tylko udokumentowane ustawienie domyślne: gdy hook rzuca wyjątek, przekracza limit czasu lub zwraca zły kształt danych, Claude Code pomija go i idzie dalej. Zepsuta dekoracja nie powinna unieruchomić sesji, ale zepsuty strażnik zawodzi otwarcie, po cichu, z jedną linią w logu debugowania, której nikt nie czyta.

Poprawka to jeden handler catch, który zwraca odmowę. Ten sam wywalający się strażnik z handlerem catch odmawia wykonania polecenia i wskazuje przyczynę awarii. Jedna linia decyduje, czy strażnik zawodzi otwarcie, czy zamknięcie, dokumentacja dostarcza dokładnie ten wzorzec, a prawie nikt go nie instaluje.

Zespół ze społeczności powtórzył przypadki na bieżącym wydaniu i oceniał je po plikach znacznikowych, a nie po tym, co powiedział model. Wzorzec z catch zawiódł zamknięcie trzy razy na trzy, a jedna ścieżka nadal jest po cichu zepsuta: odmowa zwrócona po tym, jak wywołanie zostało już przekazane dalej, nie zatrzymuje narzędzia. Plik pojawił się trzy razy na trzy, podczas gdy modelowi powiedziano, że zapis się nie udał.

Raport z praktyki, który nazwał ten problem, opisywał strażnika działającego przez wiele dni, który był włączony, załadowany i nie robił nic, bo nieaktualna flaga wyłączyła go pod spodem: trzy zielone znaczniki nad licznikiem zatrzymanym na zerze. Cisza, która wygląda dokładnie jak zdrowie.

Strażnik kolizji zdobywa pierwsze miejsce na liście do zostawienia. Rozwiązuje prawdziwy problem, czyli dwa otwarte czaty edytujące ten sam plik, a jego awaria jest głośna: pyta w oknie dialogowym i nigdy po cichu nie zezwala. Kosztuje około pół sekundy przy edycjach i nie dodaje nic do promptu. Zainstaluj go i mimo to dodaj mu handler catch.

Co oddajesz, wklejając moda

Anthropic mówi to wprost w dniu premiery: mody działają z takim samym dostępem do twojej maszyny jak sam Claude Code. Nie są w piaskownicy; instaluj je tak, jak instalujesz każdy kod na swoim komputerze. W praktyce mod może działać na twojej maszynie jako ty: czytać twoje środowisko i ustawienia, gdzie leżą klucze API; widzieć każdy prompt i każde wywołanie narzędzia; przepisywać je; zatwierdzić wywołanie narzędzia, zanim ktokolwiek cię zapyta; i wydawać limit twojego planu na własne wywołania modelu.

Dwie pułapki łapią nawet ostrożnych użytkowników. Reguły uprawnień rządzą wywołaniami narzędzi Claude'a, a nie własnymi wywołaniami moda: odmów Claude'owi pliku env, a mod nadal może przeczytać ten plik bezpośrednio własnym dostępem do plików albo uruchomić program, który to zrobi. Polityka sieciowa ma tę samą krawędź: wyłącz ruch webowy, a własne wywołania fetch moda zostaną odrzucone, ale proces potomny uruchomiony przez moda łączy się z siecią z pełnym dostępem. Istnieje wbudowany mod strażnika, który ładuje się przed wszystkim, ale tylko na maszynach zarządzanych i dla miejsc w planie Team lub Enterprise; pojedyncze miejsce na osobistej subskrypcji nie dostaje z tego nic.

Nic z tego nie jest teoretyczne. Użytkownik opublikował proof of concept w kilka dni po premierze: mod, którego przycisk uruchamia program i zapisuje coś w katalogu domowym, zainstalowany z katalogu bez żadnego ostrzeżenia. Jego argument się trzyma: katalog wygląda jak sklep z aplikacjami, co sugeruje weryfikację, której nie ma. Osobny błąd hooków zepsuł izolację subagentów na jeden dzień; opiekun nazwał to wielką wpadką i naprawił wydaniem później.

Własny skan katalogu obejmujący ponad tysiąc publicznych modów: ponad czterysta uruchamia procesy hosta, prawie czterysta czyta pliki, a ponad trzysta widzi każde wywołanie narzędzia. Zastrzeżenie katalogu to właściwa rama: to ślad uprawnień, a nie werdykt; tracker PR musi uruchamiać git. Dyscyplina kosztuje dwie minuty: uruchom walidator przed włączeniem czegokolwiek i znaj wyjścia awaryjne: tryb bezpieczny na jedną sesję, jedno ustawienie, które na stałe zatrzymuje każdy zainstalowany hook.

Zostają trzy, siedem do usunięcia

Z dziesięciu na swoje miejsce zasługują trzy: strażnik kolizji, router modeli i automatyczne przekazanie.

Mod Werdykt Liczba, która za tym stoi
Strażnik kolizji zostaje ~0,5 s przy edycjach, zawodzi głośno, nic nie dodaje do promptu
Router modeli zostaje subagent rozliczony po tanim modelu, za jedną trzecią ceny
Automatyczne przekazanie zostaje 70 ms niczego, jeden zapis przekazania po progu kontekstu
Podpowiadacz do usunięcia ~250 tokenów wyjścia + ~2,9 s przy każdej kwalifikującej się odpowiedzi
Strażnik cache do usunięcia ~1,5 s na turę, pingi rozgrzewające wobec 1-godzinnego okna cache
Tryb nagrywania do usunięcia maskuje ekran, ale nie dysk
Miernik celu do usunięcia dekoracja, zero zmierzonej korzyści
Mapa cieplna repo do usunięcia dekoracja, zero zmierzonej korzyści
Rejestrator lotu do usunięcia dekoracja, zero zmierzonej korzyści
Zakładki sesji do usunięcia zasięg daleko poza zadaniem

Router modeli ma paragon: sesja na dużym modelu uruchomiła jednego subagenta, a własny odczyt zużycia pokazał, że subagent został rozliczony po tanim modelu, za jedną trzecią ceny przy tej samej małej robocie. W tygodniach pełnych subagentów to realne pieniądze. Automatyczne przekazanie nie kosztuje nic aż do chwili, gdy się zwraca: siedemdziesiąt milisekund narzutu w bezczynności, a po przekroczeniu progu kontekstu zapisuje przekazanie na zimny start, raz. Jeden z twórców tej fali przyznaje, że ręczny przycisk przekazania naprawdę nie oszczędza czasu; jako automatyczny zapis po progu faktycznie oszczędza.

Dyscyplina, która przetrwa test: przeczytaj audyt walidatora, zanim cokolwiek włączysz, daj każdemu strażnikowi handler catch, żeby zawodził zamknięcie, i nagrywaj demo w trybie bezpiecznym zamiast ufać modowi maskującemu. Ograniczenia są realne: jeden tydzień, jedna maszyna, jedno obciążenie, trzy przebiegi na punkt na małym modelu. Twoja trójka może być inna, ale teraz wiesz, jak ją znaleźć.

Źródła

Najczęstsze pytania

Czym są mody do Claude Code?
Mody to funkcje TypeScript w pluginach Claude Code, które podpinają się pod zdarzenie — wywołanie narzędzia, wysłany prompt, fragment rysowanego interfejsu — i mogą się uruchomić przed nim, po nim albo zamiast niego. Mogą przerysować interfejs albo przepisać to, co robi Claude Code.
Które mody do Claude Code naprawdę warto zainstalować?
Na zmierzonym tygodniu prawdziwej pracy trzy z dziesięciu rozreklamowanych modów zasłużyły na keep: strażnik kolizji (zatrzymuje dwa czaty edytujące ten sam plik, zawodzi głośno), router modeli (subagent rozliczany za jedną trzecią ceny) i automatyczne przekazanie (70 ms kosztu w bezczynności, jeden automatyczny zapis przekazania).
Czy mody do Claude Code kosztują tokeny?
Większość nie, ale podpowiadacz rozwidla sesję po każdej kwalifikującej się odpowiedzi, co kosztuje około 250 tokenów wyjścia i prawie trzy sekundy czasu na turę, a tryb rozgrzewania strażnika cache przez wiele godzin wydaje małe wywołania modelu.
Czy mody do Claude Code są bezpieczne do instalacji?
Mody działają z takim samym dostępem do twojej maszyny jak sam Claude Code i nie są w piaskownicy. Reguły uprawnień rządzą wywołaniami narzędzi Claude'a, a nie własnymi wywołaniami moda, więc mod może czytać pliki lub uruchamiać procesy, których twoje reguły odmawiają Claude'owi. Uruchom audyt walidatora, zanim cokolwiek włączysz.
Czym różni się mod do Claude Code od hooka?
Oba odpalają się na tych samych zdarzeniach. Hook to skrypt powłoki, który płaci nowym procesem przy każdym wywołaniu narzędzia (około 8 ms dla powłoki, 43 ms dla Node), a handler moda działa w procesie silnika w około milisekundę. Mod wybierz do interfejsu lub przepisywania zdarzeń, hook do blokowania, zezwalania lub logowania skryptem, któremu ufasz.
Co się stanie, gdy mod-strażnik w Claude Code się wywali?
Domyślnie zawodzi otwarcie: Claude Code pomija zepsuty handler, a polecenie i tak się wykonuje, z jedną linią w logu debugowania. Dodanie handlera catch zwracającego odmowę sprawia, że strażnik zawodzi zamknięcie, a dokumentacja dostarcza dokładnie ten wzorzec.

Powiązane filmy