핸드오프
프로젝트를 내 다른 머신으로 보내 노트북을 닫아도 에이전트가 계속 작업하게 하고, 휴대폰으로 진행 상황을 확인하고, Take back으로 작업을 다시 가져오세요.
핸드오프는 프로젝트를 내 머신 중 하나로 옮기고, 노트북을 닫아 둔 동안에도 그곳에서 에이전트가 계속 작업하게 합니다. 돌아온 뒤에는 Take back으로 에이전트가 작업한 상태 그대로 프로젝트를 다시 가져올 수 있습니다.
핸드오프는 휴대폰이 이 데스크톱을 들여다보는 창 역할을 하는 Remote Control과 다릅니다. 핸드오프는 다른 머신에서 실행되므로 데스크톱이 꺼져 있어도 상관없습니다.
첫 핸드오프 전에
Settings → Machines를 열어 머신을 선택하고 Handoff를 선택하세요. 시트가 머신을 점검해 아직 부족한 항목을 나열하고, 각 항목 옆에 해결 방법을 보여 줍니다.
| 필요한 것 | 이유 |
|---|---|
git | 히스토리와 커밋하지 않은 작업을 함께 옮깁니다. |
rsync | 프로젝트를 머신으로, 또 머신에서 다시 복사하며 변경된 부분만 전송합니다. |
node 18 or newer | 에이전트 커맨드라인 도구를 실행합니다. |
| systemd user services | SSH 세션이 끝나도 실행이 유지됩니다. |
| Stay running after logout | 이 설정이 없으면 마지막 세션이 끝날 때 모든 것이 멈추고 아무도 다시 시작해 주지 않습니다. |
tmux (선택) | 일반 셸 탭을 계속 유지합니다. 에이전트는 사용하지 않습니다. |
Install all missing을 누르면 한 번에 설치되며, 하나씩 설치할 수도 있습니다. 모든 명령은 실행 전에 전체가 표시되고, 직접 터미널에 붙여 넣고 싶다면 Copy 버튼을 사용할 수 있습니다.

시트는 머신의 여유 자원, 즉 여유 메모리, 여유 디스크, 코어, 부하도 측정합니다. 여유가 많지 않으면 그 사실을 분명히 알려 주므로, 나중에 빌드가 왜 느린지 의아해할 일이 없습니다.
에이전트 로그인은 의도적으로 수동입니다
Claude나 Codex에는 머신에서 실제 터미널로 직접 로그인합니다. 1DevTool은 이 컴퓨터의 자격 증명을 복사하지 않으며, 시트에도 머신에서 로그인하며, 여기에서 복사되지 않음이라고 명시되어 있습니다. 에이전트 설정은 로컬 전용 경로와 MCP 명령을 해당 머신에 맞게 고쳐서 함께 전달됩니다.
프로젝트 핸드오프하기
프로젝트의 사이드바 메뉴에서 **Hand off to a machine…**을 선택하세요. Settings → Machines의 머신 행과 핸드오프 작업 보기에서도 찾을 수 있습니다.
시트에서는 네 가지를 입력합니다.
- 실행할 머신과 에이전트.
- 대화 — 기존 대화를 이어 가거나 새 대화를 시작합니다. 에이전트는 화면 없이 실행되며, 로그를 통해 진행 상황을 확인합니다.
- 다음에 할 일을 자유롭게 적습니다. 예: "마이그레이션을 마무리하고, 테스트를 실행하고, 실패하는 부분을 고쳐 줘."
- 이 프로젝트가 여기서 실행 중인 것이 없음을 확인합니다. 편집 도중에 복사되지 않도록 하기 위함이며, 프로젝트가 다른 머신에 가 있는 동안 로컬 편집은 일시 중지됩니다.
프롬프트를 승인해 줄 사람이 없다면 Run without asking을 선택하세요. 선택하지 않으면 에이전트는 첫 프롬프트에서 멈춥니다. 이 설정은 해당 머신에만 적용되며 이 컴퓨터에는 영향을 주지 않습니다.
핸드오프를 가로막는 항목은 칩으로 표시되며, 클릭하면 해당 입력란으로 바로 이동합니다.
복사되는 항목
프로젝트 전체, Git 히스토리, 대화가 rsync를 통해 전달됩니다.
- 추적되는 파일 및 추적되지 않는 파일
- 스테이징된 변경 및 스테이징되지 않은 변경
- 삭제, 실행 권한 비트, 심볼릭 링크
.git자체
따라서 "먼저 GitHub에 push"할 필요가 없습니다. 머신은 작업 중이던 편집 내용까지 포함해 디스크에 있는 상태 그대로 시작합니다.
Left out에는 제외되는 패턴이 칩으로 표시되며 체크를 해제할 수 있고, Also leave out에서는 패턴을 추가로 지정할 수 있습니다. build, dist, target이라는 이름의 폴더는 실제 소스를 담고 있는 경우가 많아서 일부러 포함합니다.
.env도 함께 전달됩니다. stdin으로 쓰이고, chmod 600이 적용되며, 원자적으로 교체됩니다. 파일과 변수 이름은 화면에 표시되지만 값은 로그에 남지 않습니다.
도착하면 에이전트는 systemd --user 유닛으로 실행됩니다. 덕분에 노트북을 닫아도 됩니다.
후속 지시는 머신에서 대기합니다
실행 중인 도중을 포함해 언제든 다음 지시를 입력할 수 있습니다. 머신이 이를 보관했다가 현재 실행이 끝나는 즉시 시작하며, 노트북이 닫혀 있거나 앱이 종료되어 있어도 마찬가지입니다. 대기열은 앱이 아니라 머신에 있습니다.
작업 보기에는 머신의 로그가 실시간으로 표시됩니다. 어시스턴트 텍스트, 도구 호출, 결과, 종료 상태가 나오며 모든 실행에는 번호가 매겨집니다.
Open on phone
Open on phone은 핸드오프 성공 화면, 작업 보기, 머신 행에 있습니다. 휴대폰 카메라로 QR 코드를 스캔하면 Safari 또는 Chrome에서 페이지가 열립니다. 설치할 앱은 없으며, 페이지는 머신이 Cloudflare quick tunnel을 통해 제공하므로 노트북을 닫아도 계속 동작합니다.
휴대폰에서는 다음을 할 수 있습니다.
- 실시간 로그 확인 — 데스크톱 작업 보기와 같은 항목이 표시됩니다.
- 다음 지시 보내기 — 실행 중이면 대기열에 들어가고, 아니면 바로 시작됩니다.
- 현재 실행 중지.
- 셸 열기. 6자리 Admin PIN으로 휴대폰 브라우저에서 머신의
tmux셸을 엽니다. 탭을 닫아도 유지되며 화면 크기에 맞게 조정됩니다. - 실행이 끝나면 푸시 알림 받기 — 실행이 끝날 때마다, 그리고 대기열이 다음으로 넘어갈 때 알림이 옵니다. 현재 Android Chrome에서 동작하며, iPhone에서는 먼저 페이지를 홈 화면에 추가하세요.
스캔 화면에는 열려 있는 모든 휴대폰 세션이 Sign out all과 함께 나열되며, Turn off를 누르면 링크 자체가 완전히 차단됩니다. New code는 기존 휴대폰을 로그아웃시키지 않고 새 QR 코드와 PIN을 발급합니다. 머신의 마지막 핸드오프를 Take back하면 휴대폰 접근도 자동으로 꺼집니다.
머신의 cloudflared는 실행 전에 GitHub 릴리스 다이제스트와 대조해 검증합니다.
Take back
Take back은 아무것도 잃지 않는 순서로 작업을 돌려받습니다.
- 머신의 대기열을 보류하여 중간에 새 실행이 시작되지 않게 합니다.
- 현재 실행을 중지합니다.
- 에이전트의 변경 사항과 함께 프로젝트를 rsync로 가져옵니다.
- 머신에서 생성된 유닛을 정리합니다.
보낼 때 제외했던 패턴은 가져올 때도 그대로 재사용되므로, Take back이 애초에 보내지 않은 것을 삭제하는 일은 없습니다.
Related
- Machines — 핸드오프에서 선택하는 머신 목록이자 에이전트가 실행되는 곳
- 휴대폰으로 1DevTool 제어하기 — 이 데스크톱을 대상으로 하는 또 다른 휴대폰 환경
- SSH Keys