메인 콘텐츠로 건너뛰기

Remote Sessions

Remote Sessions를 활성화하면 GitHub의 Mission Control을 통해 웹이나 모바일에서 같은 세션에 접근할 수 있습니다. 활성화하면 세션이 Mission Control에 접속되고, 링크나 QR 코드로 공유할 수 있는 URL이 발급됩니다. 로컬이나 자체 서버가 아닌 GitHub 호스트 환경에서 세션 자체를 실행하려면 Cloud Sessions를 사용합니다.

사전 조건

  • 사용자가 인증되어 있을 것(GitHub 토큰 또는 로그인된 사용자)
  • workingDirectory가 GitHub 저장소일 것

제거된 설정 옵션

공식 SDK 1.0.26에서 클라이언트의 remote 옵션, 세션의 remoteSession 옵션, CLI 시작 플래그 --remote가 제거되었습니다. 세션을 공유하려면 $session->rpc()->remote()->enable()로 온디맨드 활성화합니다. 기존 원격 세션 RPC는 계속 동작합니다.

세션별로 활성화(온디맨드)

세션을 공유하려면 RPC로 원격 접근을 전환합니다. CLI의 /remote on 및 /remote off 명령과 동등한 조작입니다.

기존 원격 세션에 연결(서버 범위)

CLI 서버를 기존 원격 세션에 연결하려면 $client->rpc()->sessions()->connect()를 호출합니다. ConnectRemoteSessionParams에 원격 sessionId를 전달합니다. 결과에는 SDK 측 sessionId와 원격 세션의 메타데이터가 포함됩니다.

런타임 전체 Remote Control(TCP 모드)

RemoteControlConfig의 remote 속성은 런타임 전체 Remote Control을 설정합니다. 제거된 클라이언트의 remote 시작 옵션과는 관계가 없습니다. TCP 모드에서는 $client->rpc()->sessions()를 사용해 런타임 전체에서 하나의 Remote Control을 관리할 수 있습니다. 세션 단위의 remote()->enable()과 달리 대상 세션의 시작, 중지, 이전과 현재 상태 조회가 가능합니다.
상태는 off, connecting, active, error 중 하나입니다. active 상태에서는 frontendUrl과 isSteerable도 확인할 수 있습니다.
세션의 원격 조작 가능 여부가 바뀌었음을 런타임에 알리려면 세션 범위 RPC를 사용합니다.

QR 코드 생성

취득한 원격 URL은 QR 코드로 만들어 모바일에 전달할 수 있습니다. Laravel Fortify에서도 사용되는 BaconQrCode를 사용할 수 있습니다.

주의점

  • workingDirectory가 GitHub 저장소가 아닌 경우 remote()->enable()에서 에러가 발생할 수 있습니다.
  • 인증 정보(github_token 또는 use_logged_in_user)를 적절히 설정하세요.

참고

최신 정보는 GitHub 저장소를 참고하세요.
마지막 수정일 2026년 10월 26일