Claude Code Mac Desktop + Sterowanie zdalne: przewodnik użytkownika CLI
Aplikacja Claude Code Mac desktop oraz podpolecenie claude remote-control rozwiązują ten sam problem z przeciwnych stron. Aplikacja desktop zapewnia okno z trzema zakładkami (Chat, Cowork, Code) oraz przestrzeń roboczą, którą można dostosować wokół własnego kodu. Sterowanie zdalne (Remote Control) oferuje dokładnie odwrotność: żadnego okna na maszynie lokalnej, jedynie proces, który udostępnia lokalną sesję aplikacji Claude na telefonie lub claude.ai/code w dowolnej przeglądarce.1
Osobom, które zaczynały od claude w terminalu, oba interfejsy początkowo wydają się dziwne. Po co GUI, skoro TUI w zupełności wystarcza? Po co sterować Makiem z telefonu, skoro Mac jest tuż obok? Odpowiedź na oba pytania jest taka sama: to środowisko lokalne jest tym, czego nie da się przenieść. System plików, serwery MCP (Yurei, Cloudflare, GitHub), Xcode, tożsamości do podpisywania kodu, gniazdo Yurei, historia w ~/.claude/projects/. Wszystko to znajduje się na maszynie. Aplikacja desktop oraz Remote Control to dwa sposoby dotarcia do tego środowiska skądinąd: z innego okna, z innego urządzenia, z kanapy, ze spotkania.
Niniejszy esej stanowi referencję, której brakowało mi przy migracji. Obejmuje trzy tryby (lokalny CLI, chmurowy, lokalny + Remote Control), sposób konfiguracji każdego z nich, polecenia ukośnikowe działające w różnych miejscach, kwestię powiadomień push oraz konkretne miejsca, w których aplikacja desktop odbiega od claude w terminalu. Z uczciwym podejściem do ograniczeń. Bez wypełniacza.
TL;DR
- Trzy tryby, które z poziomu claude.ai/code wyglądają podobnie, lecz funkcjonują zupełnie inaczej: lokalny CLI, sesja chmurowa (
claude --remotez terminala, środowisko Remote w aplikacji Desktop lub uruchomienie nowej sesji w claude.ai/code) oraz lokalny + Remote Control. Tylko pierwszy i trzeci mają dostęp do systemu plików, serwerów MCP oraz Xcode.12 - Zakładka Code w aplikacji Mac desktop to graficzna sesja Claude Code: ten sam silnik co CLI, ta sama konfiguracja
~/.claude.json, ten sam CLAUDE.md, te same serwery MCP. Posiada jednak własny układ paneli, czaty boczne oraz panel sesji.2 claude remote-control(tryb serwera) utrzymuje proces uruchomiony lokalnie i pozwala łączyć się z dowolnego urządzenia.claude --remote-controlto sesja interaktywna z włączonym Remote Control./remote-controlto to samo w postaci polecenia ukośnikowego z poziomu istniejącej sesji.1- Powiadomienia push aplikacji iOS działają poprzez
/config→ „Push when Claude decides” (v2.1.110+). Claude wysyła powiadomienie, gdy długie zadanie się kończy lub gdy potrzebuje danych wejściowych od użytkownika.13 - W przypadku natywnych kompilacji macOS lub iOS jedynymi środowiskami, które rzeczywiście działają, są lokalny CLI lub lokalny + Remote Control. Sesje chmurowe nie mogą uruchamiać Xcode, podpisywać kodu ani widzieć lokalnego gniazda Yurei.2
Trzy tryby, które mają znaczenie
Ten sam adres URL claude.ai/code, ta sama ikona aplikacji iOS, a za nimi trzy zupełnie odmienne środowiska wykonawcze.
1. Lokalny CLI
To claude w terminalu. Proces działa na Maku. Sesja znajduje się w ~/.claude/projects/<project-path>/<session-id>.jsonl na dysku, nie zaś w koncie Anthropic.4 iPhone nie ma do niej dostępu. Brak interfejsu zdalnego.
Co się otrzymuje:
- Pełny dostęp do systemu plików:
~/Projects,~/.claude/, gdziekolwiek użytkownik ma uprawnienia do odczytu i zapisu - Wszystkie serwery MCP: Yurei (
/tmp/yurei.sock), Cloudflare, GitHub, Supabase, Playwright itd. - Xcode, symulatory (
xcrun simctl), tożsamości do podpisywania kodu, App Store Connect - Pluginy, skille i haki zainstalowane lokalnie
- Tryb głosowy (
/voice) - Wszystkie flagi CLI (
--worktree,--rc,--print,--output-formatitd.)
Czego się nie otrzymuje: jakiegokolwiek sposobu na podgląd lub sterowanie sesją z innego urządzenia.
W przypadku kompilacji aplikacji Mac (Return, Get Bananas, Water, aplikacje opisane w postach o App Intents i serwerze MCP) lokalny CLI działa bez zarzutu. Tak samo jak lokalny + Remote Control (omówiony poniżej w sekcji 3): oba utrzymują proces Claude na Macu, więc oba mają dostęp do Xcode, symulatorów i podpisywania. Sesja chmurowa to ta, która nie może uruchomić zestawu narzędzi Apple.
2. Sesja chmurowa
To claude --remote "task" z terminala, wybranie Remote przy uruchomieniu sesji w aplikacji desktop lub odwiedzenie claude.ai/code w przeglądarce i rozpoczęcie tam nowej sesji. Proces Claude Code działa na zarządzanej infrastrukturze chmurowej Anthropic, nie zaś na maszynie lokalnej.2 (Starsza dokumentacja oraz nawyki shellowe pokazują czasami & task jako skrót dla tego samego efektu; należy traktować jawną flagę --remote jako formę kanoniczną.)
Co się otrzymuje:
- Trwałość między maszynami i urządzeniami: sesja widoczna z iPhone’a, iPada, przeglądarki
- Działa nadal po zamknięciu aplikacji lub wyłączeniu laptopa
- Środowisko zarządzane przez Anthropic, brak konieczności konfiguracji lokalnej
- Wsparcie dla wielu repozytoriów: sesje chmurowe potrafią sklonować kilka repozytoriów GitHub do tej samej przestrzeni roboczej2
Czego się nie otrzymuje:
- Brak dostępu do systemu plików w
~/Projects - Brak lokalnych serwerów MCP (gniazdo Yurei, lokalne skrypty cache Cloudflare, niestandardowe serwery MCP w
.mcp.jsonbędą nieosiągalne) - Brak Xcode, brak symulatorów, brak podpisywania
- Brak dostępu do konfiguracji
~/.claude/lub skilli (jedynie do tego, co znajduje się w.claude/sklonowanego repozytorium) - Niemożność
@mentionplików (autouzupełnianie @ pobiera dane z lokalnego projektu; sesje chmurowe takiego nie posiadają)2
Przykład zastosowania: samodzielne zadanie programistyczne bez zależności od zestawu narzędzi Apple. Otwarcie review PR-a, uruchomienie pakietu testów, refaktor pliku, napisanie skryptu Python. Wszystko, co wymaga jedynie git + standardowy Linux + Python/Node.
3. Lokalny + Remote Control
To trzecia opcja, ta, którą większość użytkowników CLI pomija. Istnieją trzy sposoby jej włączenia: claude remote-control (tryb serwera), claude --remote-control (lub --rc, sesja interaktywna z włączonym Remote Control) lub /remote-control z poziomu istniejącej sesji. Proces Claude Code nadal działa na Macu z pełnym dostępem lokalnym, lecz dodatkowo rejestruje się w API Anthropic, dzięki czemu można nim sterować z iPhone’a, iPada lub przeglądarki.1
Co się otrzymuje: wszystko, co posiada lokalny CLI, plus telefon, z którego można wysyłać polecenia. Konwersacja pozostaje zsynchronizowana między wszystkimi podłączonymi urządzeniami. Można wysłać wiadomość z terminala Maka, zobaczyć ją na iPhonie, wpisać kontynuację na iPhonie, zobaczyć ją z powrotem w terminalu. Lokalny proces nadal wykonuje pracę; telefon jest jedynie oknem.
Z czego się rezygnuje: niewielki, konkretny zestaw poleceń ukośnikowych. Dokumentacja jawnie wyróżnia /mcp, /plugin oraz /resume jako wyłącznie lokalne (każde z nich otwiera interaktywny selektor wymagający terminala). Dokumentacja jawnie wymienia polecenia, które generują wyjście tekstowe i działają z urządzeń mobilnych oraz przeglądarki: /compact, /clear, /context, /usage, /exit, /extra-usage, /recap, /reload-plugins.1
To odpowiedź dla natywnych kompilacji aplikacji macOS lub iOS. Otrzymuje się Xcode, otrzymuje się MCP, otrzymuje się gniazdo Yurei, a także widoczność z telefonu.
Konfiguracja aplikacji Mac desktop
Aplikacja desktop oraz CLI nie stanowią alternatyw. Są to dwóch klientów dla tego samego silnika. Można uruchomić oba jednocześnie na tej samej maszynie, nawet w tym samym projekcie. Każdy z nich prowadzi własną historię sesji, lecz dzielą CLAUDE.md, ~/.claude.json, serwery MCP, haki oraz skille.2
Pobranie z claude.com/download. Instalacja. Logowanie kontem claude.ai. Aplikacja zawiera trzy zakładki:2
- Chat dla zwykłych konwersacji z Claude
- Cowork dla Dispatch (długotrwałe zadania, opcjonalnie obsługiwane wiadomościami z telefonu)
- Code dla Claude Code z interfejsem graficznym
Zakładka Code jest tym, co nas interesuje. Należy kliknąć + New session w panelu bocznym. W obszarze promptu konfiguruje się cztery rzeczy:2
- Środowisko (Environment): Local (ten Mac), Remote (chmura Anthropic) lub SSH (zdalna maszyna zarządzana przez użytkownika)
- Folder projektu (Project folder): katalog, w którym pracuje Claude
- Model: Sonnet 4.6, Opus 4.6, Opus 4.7 lub inne
- Tryb uprawnień (Permission mode): Ask, Auto-accept edits, Plan, Auto lub Bypass permissions
Wpisuje się prompt, naciska Enter. Od tego momentu odczucia są jak w aplikacji do czatu: wiadomości układają się w stos, wywołania narzędzi renderują się jako zwijane karty, a wskaźnik statystyk diff (+12 -1) pojawia się przy zmianach plików. Kliknięcie wskaźnika otwiera podgląd diff z review na poziomie pliku oraz komentarzami liniowymi.2
Dla sesji lokalnych klawisz @ w polu promptu autouzupełnia ścieżki plików z projektu: tak samo jak @ mention w CLI. Dla sesji zdalnych @ jest wyłączone, ponieważ proces chmurowy nie ma dostępu do plików lokalnych.2
Wymagania przed rozpoczęciem
Cztery warunki wstępne dla każdej sesji Remote Control:1
- Claude Code v2.1.51 lub nowszy (sprawdzenie poleceniem
claude --version). - Subskrypcja: Pro, Max, Team lub Enterprise. Klucze API nie są obsługiwane. W planach Team i Enterprise administrator musi najpierw włączyć przełącznik Remote Control w
claude.ai/admin-settings/claude-code. - Uwierzytelnianie: należy uruchomić
claudei użyć/login(opcja claude.ai), o ile nie zostało to wcześniej wykonane. Tokeny do samego wnioskowania zclaude setup-tokenlub zmiennej środowiskowejCLAUDE_CODE_OAUTH_TOKENnie zadziałają. - Zaufanie do przestrzeni roboczej: należy uruchomić
claudew katalogu projektu co najmniej raz oraz zaakceptować okno dialogowe zaufania do przestrzeni roboczej.
Cztery sposoby uruchomienia sesji Remote Control
Aktualna dokumentacja wymienia cztery powierzchnie wywołania (trzy z CLI plus polecenie VS Code). Aplikacja Mac desktop nie jest hostem Remote Control; Remote Control jest hostowany przez claude (CLI) lub rozszerzenie VS Code.1
Tryb serwera: claude remote-control
cd ~/Projects/blakecrosley.com
claude remote-control
Terminal staje się serwerem. Brak interaktywnego promptu. Wyświetla URL sesji oraz (po naciśnięciu spacji) kod QR. Połączenie z innego urządzenia następuje przez otwarcie URL-a lub zeskanowanie QR. Podczas trwania sesji terminal pokazuje status połączenia oraz aktywność narzędzi.
Przydatne flagi:1
--name "My Project": niestandardowy tytuł sesji widoczny w claude.ai/code--remote-control-session-name-prefix <prefix>: nadpisuje automatyczną nazwę (domyślnie nazwa hosta maszyny, generując nazwy typumyhost-graceful-unicorn)--spawn same-dir(domyślnie): wszystkie sesje współdzielą bieżący katalog roboczy--spawn worktree: każda sesja otrzymuje własny git worktree (wymaga repozytorium git); naciśnięcieww trakcie działania przełącza międzysame-diraworktree--spawn session: tryb pojedynczej sesji, odrzuca dodatkowe połączenia; ustawiany wyłącznie przy starcie--capacity N: maksymalna liczba sesji równoczesnych (domyślnie 32, niemożliwe do połączenia z--spawn=session)--sandbox/--no-sandbox: przełącza izolację systemu plików i sieci (domyślnie wyłączona)
Tryb serwera to właściwy wybór, gdy chce się uruchomić sesję i odejść. Terminal staje się daemonem, nie zaś przestrzenią roboczą.
Interaktywny: claude --remote-control
claude --remote-control
# lub krócej
claude --rc
Tak samo jak normalna sesja interaktywna, lecz z włączonym Remote Control. Można wpisywać wiadomości lokalnie oraz z claude.ai/code czy aplikacji iOS. Konwersacja pozostaje zsynchronizowana. Opcjonalnie: claude --rc "Project Name".
Można tego użyć, gdy chce się dalej pracować w terminalu, ale jednocześnie zachować widoczność z telefonu. To najczęstszy przypadek.
Polecenie ukośnikowe: /remote-control
Sesja jest już aktywna i chce się włączyć Remote Control specjalnie dla tej konwersacji? Należy wpisać /remote-control (lub /rc). Bieżąca historia konwersacji zostaje przeniesiona, a URL sesji + QR pojawiają się. Można przekazać nazwę: /remote-control My Project.
Flagi --verbose, --sandbox oraz --no-sandbox nie działają z formą ukośnikową: jedynie z claude remote-control (tryb serwera).
Rozszerzenie VS Code
W rozszerzeniu Claude Code VS Code należy wpisać /remote-control (lub /rc) w polu promptu albo otworzyć menu poleceń przez / i wybrać je. Wymaga Claude Code v2.1.79 lub nowszego.1 Powyżej pola promptu pojawia się baner pokazujący status połączenia. Kliknięcie Open in browser przenosi bezpośrednio do sesji, można ją także znaleźć na liście sesji w claude.ai/code. Rozłączenie następuje przez kliknięcie ikony zamknięcia na banerze lub ponowne uruchomienie /remote-control.
Polecenie VS Code nie przyjmuje argumentu nazwy ani nie wyświetla kodu QR. Tytuł sesji jest tworzony na podstawie historii konwersacji lub pierwszego promptu.
Stale włączone: /config → „Enable Remote Control for all sessions”
Aby każda interaktywna sesja claude rejestrowała sesję zdalną domyślnie, należy uruchomić /config i przełączyć Enable Remote Control for all sessions na true.1 Każdy interaktywny proces otrzymuje jedną sesję zdalną. Wiele instancji → wiele sesji. Dla wielu równoczesnych sesji z jednego procesu właściwym narzędziem nadal pozostaje tryb serwera.
Jak działają powiadomienia push
Powiadomienia push na telefon przy ważnych zdarzeniach. Konfiguracja składa się z czterech kroków:13
- Instalacja aplikacji Claude dla iOS lub Android. Z poziomu Claude Code polecenie
/mobilewyświetla kod QR do pobrania, jeśli aplikacja nie jest jeszcze zainstalowana. - Logowanie tym samym kontem Claude, z którego korzysta się w Claude Code w terminalu.
- Akceptacja prośby o uprawnienia do powiadomień systemu operacyjnego.
- W terminalu uruchomienie
/configi włączenie Push when Claude decides (v2.1.110+).
Następnie Claude sam decyduje, kiedy wysłać powiadomienie. Wyzwalają go dwa przypadki: zakończenie długo trwającego zadania lub potrzeba danych wejściowych od użytkownika do kontynuacji. Można także zażądać go jawnie w prompcie: notify me when the tests finish. Brak konfiguracji per-zdarzenie: ustawienie jest włączone albo wyłączone.
Jeśli ustawienie zostało włączone, lecz powiadomienia nie pojawiają się, najczęstszym rozwiązaniem jest otwarcie aplikacji Claude na telefonie, aby mogła odświeżyć token push. Ekran /config pokazuje No mobile registered do tego momentu. Tryby Focus iOS oraz optymalizacja baterii Androida również mogą opóźnić lub zablokować dostarczenie; warto sprawdzić Ustawienia → Powiadomienia → Claude na iOS lub wyłączyć optymalizację baterii dla aplikacji Claude na Androidzie.1
Tytułem kontekstu: oddzielne narzędzie push-notification (również v2.1.110+) pozwala Claude samemu decydować o wysyłaniu powiadomień podczas sesji, a nie tylko po jej zakończeniu. Współpracuje z tą samą powierzchnią Remote Control, bez dodatkowej konfiguracji.3
Polecenia ukośnikowe działające zdalnie
To część, na której zależy większości użytkowników CLI. Co działa, gdy pisze się z telefonu zamiast z terminala?
Działają z dowolnego podłączonego klienta (terminal, przeglądarka, aplikacja iOS):1
/compact,/clear: zarządzanie kontekstem/context,/usage,/extra-usage: inspekcja użycia i kontekstu (v2.1.113+ dodała wsparcie Remote Control dla/extra-usage)/exit,/recap,/reload-plugins- Wszystkie nieselektorowe wejścia tekstowe (zwykłe prompty, normalne polecenia ukośnikowe generujące wyjście tekstowe)
Wyłącznie lokalne (tylko terminal):1
/mcp: otwiera interaktywny selektor/plugin: otwiera interaktywny selektor/resume: musi wyrenderować listę sesji z UI wyboru
Zasada jest następująca: wszystko, co wymaga listy z wyborem klawiaturą w terminalu, pozostaje lokalne. Wszystko, co działa na zasadzie tekst-wejściowy / tekst-wyjściowy, działa z urządzeń mobilnych lub przeglądarki.
Niektóre polecenia mają wsparcie Remote Control zależne od wersji. /extra-usage działa z klientów Remote Control jedynie w v2.1.113 i nowszych: wcześniejsze wersje cicho zawodziły.5 Warto sprawdzić claude --version, jeśli polecenie zachowuje się inaczej z telefonu niż z Maka.
Tryby uprawnień różnią się nieco
Aplikacja desktop posiada pięć trybów uprawnień; CLI ma te pięć plus dontAsk:2
| Tryb | Zachowanie | CLI? | Desktop? |
|---|---|---|---|
Ask permissions (default) |
Pyta przed każdą edycją/poleceniem | ✓ | ✓ |
Auto accept edits (acceptEdits) |
Automatycznie akceptuje edycje plików + bezpieczne polecenia systemu plików; pyta o resztę | ✓ | ✓ |
Plan mode (plan) |
Czyta/eksploruje, proponuje plan, brak edycji źródłowych | ✓ | ✓ |
Auto (auto) |
Sprawdzenia bezpieczeństwa w tle, mniej zapytań | ✓ | ✓ |
Bypass permissions (bypassPermissions) |
Brak zapytań. Odpowiednik flagi CLI --dangerously-skip-permissions. Wytyczne Anthropic: stosować jedynie w kontenerach lub VM-ach z piaskownicą. |
✓ | ✓ (włączane w Ustawieniach) |
dontAsk |
Wyłącznie wstępnie zatwierdzone narzędzia | ✓ | ✗ |
dontAsk jest dostępny wyłącznie w CLI. Reszta odpowiada kontrolce UI obok przycisku wysyłania. Flaga CLI --dangerously-skip-permissions odpowiada Bypass permissions, do której trzeba się włączyć przez Ustawienia → Claude Code → „Allow bypass permissions mode”.2
Tryb Auto wymaga Claude Sonnet 4.6, Opus 4.6 lub Opus 4.7 w planach Team/Enterprise/API; Opus 4.7 w Max. Niedostępny w planach Pro ani u dostawców zewnętrznych.2
Zakładka Cowork i Dispatch (powiązane, lecz nietożsame)
Zakładka Cowork w aplikacji desktop to inna funkcja o nakładającej się ergonomii. Dispatch to „wyślij zadanie do Claude z telefonu, a on zdecyduje, czy obsłużyć je samemu, czy zlecić sesji Code na Maku.”2
Parowanie odbywa się jednorazowo: instalacja aplikacji Claude mobile, połączenie jej z Makiem przez zakładkę Cowork. Następnie można wysłać Dispatch zadanie SMS-em („fix the login bug, open a PR”), a on odpowiednio rozdziela pracę. Naprawy błędów, aktualizacje zależności, uruchamianie testów oraz tworzenie PR-ów zazwyczaj kończą się jako sesje Code na Maku z odznaką Dispatch w panelu bocznym. Badania, edycja dokumentów oraz praca z arkuszami pozostają w Cowork.
Uprawnienia do zatwierdzania aplikacji dla sesji Code spawnowanych przez Dispatch wygasają po 30 minutach (zamiast trwać przez całą sesję, jak w przypadku zwykłych sesji Code), więc długotrwałe zadanie Dispatched może ponownie zapytać o uprawnienia aplikacji, które zostały już wcześniej zatwierdzone.2
Dispatch wymaga Pro lub Max. Niedostępny w Team lub Enterprise.
To nie jest Remote Control. Dispatch oznacza „wyślij Claude zadanie do autonomicznego wykonania”; Remote Control oznacza „steruj sesją, która już działa.” Są one udokumentowane jako niezależne powierzchnie: Remote Control jest hostowany przez CLI lub VS Code, Dispatch spawnuje sesje Code w aplikacji desktop. Dokumentacja nie opisuje obecnie ich łączenia. Wybór należy do tego, czy chce się delegować (Dispatch), czy sterować (Remote Control).
Co przenosi się z CLI
Aplikacja desktop odczytuje te same pliki konfiguracyjne, co CLI:2
CLAUDE.mdorazCLAUDE.local.mdw projekcie~/.claude.json(globalny) oraz.mcp.json(per-projekt) dla serwerów MCP- Haki i skille zdefiniowane w
~/.claude/settings.jsonlub.claude/settings.json - Reguły uprawnień w
settings.json - Wszystkie dostępne modele
Flaga CLI → odpowiednik desktop:2
| CLI | Desktop |
|---|---|
--model sonnet |
Lista rozwijana modelu obok przycisku wysyłania |
--resume, --continue |
Kliknięcie sesji w panelu bocznym |
--permission-mode |
Selektor trybu obok przycisku wysyłania |
--dangerously-skip-permissions |
Bypass permissions (włączane w Ustawieniach) |
--add-dir |
Przycisk + do dodawania repozytoriów w sesjach zdalnych |
--allowedTools, --disallowedTools |
Brak UI per-sesja; reguły z pliku ustawień nadal obowiązują |
--verbose |
Tryb widoku Verbose w liście rozwijanej Transcript |
--print, --output-format |
Niedostępne: Desktop jest wyłącznie interaktywny |
Zmienna środowiskowa ANTHROPIC_MODEL |
Lista rozwijana modelu |
Zmienna środowiskowa MAX_THINKING_TOKENS |
Edytor środowiska lokalnego |
Jedna pułapka konfiguracyjna warta zaznaczenia: Claude Desktop chat app (klient wyłącznie do czatu, w claude_desktop_config.json) oraz Claude Code Desktop (klient deweloperski, o którym mowa) to różne produkty. Serwery MCP skonfigurowane dla aplikacji czatu nie pojawią się w zakładce Code. Code czyta ~/.claude.json oraz .mcp.json, nie zaś claude_desktop_config.json.2
CLI → Desktop: kiedy się przenieść
Aplikacja desktop sprawdza się w trzech rzeczach, które CLI wykonuje słabo:2
- Sesje równoległe obok siebie: każda sesja w zakładce Code otrzymuje własne Git worktree w
<project-root>/.claude/worktrees/. Przełączanie cyklemCtrl+Tab/Ctrl+Shift+Tab. Można uruchomić refaktor w jednej sesji, a w drugiej pakiet testów, i przeglądać je wizualnie zamiast po sekwencjach ANSI escape. - Wizualne przeglądanie diffów: kliknięcie wskaźnika
+12 -1. Komentarze do linii. Wysyłanie komentarzy z powrotem do Claude przezCmd+Enter. Lepsze niż czytanie inline diffów w terminalu. - Wbudowany panel podglądu: Claude może uruchomić serwer deweloperski i otworzyć działającą aplikację w wbudowanej przeglądarce, robić zrzuty ekranu, klikać i weryfikować własne zmiany. Auto-weryfikacja jest domyślnie włączona dla każdego projektu (przełącznik w
.claude/launch.jsonlub przez listę rozwijaną Preview).2
CLI nadal wygrywa w: skryptowaniu (--print, --output-format), automatyzacji (zadania cron, CI), przepływach tmux/screen oraz wszystkim, co wymaga trybu uprawnień dontAsk.
Aby przenieść sesję CLI do Desktop bez utraty kontekstu, należy uruchomić /desktop w terminalu. Zachowuje to sesję, otwiera ją w aplikacji desktop, kończy CLI.2
Ograniczenia i pułapki
Realne, z dokumentacji:1
- Jedna sesja zdalna na proces interaktywny. Poza trybem serwera każde wywołanie
claudeobsługuje jedną sesję zdalną. Potrzeba większej liczby? Należy użyćclaude remote-control(tryb serwera). - Proces lokalny musi pozostać uruchomiony. Remote Control jest hostowany przez proces CLI
claudelub rozszerzenie VS Code. Zamknięcie terminala, zakończenie VS Code lub zabicie procesuclaudekończy sesję zdalną. Brak trybu odłączonego od terminala.1 - Awaria sieci > 10 minut kończy sesję. Mac może być włączony, lecz niezdolny do połączenia z siecią przez 10 minut; proces wówczas wychodzi i trzeba zacząć od nowa.
- Ultraplan rozłącza Remote Control. Oba zajmują powierzchnię claude.ai/code, a w danym momencie może być podłączony tylko jeden.
- Tryb Auto wymaga nowszych modeli. Opus 4.7 w Max; Sonnet 4.6, Opus 4.6 lub Opus 4.7 w Team/Enterprise/API. Niedostępny w Pro.
- Klucze API ani tokeny do samego wnioskowania nie zadziałają. Remote Control wymaga pełnozakresowego logowania OAuth claude.ai. Jeśli ustawiono
ANTHROPIC_API_KEY, należy ją usunąć. Jeśli uwierzytelnienie nastąpiło przezclaude setup-tokenlubCLAUDE_CODE_OAUTH_TOKEN, należy uruchomićclaude auth loginw celu odświeżenia. - Administratorzy Team i Enterprise muszą włączyć tę funkcję. Domyślnie wyłączona. Przełącznik znajduje się pod adresem
claude.ai/admin-settings/claude-code→ Remote Control. Niektóre konfiguracje retencji danych powodują niedostępność przełącznika.
Najczęstsza awaria typu „dlaczego to nie działa”: użytkownik jest zalogowany tokenem do samego wnioskowania. Komunikat „Remote Control requires a full-scope login token” odpowiada temu przypadkowi. Rozwiązanie: claude auth login i wybór opcji claude.ai.1
Inne przypadki rozwiązywania problemów warte poznania
Oficjalna dokumentacja obejmuje kilka kolejnych trybów awarii, które kosztują początkującego sporo czasu. W skondensowanej formie:1
- „Remote Control requires a claude.ai subscription”: brak uwierzytelnienia w claude.ai. Jeśli ustawiono
ANTHROPIC_API_KEY, należy ją najpierw usunąć, a następnie wykonaćclaude auth login. - „Unable to determine your organization for Remote Control eligibility”: zbuforowane informacje o koncie są nieaktualne. Należy uruchomić
claude auth loginw celu odświeżenia. - „Remote Control is not yet enabled for your account”: należy sprawdzić, czy w środowisku ustawiono
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC,DISABLE_TELEMETRY,CLAUDE_CODE_USE_BEDROCK,CLAUDE_CODE_USE_VERTEXlubCLAUDE_CODE_USE_FOUNDRY. Remote Control wymaga uwierzytelnienia claude.ai; dostawcy zewnętrzni nie zadziałają. Należy je usunąć oraz wykonać/logouti/login. - „Remote Control is disabled by your organization’s policy”: trzy przyczyny według dokumentacji: (a) używany jest klucz API lub konto Console (należy użyć OAuth claude.ai), (b) administrator Team/Enterprise nie włączył przełącznika, (c) przełącznik administratora jest wyszarzony z powodu konfiguracji retencji danych niezgodnej z Remote Control (należy skontaktować się ze wsparciem Anthropic).
- „Remote credentials fetch failed”: ponowne uruchomienie z
--verbosew celu zobaczenia błędu źródłowego:claude remote-control --verbose. Zazwyczaj jest to przypadek braku zalogowania, firewall blokujący wychodzące HTTPS do API Anthropic na 443 lub wcześniejsze niepowodzenie tworzenia sesji (warto poszukaćSession creation failed: see debug log). - Okno dialogowe zaufania do przestrzeni roboczej: jeśli Remote Control nie startuje bez wyraźnego błędu, należy uruchomić
claudew katalogu projektu co najmniej raz oraz zaakceptować okno dialogowe zaufania do przestrzeni roboczej. Ten krok jest wymagany przed rejestracją sesji przez Remote Control.
Drzewo decyzyjne dla użytkowników CLI
W obliczu konkretnego zadania wybór trybu zależy od wymagań pracy:
Czy praca wymaga zestawu narzędzi Apple (Xcode, symulatory, podpisywanie)?
├── TAK → Lokalny CLI lub Lokalny + Remote Control
│ (chmura nie ma dostępu do zestawu narzędzi)
│
└── NIE → Czy wymaga lokalnych serwerów MCP (Yurei, Cloudflare itd.)?
├── TAK → Lokalny CLI lub Lokalny + Remote Control
│
└── NIE → Czy konieczne jest monitorowanie lub sterowanie z telefonu?
├── TAK → Lokalny + Remote Control LUB Sesja chmurowa
│ (chmura jest lepsza dla zadań wielogodzinnych)
│
└── NIE → Lokalny CLI wystarczy
Rozwój aplikacji Mac/iOS: to, co robi większość moich aplikacji: zawsze ląduje w górnej gałęzi. Sesje chmurowe nie potrafią xcodebuild, nie potrafią rozmawiać z symulatorem, nie potrafią podpisywać. Dla rozszerzenia MCP Get Bananas, moich skryptów spisowych zasilanych Yurei czy pracy w klastrze Apple Ecosystem zależność od zestawu narzędzi Apple jest nieunikniona. Lokalny + Remote Control to jedyna ścieżka, która zapewnia mi zarówno ten zestaw narzędzi, jak i widoczność z telefonu.
FAQ
Czy można uruchomić CLI i aplikację desktop jednocześnie w tym samym projekcie?
Tak. Dzielą konfigurację (CLAUDE.md, ~/.claude.json, serwery MCP, haki, skille), lecz zachowują oddzielne historie sesji.2 Można mieć sesję claude w iTerm i sesję w zakładce Code aplikacji desktop, obie wskazujące na ten sam ~/Projects/blakecrosley.com, obie zapisujące do git. Należy zachować ostrożność przy równoległych zapisach, jeśli nie używa się worktrees.
Co się dzieje z sesją Remote Control, gdy Mac przechodzi w stan uśpienia?
Sesja łączy się ponownie automatycznie, gdy maszyna wraca do działania. Jeśli Mac jest włączony, lecz niezdolny do połączenia z siecią przez ponad ~10 minut, sesja wygasa i konieczne jest rozpoczęcie nowej poleceniem claude remote-control.1
Czy Remote Control działa ze składnią & task (background)?
& task oraz Remote Control to różne powierzchnie. & task wysyła pracę do sesji chmurowej. Remote Control łączy z sesją lokalną z innego urządzenia. Oba mogą pojawić się na liście sesji claude.ai/code, lecz chmurowy działa na infrastrukturze Anthropic, a Remote Control na maszynie lokalnej.1
Czy można używać Remote Control z dostawcą zewnętrznym (Bedrock, Vertex, Foundry)?
Nie. Remote Control wymaga uwierzytelnienia claude.ai. Jeśli ustawiono CLAUDE_CODE_USE_BEDROCK, CLAUDE_CODE_USE_VERTEX lub CLAUDE_CODE_USE_FOUNDRY, sprawdzenie uprawnień zakończy się komunikatem „Remote Control is not yet enabled for your account”. Należy je usunąć i ponownie uruchomić.1
Jaka jest różnica między --remote-control a claude remote-control?
claude --remote-control (lub --rc) uruchamia normalną sesję interaktywną w terminalu z włączonym Remote Control. Można pisać lokalnie oraz z innego urządzenia. claude remote-control (bez flagi, podpolecenie) to tryb serwera: terminal staje się serwerem bez lokalnego promptu, jedynie ze statusem połączenia. Oba domyślnie tworzą jedną sesję zdalną; tryb serwera może obsłużyć ich więcej przez --capacity lub --spawn.1
Czy aplikacja desktop posiada skille, pluginy i haki jak CLI?
Tak. To te same skille, pluginy i haki. Aplikacja desktop odczytuje ~/.claude/settings.json oraz .claude/settings.json na poziomie projektu, tak samo jak CLI. Kliknięcie przycisku + obok pola promptu pozwala przeglądać zainstalowane pluginy oraz skille. Pluginy nie są dostępne w sesjach zdalnych (chmurowych), lecz działają bez zarzutu w lokalnych sesjach desktop.2
Dlaczego /mcp nie działa z mojego telefonu?
/mcp otwiera interaktywny selektor wymagający UI dostępnego wyłącznie w terminalu do dokonania wyboru. Działa wyłącznie lokalnie. To samo dotyczy /plugin oraz /resume.1 Wszystko, co generuje wyjście tekstowe (/compact, /clear, /context, /usage, /extra-usage, /exit, /recap, /reload-plugins), działa z urządzeń mobilnych i przeglądarki.
Czy istnieje darmowa warstwa, czy wszystko wymaga subskrypcji?
Remote Control jest dostępny w planach Pro, Max, Team i Enterprise. Klucze API nie są obsługiwane. W planach Team i Enterprise administrator musi włączyć przełącznik Remote Control w ustawieniach administracyjnych claude.ai, zanim funkcja stanie się widoczna dla użytkowników.1 Sama aplikacja desktop jest darmowa do pobrania, lecz wymaga zalogowania claude.ai do użycia.
W najkrótszej formie: lokalny CLI to substrat. Aplikacja desktop to graficzny klient dla tego samego substratu. /remote-control to most, który czyni substrat osiągalnym z telefonu. Wybór zależy od wymagań pracy oraz miejsca, w którym akurat się znajdujemy.
Bibliografia
-
Anthropic, „Continue local sessions from any device with Remote Control”. Kanoniczna referencja dla
claude remote-control,claude --remote-control,/remote-control, powiadomień push, wymagań, macierzy rozwiązywania problemów oraz ograniczeń. Cytowana w całym eseju. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Anthropic, „Use Claude Code Desktop”. Struktura trzech zakładek (Chat, Cowork, Code), konfiguracja startowa sesji, tryby uprawnień, widok diff, panel podglądu, sesje równoległe poprzez Git worktrees, tabela porównawcza „Coming from the CLI?”, Dispatch, computer use. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Wydania GitHub dla Claude Code v2.1.105–v2.1.112: powiadomienia push poprzez Remote Control (v2.1.110+),
/recap+ Session Recap,/ultrareview,/less-permission-prompts, tryb Auto dla Max w Opus 4.7, haki PreCompact mogą blokować. Zob. v2.1.110 release notes dla ogłoszenia narzędzia powiadomień push. ↩↩↩ -
Konwencja przechowywania sesji lokalnych:
~/.claude/projects/<sanitized-project-path>/<session-id>.jsonl. Sesje to pliki JSONL doklejane w trakcie postępu sesji. Widoczne wyłącznie dla procesów lokalnych; niesynchronizowane z kontem Anthropic. ↩ -
Wsparcie klienta Remote Control dla
/extra-usagezostało dodane w v2.1.113. Zob. historia wydań Claude Code. Wcześniejsze wersje działały wyłącznie z lokalnego terminala. ↩