오래 걸리는 빌드나 테스트를 걸어두고 자리를 비우면, 결과를 확인하려고 다시 노트북 앞에 앉아야 했습니다. Claude Code 2.1대에 들어온 Remote Control을 쓰면 이 부분이 달라집니다. 실제로 설정해서 며칠 써본 기록입니다.
왜 필요한가
Claude Code로 작업을 시키고 나면 종종 자리를 비우게 됩니다. 테스트가 몇 분씩 걸리거나, iOS 시뮬레이터 빌드가 오래 걸리는 경우가 특히 그렇습니다. 이럴 때 진행 상황을 확인하려면 노트북 앞으로 돌아오거나, SSH로 접속하거나, 별도 모니터링 도구를 붙여야 했습니다.
Remote Control은 이 문제를 "원격 실행"이 아니라 "원격 인터페이스"로 풉니다. 코드 실행과 파일시스템 접근은 여전히 로컬 머신에서만 일어나고, 폰이나 다른 컴퓨터의 브라우저는 그 세션을 들여다보고 메시지를 주고받는 창구 역할만 합니다. 즉 로컬에 있는 MCP 서버, 환경변수, 프로젝트 설정을 그대로 쓰면서 다른 기기에서 세션을 조종할 수 있다는 뜻입니다.
설정 과정
먼저 claude.ai 계정으로 로그인이 되어 있어야 합니다. API 콘솔 키만으로는 Remote Control을 쓸 수 없습니다.
claude
# 세션 안에서
/login
프로젝트 루트에서 시작하는 것도 중요합니다. 워크스페이스 신뢰(trust) 다이얼로그는 홈 디렉토리에 대해서는 저장되지 않기 때문에, ~에서 실행하면 매번 다시 물어봅니다.
Remote Control을 켜는 방법은 세 가지입니다.
# 서버 모드: 여러 세션을 동시에 서빙 가능
claude remote-control --name "My Project"
# 인터랙티브 세션에 바로 켜기
claude --remote-control "My Project"
# 짧게는
claude --rc "My Project"
이미 실행 중인 세션이라면 슬래시 커맨드로 켤 수 있습니다.
/remote-control My Project
실행하면 터미널에 세션 URL과 QR 코드가 뜹니다. 서버 모드에서는 스페이스바로 QR 코드 표시를 토글할 수 있습니다. 이 QR을 폰의 Claude 앱(Code 탭)으로 스캔하면 바로 연결됩니다.
처음에 막혔던 부분
첫 시도에서는 claude remote-control을 실행해도 연결이 되지 않았습니다. 에러 메시지 없이 그냥 세션이 로컬에서만 도는 느낌이었는데, 원인은 쉘 프로파일에 넣어뒀던 텔레메트리 관련 환경변수였습니다.
echo $DISABLE_TELEMETRY
# 1
Remote Control은 내부적으로 기능 플래그를 조회하는데, DISABLE_TELEMETRY, DO_NOT_TRACK, DISABLE_GROWTHBOOK, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 중 하나라도 켜져 있으면 이 조회 자체가 막혀서 Remote Control이 동작하지 않습니다. ~/.claude/settings.json의 env 블록에도 같은 변수가 없는지 확인해야 합니다. 쉘 프로파일과 settings.json 양쪽에서 지우고 나서야 연결됐습니다.
실전 활용
빌드/테스트 모니터링
claude remote-control --name "리팩터링"으로 세션을 띄우고 작업을 지시한 뒤 자리를 비웠습니다. 폰의 Claude 앱에서 Code 탭에 들어가면 초록 점이 켜진 세션 아이콘이 보이고, 탭하면 터미널에서 보던 것과 같은 화면이 그대로 뜹니다. 도구 호출 로그, 파일 수정 내역이 실시간으로 동기화됩니다.
긴 작업에 대한 알림
턴이 일정 시간 이상 걸리면 "아직 작업 중" 알림과 함께 "폰에서 확인하기" 링크가 자동으로 뜹니다. 권한 프롬프트가 반복될 때도 비슷하게 세션 URL을 안내해줍니다. 이 안내는 세션당 몇 번만 나타나고 따로 설정할 수는 없습니다.
폰에서 사진으로 컨텍스트 전달
에뮬레이터가 아니라 실기기에서 발생한 UI 깨짐을 스크린샷으로 찍어서 폰에서 바로 첨부해봤습니다. 사진은 메시지에 그대로 포함되고, ~/.claude/uploads/에 저장되어 로컬 세션이 파일 경로로 참조할 수 있게 됩니다. 실기기 이슈를 노트북으로 옮기지 않고 그 자리에서 공유할 수 있어 편했습니다.
설정으로 항상 켜두기
매번 --remote-control을 붙이기 귀찮으면 ~/.claude/settings.json에 다음을 추가하면 됩니다.
{
"remoteControlAtStartup": true
}
단, 프로젝트 설정(.claude/settings.json)에 true를 넣어도 무시됩니다. 저장소에 커밋된 설정으로 팀원 전체의 Remote Control을 켜버릴 수는 없게 막아둔 것으로 보입니다. 반대로 false는 프로젝트 설정에서도 적용되어, 특정 저장소에서만 끄고 싶을 때 쓸 수 있습니다.
장단점
장점
- 로컬 환경(비밀키, MCP 서버, 프로젝트 설정)을 그대로 쓰면서 다른 기기에서 세션을 조종할 수 있음
- 인바운드 포트를 열 필요가 없음 — 모든 트래픽이 아웃바운드 HTTPS
- 터미널, 브라우저, 폰이 실시간으로 동기화되어 어디서 메시지를 보내도 같은 대화로 이어짐
단점
- 로컬 프로세스가 살아있어야 함 — 터미널을 닫거나
claude를 종료하면 세션이 오프라인 상태가 됨. SSH로 붙어 있다면 tmux/screen 안에서 띄워야 연결이 끊겨도 유지됨 - 연결 활성화 중에는 대화 트랜스크립트가 Anthropic 서버에 동기화용으로 저장됨. Zero Data Retention 같은 컴플라이언스 정책을 쓰는 조직은 아예 사용할 수 없음
- 폰/브라우저에서는 권한 모드 중 Bypass permissions나 Auto를 선택할 수 없음 — 터미널에서만 전체 옵션이 열려 있음
마무리
Remote Control은 "로컬 실행 + 원격 인터페이스"라는 구조 덕분에 보안 걱정 없이 폰에서 세션을 들여다볼 수 있다는 점이 가장 유용했습니다. 다만 로컬 머신이 계속 켜져 있어야 하는 구조라, 정말 자리를 오래 비우는 작업이라면 결국 별도의 원격 실행 환경이 필요합니다. 자리를 잠깐 비우는 정도의 작업 — 테스트 결과 확인, 권한 승인, 진행 상황 체크 — 에는 지금 형태로도 충분했습니다.