Claude Code Desktop: sesje, worktree i code review w aplikacji
Claude Code Desktop to karta Code w aplikacji desktopowej Claude: ten sam silnik co Claude Code CLI, z interfejsem graficznym do równoległych sesji, każdej we własnym git worktree, komentowania diffów linia po linii, podglądu działającej aplikacji i śledzenia pull requesta w CI. Czyta te same pliki CLAUDE.md, ustawienia, hooki, skille i konfigurację MCP co CLI.
W jednym terminalu masz w połowie zbudowaną funkcję, na Slacku czeka zgłoszenie błędu, a recenzent prosi o poprawki we wczorajszym pull requeście. W CLI oznacza to trzy terminale, trzy sesje z --worktree, których trzeba pilnować, osobną kartę przeglądarki na każdy serwer deweloperski i diff czytany przez git diff | less. Ta strona jest dla deweloperów, którzy już pracują z Claude Code w terminalu albo zaraz zaczną, i chcą wiedzieć, kiedy aplikacja desktopowa jest lepszym stanowiskiem pracy i co ustawić, żeby CLI i Desktop zachowywały się tak samo.
Co daje ci praca w aplikacji desktopowej
Dział zatytułowany „Co daje ci praca w aplikacji desktopowej”- Tabelę decyzyjną: kiedy pracować w Desktop, a kiedy zostać w terminalu.
- Konfigurację, w której każda sesja Desktop startuje we własnym worktree, z właściwymi plikami
.envi serwerem deweloperskim. - Cztery prompty do skopiowania: konfigurację podglądu, sesję z nową funkcją zakończoną dowodami, przegląd pozostałych sesji i mapę diffu do code review.
- Pętlę code review opartą na widoku diffu, przycisku Review code i pasku statusu CI, w której bramką są testy, a nie twoje oczy.
- Pułapki konfiguracji: zmienne środowiskowe, pierwszeństwo serwerów MCP i tryby uprawnień, które działają inaczej niż w CLI.
Co aplikacja desktopowa dodaje do terminala?
Dział zatytułowany „Co aplikacja desktopowa dodaje do terminala?”Desktop korzysta z tego samego silnika, więc model, narzędzia i pętla agenta są identyczne. Zmienia się sposób nadzorowania kilku sesji i oglądania wyniku. Zanim zainstalujesz aplikację, upewnij się, że masz płatną subskrypcję Pro, Max, Team albo Enterprise; bez niej karta Code kończy się błędem uwierzytelniania (zobacz tabelę rozwiązywania problemów).
| Możliwość | CLI | Desktop |
|---|---|---|
| Równoległe sesje | Jeden terminal na sesję albo agent view | Lista w pasku bocznym; Cmd+kliknięcie (macOS) lub Ctrl+kliknięcie (Windows) otwiera dwie sesje obok siebie |
| Izolacja sesji | claude --worktree [nazwa] (-w; nazwa jest opcjonalna) | Opcja worktree obok nazwy gałęzi przy starcie sesji |
| Przegląd diffu | /diff, git diff, twoje IDE | Widok diffu z komentarzami do linii, na które Claude reaguje, oraz przycisk Review code |
| Podgląd aplikacji | Twoja przeglądarka | Panel Browser, który uruchamia serwer z .claude/launch.json i pozwala Claude robić zrzuty ekranu, klikać i badać DOM |
| Obsługa pull requesta | gh, strona CI | Pasek statusu CI z przełącznikami Auto-fix i Auto-merge (wymaga zalogowanego gh) |
| Gdzie działa | Twój komputer, chmura (--cloud), devcontainer | Local, Cloud, host SSH albo dystrybucja WSL w Windows |
| Skrypty | claude -p, --output-format, Agent SDK | Niedostępne; Desktop działa tylko interaktywnie |
| Wiele agentów | Agent teams (eksperymentalne), subagenci, dynamic workflows | Subagenci i dynamic workflows; agent teams tylko w CLI (sprawdzone 26.09.2026) |
| Tryby uprawnień | Wszystkie, łącznie z dontAsk | Manual, Accept edits, Plan, Auto; Bypass permissions dopiero po włączeniu; bez dontAsk (sprawdzone 26.09.2026) |
Aplikacja działa na macOS, Windows (x64 i ARM64) i Linuksie (beta, instalacja przez apt w Ubuntu i Debianie). Computer use, czyli sterowanie przez Claude innymi aplikacjami na ekranie, to research preview na macOS i Windows tylko w planach Pro i Max; w wersji linuksowej go nie ma.
Kiedy wybrać Desktop zamiast CLI?
Dział zatytułowany „Kiedy wybrać Desktop zamiast CLI?”Wybieraj narzędzie według rodzaju pracy, a nie z przyzwyczajenia. CLI i Desktop mogą działać jednocześnie na tym samym projekcie, a każde z nich ma własną listę sesji.
| Twoja praca wygląda tak… | Użyj | Dlaczego |
|---|---|---|
| Kilka niezależnych zadań, które prowadzisz ręcznie w ciągu dnia | Desktop | Pasek boczny, widok dzielony i powiadomienia systemowe pokazują, która sesja cię potrzebuje |
| Praca nad UI albo API, której efekt chcesz zobaczyć | Desktop | Panel Browser i auto-verify stawiają działającą aplikację obok diffu |
| Przegląd zmiany, zanim stanie się pull requestem | Desktop | Komentarze do linii trafiają prosto do Claude jako nowa tura |
Skrypt, zadanie CI, hook pre-commit, cokolwiek z -p | CLI | Desktop nie ma trybu nieinteraktywnego |
| Wiele sesji w tle zlecanych z jednego miejsca | CLI (agent view) | Zbudowane do zlecania i podglądu; narzędzia międzysesyjne Desktop nie widzą sesji z CLI |
| Amazon Bedrock, Agent Platform w Google Cloud (dawniej Vertex AI) albo Microsoft Foundry | CLI, chyba że dział IT skonfigurował Claude Desktop dla tego dostawcy | Desktop domyślnie łączy się z API Anthropic |
| Skoordynowane zespoły agentów (agent teams) | CLI | Niedostępne w Desktop |
| Długa migracja, która ma działać dalej po zamknięciu laptopa | Sesja Cloud w Desktop albo claude --cloud w CLI | Sesje w chmurze działają na infrastrukturze Anthropic i liczą się do limitów twojego planu |
Przekazywanie działa w obie strony. W sesji terminalowej uruchom /desktop (alias /app), żeby zapisać sesję i otworzyć ją w aplikacji; działa to na macOS i Windows x64 z subskrypcją Claude, ale nie z kluczem API ani u zewnętrznego dostawcy. W aplikacji wpisz /resume w polu promptu, żeby podjąć dowolną sesję rozpoczętą w CLI; listę przeszukasz po tytule, folderze albo gałęzi.
Skonfiguruj Desktop tak, żeby każda sesja była izolowana i weryfikowalna
Dział zatytułowany „Skonfiguruj Desktop tak, żeby każda sesja była izolowana i weryfikowalna”Ustawienia domyślne wystarczą na pierwszą sesję. Do codziennej pracy równoległej wykonaj poniższą konfigurację raz dla każdego repozytorium; to ona sprawia, że sesje nie wchodzą sobie w drogę, a Claude ma czym sprawdzić własną pracę. Najpierw zainstaluj aplikację zgodnie z przewodnikiem instalacji albo ze strony pobierania producenta i zaloguj się.
-
Otwórz kartę Code i przed pierwszą wiadomością wybierz cztery rzeczy. W obszarze promptu wybierz środowisko (Local dla twojego komputera), folder projektu, model i tryb uprawnień. Zacznij od modelu domyślnego; przegląd modeli wyjaśnia, kiedy go zmienić. Przy wszystkim większym niż poprawka błędu zacznij od Plan, a po zatwierdzeniu planu przełącz na Accept edits.
-
Włączaj opcję worktree dla każdej sesji w repozytorium git. Zaznacz worktree obok nazwy gałęzi. Każda sesja dostaje wtedy własny checkout w
<project-root>/.claude/worktrees/, więc zmiany w jednej sesji nie dotykają innej, dopóki ich nie zacommitujesz. W Settings → Claude Code możesz przenieść lokalizację worktree i ustawić prefiks gałęzi, na przykładclaude/, żeby gałęzie agentów łatwo było rozpoznać i sprzątnąć. -
Kopiuj ignorowane pliki do nowych worktree. Worktree to świeży checkout, więc brakuje w nim
.envi serwer deweloperski nie wstaje. Dodaj plik.worktreeincludew katalogu głównym projektu. Używa składni.gitignorei kopiuje tylko pliki, które są też ignorowane przez gita:.env.env.localconfig/local.jsonTen sam plik działa dla sesji CLI z
--worktreei dla worktree subagentów, więc piszesz go raz. -
Daj podglądowi konfigurację serwera. Claude wykrywa serwer deweloperski i zapisuje
.claude/launch.jsonw otwartym folderze. Dodaj go do repozytorium i popraw; dla monorepo z aplikacją webową i API wygląda tak:{"version": "0.0.1","configurations": [{"name": "web","runtimeExecutable": "pnpm","runtimeArgs": ["--filter", "web", "dev"],"port": 3000,"autoPort": true},{"name": "api","runtimeExecutable": "pnpm","runtimeArgs": ["--filter", "api", "start"],"port": 8080,"autoPort": false}]}Ustaw
autoPort: truedla serwerów, które mogą zmienić port, gdy działają dwa worktree naraz; Claude przekazuje nowy port w zmiennejPORT. UstawautoPort: falsedla serwera, którego port wyznacza callback OAuth albo lista CORS. Nigdy nie wpisuj sekretów wenv: ten plik trafia do repozytorium. Auto-verify jest domyślnie włączone, więc po każdej edycji Claude robi zrzut ekranu i sprawdza stronę; wyłączysz je dla projektu przez"autoVerify": false. -
Ustaw lokalne zmienne środowiskowe w aplikacji, nie tylko w powłoce. Gdy uruchamiasz aplikację z Docka albo Findera na macOS, odczytuje ona z profilu powłoki
PATHi stały zestaw zmiennych Claude Code, a resztę eksportów pomija. W Windows ignoruje profile PowerShell. Otwórz listę środowisk, najedź na Local, kliknij ikonę koła zębatego i dodaj zmienne potrzebne serwerowi deweloperskiemu. Kluczenvw~/.claude/settings.jsontrafia do sesji Claude, ale nie do serwerów podglądu. -
Zaloguj
gh, jeśli chcesz monitorować pull requesty. Pasek statusu CI odpytuje checki przez GitHub CLI. Uruchomgh auth statusw zintegrowanym terminalu (Ctrl+`); jeśli się nie powiedzie, uruchomgh auth login.
Prowadź równoległe sesje, które kończą się dowodami
Dział zatytułowany „Prowadź równoległe sesje, które kończą się dowodami”W aplikacji desktopowej rozpoczęcie sesji nic nie kosztuje. Twój dzień ogranicza to, ile wyników zdążysz sprawdzić, więc niech każda sesja wytwarza dowód, który sprawdzisz. Naciśnij Cmd+N (macOS) albo Ctrl+N (Windows), wybierz opcję worktree i zacznij od promptu, który nazywa kryterium akceptacji i rezultat. Kryteria akceptacji pokazują, jak pisać warunki, których agent nie „przegada”.
Ctrl+Tab i Ctrl+Shift+Tab przełączają między sesjami. Aplikacja wysyła powiadomienie systemowe, gdy sesja kończy zadanie, a ty akurat na nią nie patrzysz, więc możesz ją zostawić i przejść do innej. Żeby zadać pytanie bez zbijania sesji z kursu, otwórz boczny czat (Cmd+; na macOS, Ctrl+; na Windows albo /btw). Może odczytać sesję do tego momentu, a po jego zamknięciu wracasz do głównego wątku.
Claude potrafi też podejrzeć twoje pozostałe sesje Desktop i wysłać im wiadomość. Zapytaj zwykłym językiem w dowolnej sesji:
Ten mechanizm widzi tylko sesje lokalne, SSH i WSL uruchomione przez samą aplikację, domyślnie 20 ostatnio aktywnych. Nie widzi sesji w chmurze ani sesji z CLI czy rozszerzenia VS Code, nawet w worktree tego samego repozytorium. Przed zarchiwizowaniem sesji Claude zawsze pyta o zgodę, w każdym trybie uprawnień.
Przejrzyj diff bez czytania każdej linii
Dział zatytułowany „Przejrzyj diff bez czytania każdej linii”Twoim zadaniem na tym etapie jest ocena, czy dowody się bronią, a nie korekta tekstu. Dowody zamiast diffów tłumaczą tę zmianę; aplikacja desktopowa daje do niej narzędzia w tej kolejności:
- Najpierw przeczytaj podsumowanie sesji. Każdy punkt akceptacji potrzebuje wskazanego testu i wyniku, który przechodzi. Punkt bez testu to luka, a nie sukces. Poproś o test, zanim spojrzysz na kod.
- Otwórz widok diffu, klikając wskaźnik
+12 -1(alboCmd+Shift+D). Lista plików po lewej pokazuje, gdzie leży ryzyko. Jeśli zmiana dotyka więcej niż kilku plików, poproś o mapę do code review (prompt poniżej). - Kliknij Review code. Claude analizuje bieżący diff i zostawia w nim komentarze. Szuka błędów kompilacji, oczywistych błędów logicznych, podatności bezpieczeństwa i ewidentnych bugów, a pomija styl i wszystko, co wyłapie linter. Traktuj to jako drugie przejście, nie zatwierdzenie: to ta sama rodzina modeli, która napisała kod.
- Skomentuj linie, które cię niepokoją. Kliknij linię, wpisz komentarz i wyślij wszystkie komentarze naraz przez
Cmd+Enter(Ctrl+Enterw Windows). Claude odpowiada nowym diffem. Komentuj zachowanie („co się stanie, gdy filtr nie pasuje do żadnego wiersza?”), a nie nazewnictwo. - Sprawdź, czy testy nie zostały osłabione. W diffie przejrzyj pliki testów przed plikami źródłowymi. Usunięta asercja albo nowy
skipto najczęstszy sposób, w jaki agent „przechodzi” testy. Chroń wyrocznię pokazuje, jak to uniemożliwić hookami i uprawnieniami do plików. - Otwórz pull request i pozwól decydować CI. W sesji pojawia się pasek statusu CI. Auto-fix pozwala Claude czytać nieudane checki i wypychać poprawki. Auto-merge sprawia, że Claude scala pull request metodą squash, gdy tylko wszystkie checki przejdą; wymaga włączenia auto-merge w ustawieniach repozytorium GitHub. Włączaj go tylko w repozytoriach, w których ochrona gałęzi wymaga twojego code review i każdego checka, na którym polegasz, bo zielona lista checków to jedyne, na co czeka.
Dla tech leadów: widok diffu to osobista pomoc przy code review, a nie bramka zespołu. Bramką pozostają wymagane checki w CI i code ownerzy na pull requeście, opisani w automatyzacji code review i w przeglądzie pull requesta od agenta.
Jak Desktop i CLI współdzielą ustawienia?
Dział zatytułowany „Jak Desktop i CLI współdzielą ustawienia?”Desktop i CLI czytają te same pliki, więc większość konfiguracji przechodzi bez wysiłku:
- Pamięć:
CLAUDE.mdiCLAUDE.local.mdw projekcie; zobacz system pamięci. - Ustawienia:
~/.claude/settings.json, projektowy.claude/settings.jsoni~/.claude.json. Reguły uprawnień i dozwolone narzędzia obowiązują w sesjach Desktop. - Hooki i skille zdefiniowane w ustawieniach oraz osobiste skille w
~/.claude/skills/. Sesja SSH czyta~/.claude/skills/na zdalnym hoście, a nie na twoim laptopie. - Serwery MCP z
~/.claude.jsoni.mcp.json; zobacz konfigurację MCP. - Pluginy w zakresie użytkownika, projektu albo lokalnym, łącznie z pluginami zarządzanymi przez organizację.
Domyślny tryb uprawnień ustaw raz, dla obu interfejsów, w ~/.claude/settings.json:
{ "permissions": { "defaultMode": "acceptEdits" }}W Desktop tryb wybrany w selektorze jest zapamiętywany dla folderu i nadpisuje defaultMode w tym folderze, z wyjątkiem Plan, który trwa jedną sesję. To najczęstszy powód, dla którego sesja Desktop kolegi pyta o mniej zgód niż twoja w tym samym repozytorium.
Trzy rzeczy nie są współdzielone tak, jak można by się spodziewać:
| Co | Zachowanie w Desktop | Co zrobić |
|---|---|---|
Serwery MCP w claude_desktop_config.json (konfiguracja karty Chat) | Ładowane do lokalnych sesji Code; przy konflikcie nazw z ~/.claude.json albo .mcp.json wygrywa definicja z claude_desktop_config.json | Trzymaj jedną definicję na nazwę serwera. Żeby skopiować te serwery do CLI, uruchom claude mcp add-from-claude-desktop (macOS i WSL) |
Serwer stdio zdefiniowany i w ~/.claude.json (zakres użytkownika), i w projektowym .mcp.json | Karta Code używa wersji z ~/.claude.json, odwrotnie niż kolejność zakresów w CLI | Usuń kopię osobistą, gdy źródłem prawdy jest plik projektu |
| Listy sesji | Osobne dla CLI i Desktop | Przenoś sesje przez /desktop z CLI albo /resume w Desktop |
Konektory, czyli serwery dodawane przyciskiem +, to serwery MCP z graficzną konfiguracją. Używaj ich do obsługiwanych usług, takich jak GitHub, Linear czy Slack; wszystko, co współdzieli zespół, trzymaj w projektowym .mcp.json, żeby widziały to też CLI i CI.
Co się psuje po przejściu na Desktop?
Dział zatytułowany „Co się psuje po przejściu na Desktop?”| Objaw | Przyczyna | Naprawa |
|---|---|---|
Claude nie znajduje node, pnpm ani python | Aplikacja nie odziedziczyła PATH, który buduje twoja powłoka (menedżery wersji, własne profile) | Sprawdź, czy narzędzie działa w terminalu, popraw PATH w profilu powłoki, zrestartuj aplikację; brakujące zmienne dodaj w edytorze środowiska lokalnego |
| Serwer podglądu startuje, ale nie łączy się z bazą | Zmienna jest w powłoce albo w env w settings.json, które nie trafia do serwerów podglądu | Dodaj ją w edytorze środowiska lokalnego (koło zębate przy Local) |
| „Git is required” albo błąd Git LFS przy starcie sesji | Sesje w worktree wymagają gita, a niektóre repozytoria Git LFS | Zainstaluj Git (w Windows Git for Windows); dla LFS zainstaluj go, uruchom git lfs install i zrestartuj aplikację |
| Serwer drugiej sesji nie startuje, bo port jest zajęty | Dwa worktree uruchamiają ten sam serwer na tym samym porcie | Ustaw autoPort: true dla tej konfiguracji albo false i uruchamiaj go w jednej sesji naraz |
| Serwer MCP działa inaczej niż w terminalu | Ta sama nazwa jest w claude_desktop_config.json albo w zakresie użytkownika, a te wygrywają w karcie Code | Zmień nazwę albo usuń zdublowaną definicję |
/permissions odpowiada isn't available in this environment | Polecenia otwierające okno dialogowe terminala nie działają w Desktop | Edytuj plik ustawień bezpośrednio albo uruchom polecenie w CLI |
Error 403: Forbidden w karcie Code | Nieaktualne logowanie albo brak płatnego planu | Wyloguj się i zaloguj ponownie; jeśli CLI działa, a Desktop nie, zamknij aplikację całkowicie i otwórz ją znowu |
| „Branch doesn’t exist yet” przy otwieraniu sesji chmurowej w CLI | Sesja w chmurze utworzyła gałąź, której nie pobrałeś | Skopiuj nazwę gałęzi z paska narzędzi, potem git fetch origin <gałąź> i git checkout <gałąź> |
| Continue in → Claude Code on the Web jest nieaktywne albo odmawia | Przekazanie wypycha gałąź i wymaga czystego drzewa roboczego; nie działa dla sesji SSH | Najpierw zacommituj albo zrób stash i spróbuj ponownie; w sesji SSH wypchnij gałąź i uruchom z niej sesję w chmurze |
| Znika worktree, który był jeszcze potrzebny | Archiwizacja sesji, ręczna albo automatyczna po scaleniu lub zamknięciu pull requesta, usuwa jej worktree | Commituj i wypychaj przed archiwizacją; nie włączaj auto-archiwizacji, jeśli wracasz do gałęzi po zamknięciu pull requesta |
Dwa ustawienia wymagają ostrożności także poza rozwiązywaniem problemów. Bypass permissions to odpowiednik --dangerously-skip-permissions w Desktop; używaj go tylko w jednorazowym kontenerze lub maszynie wirtualnej z ograniczoną siecią, nigdy na laptopie z produkcyjnymi poświadczeniami w zasięgu. Uprawnienia i sandboxing opisują bezpieczne konfiguracje. Na urządzeniach zarządzanych administratorzy mogą wyłączyć sesje lokalne (disableDesktopLocalSessions), ograniczyć tryby uprawnień, z góry skonfigurować hosty SSH i zablokować przeglądanie zewnętrznych stron; zajrzyj do integracji w firmie, zanim obiecasz zespołowi jakąś funkcję.
Te same idee istnieją w innych narzędziach, choć w innej formie: aplikację desktopową Codex opisują Codex app mastery i worktree w Codex, a równoległych agentów Cursora — okno Agents w Cursorze.