Companion
MadoHub iOS 앱을 Mac과 페어링하여 로컬 네트워크에서 캔버스를 미러링합니다.
Companion은 로컬 Wi-Fi를 통해 MadoHub 캔버스를 iOS 앱으로 미러링합니다. 자리에서 벗어나도 폰으로 에이전트를 지켜볼 수 있고, 키보드로 돌아오지 않고도 간단한 키 입력을 보내거나 플로우를 시작할 수 있습니다.
이는 클라우드 릴레이가 아닌 LAN 미러입니다. 캔버스, 에이전트, 터미널 출력 그 어느 것도 MadoHub 서버를 거치지 않습니다. Mac이 로컬 네트워크에서 작은 서버를 실행하고 폰이 직접 연결하며, 두 기기가 같은 Wi-Fi에 있는 한 동기화 상태를 유지합니다.
할 수 있는 일
- 폰에서 캔버스 보기 — 모든 프레임, 타일, 에이전트 상태, 활동 라인, 그리고 최근 터미널 출력의 끝부분을 읽기 전용으로 볼 수 있습니다.
- 타일을 열어 전체 터미널 내용 읽기 — 폰은 데스크톱과 동일한 타일 상태(유휴, 작업 중, 대기 중, 중지됨, 완료됨, 실패함, 종료됨)를 보여줍니다.
- 타일에 키 입력 보내기 — 자유 텍스트와 함께
escape,ctrl-c,enter를 특수 키로 보낼 수 있으며, 로컬에서 직접 입력한 것과 동일하게 전달됩니다. - 폰에서 터미널이나 프레임 생성 — 데스크톱 뷰포트 중앙에 새 터미널을 띄우거나, 경로로 워크스페이스 프레임을 열 수 있습니다.
- 원격으로 플로우 실행 — 폰에서 작업 프롬프트와 함께 Flow를 인스턴스화하면 데스크톱이 실행을 시작합니다.
- 페어링 토큰 재설정 — 폰을 분실하거나 처음부터 다시 시작하고 싶을 때 설정에서 모든 페어링된 기기를 즉시 무효화할 수 있습니다.
사용 방법
- Mac에서 설정 → 일반을 열고 Companion을 활성화합니다.
- 설정 패널에 Mac의 로컬 IP와 포트(예:
192.168.1.23:9280), 페어링 토큰, 폰으로 복사할 수 있는madohub://companion?…링크가 표시됩니다. - 폰에서 링크를 엽니다(또는 iOS 앱에 주소와 토큰을 직접 입력합니다).
- 폰이 페어링되고 캔버스 미러링을 시작합니다. 설정에 현재 연결된 기기 수가 표시됩니다.
- 폰에서 타일을 탭하여 내용을 읽거나, 타일에 입력을 보내거나, 메뉴로 터미널 생성, 프레임 열기, 플로우 실행을 할 수 있습니다.
모든 페어링을 해제하려면 설정에서 reset token을 클릭하세요. 모든 페어링된 기기가 즉시 무효화됩니다. 서버가 실행 중이면 새 토큰으로 다시 시작됩니다.
일반적인 사용 사례
- "소파에서 오래 걸리는 에이전트 지켜보기" — 폰을 열어 타일 상태와 최근 출력을 확인하고, 엉뚱한 방향으로 가면
ctrl-c를 보냅니다. - "자리로 돌아가지 않고 동료 리뷰 플로우 시작" — 폰에서 작업 프롬프트와 함께 Peer review 플로우를 실행합니다.
- "방 건너편에서 권한 프롬프트 승인" — 타일을 탭하고
y나enter를 보내 에이전트를 차단 해제합니다.
팁과 모범 사례
- 두 기기 모두 같은 Wi-Fi에 연결되어 있어야 합니다. Companion은 인터넷이나 서브넷이 다른 환경에서는 작동하지 않습니다.
- 캔버스 미러는 읽기 전용입니다 — 타일을 보고 입력을 보낼 수는 있지만, 폰에서 타일을 드래그하거나 연결을 다시 이을 수는 없습니다.
- 페어링된 폰을 분실했거나 네트워크를 바꿨다면 토큰을 재설정하세요. 새 토큰은 이전의 모든 페어링을 즉시 무효화합니다.
- 서버는 먼저 9280 포트를 시도하고 사용 중이면 9299까지 올라가며, 머신마다 실제 포트가 다를 수 있습니다 — 추측하지 말고 설정에서 링크를 복사하세요.
보안과 프라이버시
- LAN 전용, 클라우드 릴레이 없음. 캔버스, 에이전트, 터미널 출력은 로컬 네트워크에 머무르며, 그 어느 것도 MadoHub 서버를 거치지 않습니다.
- 페어링은 토큰 + challenge-response를 사용, 모든 요청에 bearer 토큰을 쓰지 않음. 토큰 자체는 네트워크를 통과하지 않습니다. 연결마다 새로운 challenge에 대한 salted 응답만 전달되므로, 가로챈 응답을 이후 연결에 재사용할 수 없습니다.
- 토큰 없이는 아무도 쓰기를 할 수 없습니다. 같은 Wi-Fi의 수동 관찰자는 미러 트래픽을 읽을 수 있지만(TLS는 아직 없습니다), 자신만의 인증된 세션을 열거나 토큰 없이 입력을 주입할 수는 없습니다.
- 서버는 적대적인 LAN에 대해 스스로를 보호 — 최대 64개의 동시 연결만 허용하며, 60초 동안 응답이 없는 인증된 클라이언트는 연결 슬롯을 무한정 점유하지 못하도록 끊어냅니다.
관련 기능
- Flows — 폰에서 원격으로 플로우를 실행합니다.
- Settings — Companion을 활성화하고 토큰을 재설정하는 곳입니다.
- Team Collaboration — 자신의 캔버스가 아닌 팀원을 모니터링합니다.
제한 사항
- Companion은 두 기기 모두 같은 로컬 Wi-Fi에 있어야 합니다. LAN 외부(인터넷) 사용은 아직 지원되지 않습니다.
- 연결에 TLS가 없습니다. 같은 LAN의 수동 관찰자가 미러 트래픽을 읽을 수 있으며, 능동적 중간자 공격은 아직 다루지 않습니다.
- 캔버스 미러는 읽기 전용입니다 — 폰에서 타일을 드래그하거나 연결을 다시 이을 수 없습니다.
- Companion은 현재 Mac 호스트가 필요합니다. Windows 호스트는 아직 지원되지 않습니다.