Przejdź do głównej zawartości

Procedury aktualizacji Claude Code

Bezpieczna aktualizacja Claude Code to zawsze ta sama sekwencja: wybór kanału wydań (latest albo stable), zapisanie bieżącej wersji, przeczytanie changelogu dla wszystkich wersji pośrednich, kopia zapasowa ~/.claude, ~/.claude.json oraz projektowych .claude/ i .mcp.json, aktualizacja komendą właściwą dla typu instalacji, a na końcu skryptowy smoke test i gotowa komenda do cofnięcia wersji.

Ta strona jest dla programistów, którzy sami utrzymują swoją instalację, i dla tech leadów, którzy pilnują, żeby cały zespół pracował na jednej wersji. Problem wygląda tak: w poniedziałek otwierasz terminal, a aktualizator w tle zainstalował przez weekend nowy build. Sesja startuje teraz w innym trybie uprawnień, używa innego domyślnego modelu, a jeden serwer MCP przestał się łączyć. Nikt tego nie zapowiedział. Kolega z zespołu, który instalował przez Homebrew, jest wciąż tydzień za tobą.

  • Decyzję o kanale wydań (latest albo stable) i ustawienia, które ją egzekwują dla jednej osoby lub całego zespołu.
  • Dokładną komendę aktualizacji i cofnięcia dla każdego typu instalacji: natywnej, Homebrew, WinGet, apt/dnf/apk i npm.
  • Listę zmian z ostatnich wersji, które weszły bez pytania, żebyś wiedział, co sprawdzić.
  • Skrypt smoke testu i dwa prompty do skopiowania, które dowodzą, że aktualizacja się udała, bez czytania changelogu linijka po linijce.
  • Kroki naprawcze dla awarii, które naprawdę się zdarzają: aktualizator cofa twój rollback, dwie instalacje na PATH, serwery MCP, które przestają się łączyć.

Jaką instalację Claude Code masz i jak się ona aktualizuje?

Dział zatytułowany „Jaką instalację Claude Code masz i jak się ona aktualizuje?”

Zacznij od claude doctor. Komenda wypisuje diagnostykę instalacji i ustawień w trybie tylko do odczytu, bez uruchamiania sesji: typ instalacji, wynik ostatniej próby aktualizacji i błędy walidacji plików ustawień. Od typu instalacji zależy wszystko, co dalej.

Typ instalacjiAktualizuje się sama?Komenda aktualizacjiInstalacja lub powrót do konkretnej wersji
Instalator natywny (zalecany)Tak, w tle; nowa wersja działa od następnego uruchomieniaclaude updateclaude install 2.1.274 albo claude install stable
HomebrewNie (można włączyć przez CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1)brew upgrade claude-code (cask stable) albo brew upgrade claude-code@latestPrzełączenie między caskami claude-code (stable) i claude-code@latest
WinGetNie (włączysz to tak samo)winget upgrade Anthropic.ClaudeCodeDla dokładnej wersji przejdź na instalator natywny
apt / dnf / apkNie; aktualizacja wymaga podwyższonych uprawnieńsudo apt update && sudo apt upgrade claude-code, sudo dnf upgrade claude-code, apk update && apk upgrade claude-code (Alpine, jako root)Wskazanie repozytorium kanału stable albo latest
npm (@anthropic-ai/claude-code, Node.js 22+)Tak, jeśli globalny katalog npm jest zapisywalnynpm install -g @anthropic-ai/claude-code@latestnpm install -g @anthropic-ai/claude-code@2.1.274 albo @stable

Dwa szczegóły z oficjalnego przewodnika instalacji regularnie zaskakują. Unikaj npm update -g: trzyma się zakresu semver z pierwotnej instalacji i może nie dojść do najnowszego wydania. I nigdy nie używaj sudo npm install -g; popraw prefiks npm albo przejdź na instalator natywny.

Claude Code wydaje mniej więcej jedną wersję dziennie na kanale latest. Według przewodnika instalacji kanał stable jest mniej więcej tydzień za latest i pomija wydania z poważnymi regresjami. Na dzień 26 września 2026 r. kanał latest to v2.1.283, a stable to v2.1.274 (dist-tagi npm sprawdzone tego dnia).

Kim jesteśKanałDlaczego
Programistą, który chce nowych funkcji od razulatest (domyślny dla instalacji natywnej i npm)Dostajesz poprawki jako pierwszy i wcześnie zgłaszasz regresje
Zespołem od pięciu osób wzwyż, w którym wszyscy muszą mieć to samo zachowaniestable dla zespołu, latest dla jednego lub dwóch ochotnikówOchotnicy są kanarkiem dla reszty zespołu
Zespołem regulowanym, który zatwierdza każdą wersjęstable plus górny limit wersji w ustawieniach zarządzanychNic nie działa poza zatwierdzonym zakresem

Kanał ustawisz w /config → Auto-update channel albo w settings.json. Homebrew wybiera kanał nazwą caska: claude-code śledzi stable, a claude-code@latest śledzi latest.

{
"autoUpdatesChannel": "stable",
"minimumVersion": "2.1.274"
}

minimumVersion to dolna granica dla aktualizacji, więc przejście z latest na stable nie obniży ci wersji. Są jeszcze cztery mechanizmy i każdy robi coś innego:

MechanizmGdzieEfekt
DISABLE_AUTOUPDATER=1blok env w settings.jsonWyłącza tylko sprawdzanie w tle; claude update i claude install dalej działają
DISABLE_UPDATES=1zmienna środowiskowaBlokuje każdą ścieżkę aktualizacji, także ręczną; dla zespołów, które same dystrybuują Claude Code
requiredMinimumVersionustawienia zarządzaneClaude Code nie uruchomi się poniżej tej wersji
requiredMaximumVersionustawienia zarządzaneClaude Code nie uruchomi się powyżej tej wersji, a aktualizacje traktują ją jako sufit

Jak ustawienia zarządzane trafiają na każdą maszynę, opisuje strona o zarządzanej polityce dla agentów kodujących.

Co aktualizacja Claude Code może zmienić bez pytania?

Dział zatytułowany „Co aktualizacja Claude Code może zmienić bez pytania?”

Większość wydań to poprawki błędów. Niektóre zmieniają zachowanie, od którego zależą twoje hooki, skrypty i nawyki. Oto ostatnie takie zmiany z changelogu Claude Code; na dzień 26 września 2026 r. wszystkie od v2.1.277 wzwyż były dostępne tylko na kanale latest.

WersjaCo się zmieniłoCo sprawdzić potem
v2.1.222/ultraplan usunięty z listy komendW skryptach i dokumentacji używaj trybu planowania (/plan)
v2.1.274Negocjacja protokołu MCP 2026-07-28 z bezpośrednimi serwerami HTTP dotarła do każdej instalacji, także Bedrock, Google Cloud, Foundry i instalacji z wyłączoną telemetriąUruchom claude mcp list; starszy serwer HTTP może wymagać MCP_PROTOCOL_NEGOTIATION=legacy
v2.1.277Claude Code czyta AGENTS.md, gdy projekt nie ma CLAUDE.md (od v2.1.281 także na Bedrock, Google Cloud, Foundry i w bramach LLM)Repozytoria z samym AGENTS.md ładują teraz te instrukcje; przełącznik w /config pod „Project instructions”
v2.1.280Claude Opus 5.5 został domyślnym modelem na każdym płatnym planie i w Anthropic APIZmienia się profil kosztów i opóźnień; zobacz przegląd modeli
v2.1.283Auto mode został startowym trybem uprawnień dla interaktywnych sesji w terminalu i VS Code na każdym planie i u każdego dostawcySesje, które wcześniej pytały, teraz pozwalają klasyfikatorowi zatwierdzać akcje; claude -p, Agent SDK i sesje na modelu, którego auto mode nie obsługuje (np. Haiku), nadal startują w trybie Manual, podobnie jak sesje, w których plik ustawień ustawia permissions.disableAutoMode

Zmiana modelu to osobna migracja z własnymi ewaluacjami. Do tej części służy playbook nowego modelu; ta strona dotyczy samego narzędzia.

  1. Zapisz stan wyjściowy. Zachowaj wersję i diagnostykę, żeby mieć punkt odniesienia i wersję, do której wrócisz.

    Okno terminala
    claude --version | tee ~/claude-upgrade-before.txt
    claude doctor >> ~/claude-upgrade-before.txt
  2. Przeczytaj changelog dla każdej wersji pośredniej. Changelog Claude Code wymienia każde wydanie. Niech agent przeczyta go za ciebie i wyciągnie tylko to, co dotyczy twojej konfiguracji.

  3. Zrób kopię plików, których może dotknąć aktualizacja lub rollback. Ustawienia użytkownika są w ~/.claude/, serwery MCP o zasięgu użytkownika i stan w ~/.claude.json, a ustawienia projektu w .claude/ i .mcp.json.

    Okno terminala
    STAMP=$(date +%Y%m%d)
    tar -czf ~/claude-config-$STAMP.tgz -C ~ .claude .claude.json
    tar -czf ./claude-project-$STAMP.tgz .claude .mcp.json 2>/dev/null || true

    Archiwum projektu to lokalna siatka bezpieczeństwa; .claude/ i .mcp.json i tak powinny być w Gicie.

  4. Zaktualizuj komendą właściwą dla typu instalacji.

    Okno terminala
    claude update # najnowsza wersja z twojego kanału
    claude install stable # albo przejście na wersję z kanału stable
    claude install 2.1.283 # albo dokładna wersja
  5. Zrestartuj wszystko, co działa na starym pliku binarnym, i zweryfikuj. claude update zgłasza Successfully updated from <old version> to version <new version> albo Claude Code is up to date (<version>), gdy nie było czego instalować. Nowa wersja działa od następnego uruchomienia Claude Code. Sesje w tle zostają na starym pliku binarnym, dopóki nie zrestartujesz ich przez claude respawn --all. Potem uruchom smoke test z następnej sekcji.

Jak zweryfikować aktualizację Claude Code bez czytania każdej zmiany?

Dział zatytułowany „Jak zweryfikować aktualizację Claude Code bez czytania każdej zmiany?”

Aktualizację udowadniasz sprawdzeniami, które na każdej maszynie działają tak samo, a nie ponownym czytaniem changelogu. Skrypt kończy się kodem różnym od zera, gdy serwer MCP nie może się połączyć lub wymaga uwierzytelnienia albo gdy wywołanie modelu zawodzi. Zapisz ten skrypt jako scripts/claude-smoke.sh w repozytorium, żeby każdy programista i każda maszyna-kanarek uruchamiali te same sprawdzenia. Skrypt wymaga jq w PATH.

#!/usr/bin/env bash
# Post-upgrade smoke test for Claude Code. Run from the project root.
set -euo pipefail
echo "== version"; claude --version
echo "== doctor"; claude doctor
echo "== plugins"; claude plugin list
echo "== mcp"
mcp_out=$(claude mcp list)
echo "$mcp_out"
if grep -qE '✗|Failed to connect|Needs authentication' <<<"$mcp_out"; then
echo "MCP check failed"; exit 1
fi
if grep -qi 'pending approval' <<<"$mcp_out"; then
echo "WARNING: an MCP server is waiting for approval"
fi
echo "== headless round trip"
answer=$(claude -p "Reply with exactly the word READY and nothing else." \
--output-format json | jq -r '.result')
[ "$answer" = "READY" ] || { echo "Headless check failed: $answer"; exit 1; }
echo "OK"

Jedna sekcja nadal wymaga ludzkiego oka: claude doctor nie może pokazywać błędów walidacji plików ustawień, a skrypt tylko ją wypisuje, nie oceniając jej. Sprawdzenie MCP zatrzymuje skrypt, gdy serwer nie może się połączyć albo wymaga uwierzytelnienia, na przykład po wygaśnięciu tokenu OAuth. Serwer oznaczony ⏸ Pending approval wywołuje tylko ostrzeżenie: to wpis z projektowego .mcp.json, którego nikt jeszcze nie zatwierdził na tej maszynie, i Claude Code nie łączy się z nim, dopóki ktoś tego nie zrobi. Test headless dowodzi, że działają uwierzytelnianie i wywołanie modelu. Działa w trybie Manual, jak każda sesja claude -p.

Skrypt nie widzi, czy hooki się uruchamiają i czy skills (umiejętności) się ładują — to sprawdzisz tylko w prawdziwej sesji. Zaraz po aktualizacji uruchom poniższy prompt w swoim głównym projekcie.

W zespole akceptacja jest jawna. Programiści-kanarki na latest uruchamiają skrypt i prompt w dniu, w którym pojawia się wydanie. Tech lead podnosi requiredMinimumVersion (a w zespołach regulowanych także requiredMaximumVersion) w ustawieniach zarządzanych dopiero wtedy, gdy kanarki zgłoszą czysty przebieg na wersji, która trafiła już także na stable. Osobiste minimumVersion z przełączania kanału opisanego wyżej tego nie robi: blokuje jedynie obniżenie wersji na jednej maszynie. Każdą decyzję zapisz w dzienniku aktualizacji zespołu: wersja, data, kto uruchomił sprawdzenia i co się nie udało.

Gdy aktualizacja blokuje pracę, najpierw cofnij wersję, a diagnozuj potem. Zatrzymaj wszystkie działające sesje Claude Code (claude agents otwiera widok agentów w research preview z listą sesji w tle). Jeśli masz ustawione minimumVersion powyżej wersji docelowej, najpierw je obniż: ta dolna granica istnieje po to, żeby blokować obniżanie wersji. Potem użyj komendy dla swojego typu instalacji:

Okno terminala
claude install 2.1.274

Potem powstrzymaj aktualizator w tle przed ponownym zainstalowaniem zepsutej wersji: dodaj "DISABLE_AUTOUPDATER": "1" do bloku env w ~/.claude/settings.json. claude doctor potwierdzi to wierszem Auto-updates: disabled (set by env: DISABLE_AUTOUPDATER). Usuń ustawienie, gdy wyjdzie poprawione wydanie.

Jeśli zepsuła się też konfiguracja, przywróć ją z archiwum z kroku 3:

Okno terminala
tar -xzf ~/claude-config-YYYYMMDD.tgz -C ~

Zamiast YYYYMMDD wpisz datę archiwum. Następnie ponownie uruchom scripts/claude-smoke.sh i zgłoś issue na GitHubie w anthropics/claude-code, dołączając wynik claude doctor sprzed i po aktualizacji.

Rollback sam się cofa. Aktualizator w tle przy następnym starcie instaluje najnowszą wersję. Ustaw DISABLE_AUTOUPDATER (jedna maszyna) albo requiredMaximumVersion w ustawieniach zarządzanych (zespół), dopóki nie wyjdzie poprawka.

claude --version pokazuje starą wersję po aktualizacji. Na PATH są dwie instalacje, często stara instalacja npm przysłania natywną. Uruchom which -a claude i claude doctor, usuń tę, której nie używasz (npm uninstall -g @anthropic-ai/claude-code), i otwórz nową powłokę.

Instalacja natywna przestała dostawać aktualizacje. O tym, która wersja się uruchamia, decyduje własny skrypt lub symlink w ~/.local/bin/claude, a claude update go nie rusza. claude doctor zgłasza launcher, którego nie utworzył instalator. Usuń ~/.local/bin/claude i uruchom claude update, żeby oddać mu kontrolę.

Instalacja npm nie może się zaktualizować. Globalny katalog npm nie jest zapisywalny. Claude Code pokazuje jednorazowy komunikat, a claude doctor wymienia poprawki. Zmień prefiks npm albo przejdź na instalator natywny; nie sięgaj po sudo.

Serwer MCP przestał się łączyć. Najpierw sprawdź claude mcp list; ⏸ Pending approval oznacza, że serwer trzeba zatwierdzić przez /mcp, a nie naprawiać. Jeśli to bezpośredni serwer HTTP sprzed protokołu 2026-07-28, ustaw na tej maszynie MCP_PROTOCOL_NEGOTIATION=legacy i poproś opiekuna serwera o aktualizację. Szczegóły konfiguracji są w konfiguracji MCP dla Claude Code.

Sesje działają bez pytania. Od v2.1.283 (kanał latest) auto mode jest startowym trybem uprawnień. Jeśli zespół potrzebuje ręcznego zatwierdzania, ustaw permissions.disableAutoMode na "disable" w ustawieniach zarządzanych; auto mode ustawiony w ustawieniach projektu jest celowo ignorowany.

Po aktualizacji zmieniły się koszty lub opóźnienia. Model domyślny zmienił się w v2.1.280 na kanale latest; na kanale stable (v2.1.274) 26 września 2026 r. obowiązywał jeszcze poprzedni model domyślny. Sprawdź model sesji przez /model, przypnij model zatwierdzony przez twoje ewaluacje ustawieniem model i przeprowadź porównanie z playbooka nowego modelu.

Homebrew lub WinGet widzi aktualizację, ale nie może jej zainstalować. Claude Code potrafi ogłosić wersję, zanim menedżer pakietów ją dostanie. Odczekaj i spróbuj ponownie. W WinGet aktualizacja może też się nie udać, gdy Claude Code działa, bo Windows blokuje plik wykonywalny.

Błędy niezwiązane z aktualizacją opisuje strona rozwiązywania problemów z Claude Code.