Przejdź do głównej zawartości

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.

  • 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 .env i 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.

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śćCLIDesktop
Równoległe sesjeJeden terminal na sesję albo agent viewLista w pasku bocznym; Cmd+kliknięcie (macOS) lub Ctrl+kliknięcie (Windows) otwiera dwie sesje obok siebie
Izolacja sesjiclaude --worktree [nazwa] (-w; nazwa jest opcjonalna)Opcja worktree obok nazwy gałęzi przy starcie sesji
Przegląd diffu/diff, git diff, twoje IDEWidok diffu z komentarzami do linii, na które Claude reaguje, oraz przycisk Review code
Podgląd aplikacjiTwoja przeglądarkaPanel Browser, który uruchamia serwer z .claude/launch.json i pozwala Claude robić zrzuty ekranu, klikać i badać DOM
Obsługa pull requestagh, strona CIPasek statusu CI z przełącznikami Auto-fix i Auto-merge (wymaga zalogowanego gh)
Gdzie działaTwój komputer, chmura (--cloud), devcontainerLocal, Cloud, host SSH albo dystrybucja WSL w Windows
Skryptyclaude -p, --output-format, Agent SDKNiedostępne; Desktop działa tylko interaktywnie
Wiele agentówAgent teams (eksperymentalne), subagenci, dynamic workflowsSubagenci i dynamic workflows; agent teams tylko w CLI (sprawdzone 26.09.2026)
Tryby uprawnieńWszystkie, łącznie z dontAskManual, 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.

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żyjDlaczego
Kilka niezależnych zadań, które prowadzisz ręcznie w ciągu dniaDesktopPasek boczny, widok dzielony i powiadomienia systemowe pokazują, która sesja cię potrzebuje
Praca nad UI albo API, której efekt chcesz zobaczyćDesktopPanel Browser i auto-verify stawiają działającą aplikację obok diffu
Przegląd zmiany, zanim stanie się pull requestemDesktopKomentarze do linii trafiają prosto do Claude jako nowa tura
Skrypt, zadanie CI, hook pre-commit, cokolwiek z -pCLIDesktop nie ma trybu nieinteraktywnego
Wiele sesji w tle zlecanych z jednego miejscaCLI (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 FoundryCLI, chyba że dział IT skonfigurował Claude Desktop dla tego dostawcyDesktop domyślnie łączy się z API Anthropic
Skoordynowane zespoły agentów (agent teams)CLINiedostępne w Desktop
Długa migracja, która ma działać dalej po zamknięciu laptopaSesja Cloud w Desktop albo claude --cloud w CLISesje 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ę.

  1. 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.

  2. 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ład claude/, żeby gałęzie agentów łatwo było rozpoznać i sprzątnąć.

  3. Kopiuj ignorowane pliki do nowych worktree. Worktree to świeży checkout, więc brakuje w nim .env i serwer deweloperski nie wstaje. Dodaj plik .worktreeinclude w katalogu głównym projektu. Używa składni .gitignore i kopiuje tylko pliki, które są też ignorowane przez gita:

    .env
    .env.local
    config/local.json

    Ten sam plik działa dla sesji CLI z --worktree i dla worktree subagentów, więc piszesz go raz.

  4. Daj podglądowi konfigurację serwera. Claude wykrywa serwer deweloperski i zapisuje .claude/launch.json w 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: true dla serwerów, które mogą zmienić port, gdy działają dwa worktree naraz; Claude przekazuje nowy port w zmiennej PORT. Ustaw autoPort: false dla serwera, którego port wyznacza callback OAuth albo lista CORS. Nigdy nie wpisuj sekretów w env: 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.

  5. 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 PATH i 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. Klucz env w ~/.claude/settings.json trafia do sesji Claude, ale nie do serwerów podglądu.

  6. Zaloguj gh, jeśli chcesz monitorować pull requesty. Pasek statusu CI odpytuje checki przez GitHub CLI. Uruchom gh auth status w zintegrowanym terminalu (Ctrl+`); jeśli się nie powiedzie, uruchom gh 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ń.

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:

  1. 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.
  2. Otwórz widok diffu, klikając wskaźnik +12 -1 (albo Cmd+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).
  3. 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.
  4. Skomentuj linie, które cię niepokoją. Kliknij linię, wpisz komentarz i wyślij wszystkie komentarze naraz przez Cmd+Enter (Ctrl+Enter w Windows). Claude odpowiada nowym diffem. Komentuj zachowanie („co się stanie, gdy filtr nie pasuje do żadnego wiersza?”), a nie nazewnictwo.
  5. Sprawdź, czy testy nie zostały osłabione. W diffie przejrzyj pliki testów przed plikami źródłowymi. Usunięta asercja albo nowy skip to najczęstszy sposób, w jaki agent „przechodzi” testy. Chroń wyrocznię pokazuje, jak to uniemożliwić hookami i uprawnieniami do plików.
  6. 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.

Desktop i CLI czytają te same pliki, więc większość konfiguracji przechodzi bez wysiłku:

  • Pamięć: CLAUDE.md i CLAUDE.local.md w projekcie; zobacz system pamięci.
  • Ustawienia: ~/.claude/settings.json, projektowy .claude/settings.json i ~/.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.json i .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ć:

CoZachowanie w DesktopCo 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.jsonTrzymaj 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.jsonKarta Code używa wersji z ~/.claude.json, odwrotnie niż kolejność zakresów w CLIUsuń kopię osobistą, gdy źródłem prawdy jest plik projektu
Listy sesjiOsobne dla CLI i DesktopPrzenoś 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.

ObjawPrzyczynaNaprawa
Claude nie znajduje node, pnpm ani pythonAplikacja 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ąduDodaj ją w edytorze środowiska lokalnego (koło zębate przy Local)
„Git is required” albo błąd Git LFS przy starcie sesjiSesje w worktree wymagają gita, a niektóre repozytoria Git LFSZainstaluj 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ętyDwa worktree uruchamiają ten sam serwer na tym samym porcieUstaw autoPort: true dla tej konfiguracji albo false i uruchamiaj go w jednej sesji naraz
Serwer MCP działa inaczej niż w terminaluTa sama nazwa jest w claude_desktop_config.json albo w zakresie użytkownika, a te wygrywają w karcie CodeZmień nazwę albo usuń zdublowaną definicję
/permissions odpowiada isn't available in this environmentPolecenia otwierające okno dialogowe terminala nie działają w DesktopEdytuj plik ustawień bezpośrednio albo uruchom polecenie w CLI
Error 403: Forbidden w karcie CodeNieaktualne logowanie albo brak płatnego planuWyloguj 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 CLISesja 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 odmawiaPrzekazanie wypycha gałąź i wymaga czystego drzewa roboczego; nie działa dla sesji SSHNajpierw 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 potrzebnyArchiwizacja sesji, ręczna albo automatyczna po scaleniu lub zamknięciu pull requesta, usuwa jej worktreeCommituj 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.