Claude Code to oficjalny interfejs wiersza poleceń (CLI) od firmy Anthropic, zdolny do odczytywania kodu źródłowego, wprowadzania poprawek, wykonywania komend oraz bezpośredniej interakcji z git w terminalu za pomocą zwykłej rozmowy w języku naturalnym. Nie jest to osobne okno czatu webowego, z którego kod trzeba kopiować ręcznie, lecz pełnoprawny autonomiczny agent działający bezpośrednio wewnątrz Twojego projektu.
Ten poradnik stanowi punkt wyjścia do szybkiego startu z Claude Code. Materiał podzielono na trzy logiczne bloki:
- Moduł 1 — Instalacja i podstawowa konfiguracja: wdrożenie CLI, uwierzytelnianie przez API lub OAuth, pierwsze uruchomienie oraz przegląd plików konfiguracyjnych.
- Moduł 2 — Sesja robocza i interakcja: zarządzanie kontekstem, skróty klawiszowe, polecenia slash, tryb nieinteraktywny oraz optymalizacja pamięci (
/compact). - Moduł 3 — Bezpieczeństwo i model uprawnień: konfiguracja plików
settings.json, tworzenie list zezwoleń (allow) oraz zakazów (deny) dla komend bash.
Każdy moduł kończy się praktycznym ćwiczeniem polegającym na utworzeniu, dopracowaniu i finalnej wersji rzeczywistego komponentu webowego w Next.js.
1. Czym jest Claude Code i wymagania systemowe
1.1. Czym jest Claude Code i jego różnice względem czatu webowego
Claude Code integruje się z Twoim codziennym stackiem deweloperskim jako asystent terminalowy. W przeciwieństwie do tradycyjnego czatu webowego, agent dysponuje zestawem narzędzi (Tools):
- Odczyt i wyszukiwanie: inspekcjonuje pojedyncze pliki, szuka wystąpień za pomocą wyrażeń regularnych (
grep) oraz orientuje się w strukturze projektu (glob). - Modyfikacja kodu: generuje punktowe zmiany plików poprzez mechanizm patch/diff, unikając całkowitego nadpisywania dużych plików.
- Wykonywanie komend systemowych: uruchamia testy, kompilatory, linterzy oraz komendy git z możliwością analizy kodów zwrotu i błędów kompilacji.
1.2. Wymagania systemowe i przygotowanie środowiska
Przed instalacją upewnij się, że posiadasz niezbędne komponenty:
- System operacyjny: macOS, nowoczesna dystrybucja Linuxa lub Windows poprzez podsystem WSL2.
- Środowisko wykonawcze: Node.js w wersji 18.0 lub nowszej (sprawdź przez
node -v). - System kontroli wersji: Git w wersji 2.20+ (sprawdź przez
git --version). - Dostęp do modeli Anthropic: aktywny klucz API z konsoli Anthropic Console lub konto z planem Claude Max.
2. Instalacja i uwierzytelnianie
2.1. Instalacja CLI przez npm i menedżer pakietów
Claude Code jest dystrybuowany jako globalny pakiet w rejestrze npm. Wykonaj komendę instalacyjną w terminalu:
Sprawdź poprawność instalacji pliku binarnego:
Jeśli terminal zwraca błąd command not found, oznacza to brak ścieżki globalnych pakietów npm w zmiennej środowiskowej PATH. Szczegółowe rozwiązanie znajduje się w sekcji diagnostyki poniżej.
2.2. Uwierzytelnianie i powiązanie konta Anthropic
Obsługiwane są dwie metody autoryzacji:
Wariant 1 — Klucz Anthropic API:
Określ token poprzez zmienną środowiskową:
Aby klucz był zachowywany między restartami terminala, dodaj komendę do pliku konfiguracyjnego swojej powłoki:
Wariant 2 — Subskrypcja Claude Max (OAuth):
Jeśli korzystasz z subskrypcji Claude Max ($100 lub $200/mies.), zaloguj się bez użycia osobnego klucza API:
Komenda otworzy sesję w domyślnej przeglądarce w celu potwierdzenia dostępu.
3. Pierwsze uruchomienie i podstawowa konfiguracja
3.1. Pierwsze uruchomienie w projekcie i weryfikacja środowiska
Przejdź do katalogu dowolnego swojego projektu kodowego i zainicjuj Claude Code:
Po uruchomieniu trafisz do interaktywnego środowiska komend. Spróbuj wysłać podstawowe zapytanie testowe:
Claude automatycznie przejrzy pliki package.json, konfiguracje buildu oraz strukturę katalogów, a następnie sformułuje krótki raport wprowadzający.
3.2. Podstawowa konfiguracja i rozwiązywanie problemów (Troubleshooting)
Pliki konfiguracyjne znajdują się w katalogu ~/.claude/:
~/.claude/settings.json— globalne zezwolenia i ograniczenia dostępu do narzędzi.~/.claude/CLAUDE.md— osobiste instrukcje systemowe użytkownika..claude/settings.json— ustawienia projektowe (zatwierdzane w systemie kontroli wersji).CLAUDE.md— instrukcje poziomu repozytorium (architektura, zasady lintingu).
| Problem przy uruchomieniu | Przyczyna pierwotna | Rozwiązanie inżynierskie |
|---|---|---|
claude: command not found | Katalog npm bin nie został dodany do PATH | Dodaj ścieżkę do powłoki: export PATH="$(npm config get prefix)/bin:$PATH" |
Błąd autoryzacji 401 Unauthorized | Nieważny lub wygasły klucz API | Wykonaj claude logout, sprawdź wartość ANTHROPIC_API_KEY i powtórz claude login |
| Wolna inicjalizacja sesji | Indeksowanie dużego repozytorium | Pierwsze uruchomienie wymaga analizy drzewa plików; kolejne iteracje wykorzystują cache |
4. Praktyka: tworzenie pierwszej aplikacji
4.1. Krok po kroku: wdrożenie prototypu
Celem pierwszego ćwiczenia jest praktyczne stworzenie minimalnego komponentu klienta Next.js / React przy użyciu Claude Code:
- Poproś Claude o utworzenie nowego pliku strony
app/practice/page.tsx. - Zleć opis prostego stanu ładowania oraz przycisku wywołującego endpoint testowy.
- Sprawdź działanie interfejsu pod adresem
http://localhost:3000/practice.
4.2. Szablon startowy komponentu i lokalna weryfikacja
Bazowy kod prototypu:
5. Sesja robocza i cykl dialogu
5.1. Uruchomienie interaktywnej sesji REPL
Do codziennej pracy przejdź do katalogu roboczego i aktywuj interaktywny cykl read-eval-print-loop (REPL):
Claude zachowuje kontekst rozmowy w trakcie trwania sesji, pamiętając zmienione pliki oraz wykryte błędy. Komunikacja odbywa się zwykłym językiem bez sformalizowanej składni.
5.2. Cykl dialogu: planowanie, narzędzia i wykonanie
Praca agenta podporządkowana jest pięcioetapowemu cyklowi:
Typowy fragment interakcji:
- Zapytanie:
Dodaj wskaźnik ładowania na stronę dashboardu. - Analiza: Claude odczytuje
app/dashboard/page.tsx, wykrywając brak obsługi oczekiwania na dane. - Propozycja: Utworzenie komponentu
loading.tsxoraz objęcie bloku granicamiSuspense. - Podsumowanie: Agent prezentuje punktowy diff i czeka na Twoje zatwierdzenie.
6. Skróty klawiszowe, komendy i tryby pracy
6.1. Skróty klawiszowe i polecenia slash do zarządzania kontekstem
Efektywna nawigacja w terminalu opiera się na skrótach systemowych:
| Kombinacja | Przeznaczenie |
|---|---|
Enter | Wysyłka bieżącej wiadomości do agenta |
Escape | Natychmiastowe anulowanie aktywnej generacji lub wykonania narzędzia |
Ctrl+C | Poprawne zakończenie pracy sesji Claude Code |
Up / Down | Przegląd historii poprzednich zapytań |
Shift+Tab | Przełączanie między jednowierszowym a wielowierszowym wprowadzaniem |
Specjalne wbudowane polecenia slash do kontroli środowiska:
/help— lista dostępnych dyrektyw./clear— resetowanie bieżącej historii wiadomości./compact— kompresja okna kontekstowego w celu oszczędności tokenów bez utraty istoty./model— operatywna zmiana bieżącego modelu (np. przełączanie między Sonnet a Opus)./permissions— sprawdzenie aktywnych zezwoleń na wywołanie narzędzi systemowych.
6.2. Tryb nieinteraktywny i wskazówki dla efektywnej pracy
Do używania Claude Code w skryptach automatyzacji lub jednorazowych operacjach stosuj flagę -p (print):
💡 Rekomendacje dla stabilnej pracy:
- Formułuj wymagania konkretnie: zamiast „napraw formularz” pisz „dodaj debounce do handlera kliknięcia przycisku wysyłania formularza”.
- Regularnie uruchamiaj
/compact, gdy długość dialogu przekracza 30–40 kroków.
7. Praktyka: dopracowanie aplikacji
7.1. Refaktoryzacja i ulepszenie bazy kodowej przez Claude
W drugiej części praktycznej rozszerzymy stworzony prototyp, zlecając Claude ulepszenie obsługi stanów brzegowych oraz typowania.
Wyślij agentowi taką instrukcję:
7.2. Rozszerzenie funkcjonalności: stylizacja, obsługa błędów i animacja
Zaktualizowany kod strony:
8. Model uprawnień i bezpieczeństwo
8.1. Architektura modelu uprawnień i poziomy ryzyka narzędzi
System bezpieczeństwa Claude Code dzieli wszystkie dostępne operacje na dwie fundamentalne kategorie według poziomu potencjalnego ryzyka:
| Poziom dostępu | Dostępne operacje | Mechanizm wykonania |
|---|---|---|
| Bezpieczne (Read-only) | Read, Grep, Glob, listowanie katalogów | Wykonywane automatycznie bez pytań do użytkownika |
| Potencjalnie niebezpieczne | Edit, Write, Bash, usuwanie plików, git push | Wymagają jawnego potwierdzenia przed wykonaniem |
8.2. Mechanika zatwierdzania i odrzucania potencjalnie niebezpiecznych działań
Przed wykonaniem ryzykownej akcji Claude zatrzymuje wykonanie i wyświetla zapytanie:
Dostępne opcje wyboru:
y(yes) — zatwierdzenie konkretnego jednorazowego wywołania.n(no) — odrzucenie działania z podaniem powodu odmowy.always(luba) — udzielenie zezwolenia na wywołanie tego narzędzia do końca bieżącej sesji roboczej.
9. Pliki ustawień i zarządzanie uprawnieniami
9.1. Globalne i projektowe pliki ustawień (settings.json)
Aby utrwalić stałe reguły, utwórz lub edytuj globalny plik ~/.claude/settings.json:
9.2. Wzorce dla komend bash i weryfikacja przez /permissions
Sekcja permissions.allow wspiera elastyczne maski wyszukiwania (glob patterns):
Bash(npm test *)— pozwala na uruchamianie pakietów testowych bez potwierdzeń.Bash(git commit *)— pozwala na zatwierdzanie zmian.Bash(rm -rf *)na liściedeny— gwarantuje absolutne zablokowanie masowego usuwania danych.
Aby przejrzeć obowiązujące reguły w dowolnym momencie sesji, wykonaj komendę /permissions.
10. Najlepsze praktyki bezpieczeństwa i pracy
10.1. Strategia kontroli dostępu: zasada najmniejszych przywilejów
- Stopniowe rozszerzanie praw: Zacznij pracę z pełną ręczną moderacją. Dodawaj komendy do listy
allowdopiero po upewnieniu się co do stabilności zachowań agenta. - Zakaz wildcard dla bash: Nigdy nie wpisuj
"Bash(*)"w dozwolonych narzędziach — całkowicie niweluje to ochronną piaskownicę. - Aktywne wykorzystanie deny: Jawno blokuj destrukcyjne narzędzia (
sudo,mkfs,dd), aby uniemożliwić przypadkowe uszkodzenie systemu.
10.2. Ochrona sekretów środowiskowych i dokładny audyt diffów
- Izolacja tokenów: Claude Code ma dostęp do zmiennych środowiskowych bieżącej powłoki. Nie przechowuj w sesji roboczej krytycznych kluczy do produkcyjnych baz danych.
- Przegląd diffu przed zatwierdzeniem: Zawsze analizuj zaproponowany diff edycji pliku, aby w porę zauważyć przypadkowe usunięcie sąsiednich modułów.