Claude Code wprowadza hooki PreModelSwitch i PostModelSwitch do obsługi zmiany modeli
Narzędzie Claude Code w wersji 2.1.251 otrzymało aktualizację rozszerzającą zarządzanie cyklem życia sesji. Do puli dostępnych zdarzeń dołączają dwa nowe hooki: PreModelSwitch oraz PostModelSwitch. Pozwalają one zaawansowanym programistom na automatyczne reagowanie i kontrolowanie procesu zmiany modelu językowego w trakcie pracy, na przykład podczas korzystania z komendy /model.
Kontrola nad zmianą modelu
Wprowadzone w wersji 2.1.251 hooki działają w kluczowych momentach cyklu zmiany asystenta:
PreModelSwitch– uruchamia się tuż przed zastosowaniem zmiany modelu, o którą poprosił użytkownik lub klient. Zdarzenie to daje pełną kontrolę nad procesem: skrypt obsługujący ten hook może zablokować przełączenie modelu, wymusić dodatkowe potwierdzenie, zalogować próbę zmiany, a także wstrzyknąć dodatkowy kontekst przygotowany specjalnie pod nowo wybrany model.PostModelSwitch– aktywuje się po pomyślnym zakończeniu zmiany modelu w bieżącej sesji. Obejmuje to również automatyczne zmiany dokonywane przez samo narzędzie Claude Code, takie jak przywrócenie wcześniej używanego modelu podczas wznawiania sesji.
Dodanie tych hooków cyklu życia ułatwia tworzenie rygorystycznych środowisk pracy, gdzie zmiana modelu może wymagać audytu, zarządzania limitami lub specyficznego przygotowania środowiska uruchomieniowego.
Precyzyjne filtrowanie za pomocą matcherów
Aby hooki nie uruchamiały się niepotrzebnie, Claude Code pozwala na użycie pola matcher, które w przypadku nowych zdarzeń filtruje wywołania na podstawie kanonicznej nazwy modelu (canonical name), na który następuje przełączenie.
Programiści mogą stosować zarówno dokładne dopasowania, jak i wyrażenia regularne. Przykładowo:
claude-opus-5– hook uruchomi się tylko przy próbie przełączenia na ten konkretny model.claude-opus-4-6|claude-opus-5– wywołanie nastąpi przy zmianie na jeden ze wskazanych modeli..*opus.*– wyrażenie regularne wychwytujące przełączenie na dowolny model, którego nazwa zawiera tę frazę.
Konfiguracja w projektach
Podobnie jak w przypadku innych zdarzeń (np. PreToolUse czy SessionStart), definicje nowych hooków umieszcza się w plikach konfiguracyjnych JSON. Zasięg ich działania zależy od miejsca zapisania pliku:
~/.claude/settings.json– obejmuje wszystkie projekty na danym urządzeniu (zasięg globalny)..claude/settings.json– konfiguracja dla pojedynczego projektu, z możliwością udostępnienia w repozytorium..claude/settings.local.json– lokalne ustawienia dla pojedynczego projektu, ignorowane w systemie kontroli wersji (git).
Dzięki nowym funkcjom Claude Code staje się narzędziem lepiej przystosowanym do rozbudowanych przepływów pracy, w których kontrola nad zachowaniem narzędzi programistycznych i wykorzystywanym modelem bazowym jest kluczowa dla bezpieczeństwa i stabilności tworzonych aplikacji.