⌚️ ⇋ 💻

watchmac

애플워치를 맥의 무선 미니 모니터로.
가상 디스플레이에 띄운 시계·뽀모도로·미디어 컨트롤이 손목에서 30fps로.

⬇ watchmac.dmg 다운로드 GitHub

macOS 14+ · 무료 · 오픈소스 · Apple 공증 완료  ·  워치 앱은 Xcode 로 직접 빌드

💻
macOS
1000×1224 가상 디스플레이
— HTTP /frame —→
⌚️
Apple Watch
풀스크린 렌더

이렇게 동작합니다

맥에 비공개 CGVirtualDisplay API로 워치 비율(0.817)의 가상 디스플레이를 만들고, ScreenCaptureKit으로 30fps JPEG 캡처. 워치는 100ms 미만 폴링으로 받아 화면에 그립니다.

📺

워치 화면 비율 완벽 일치

1000×1224 가상 디스플레이 → 워치 410×502 풀스크린. 검은 띠 없음.

⚡️

30fps HTTP 폴링

WebSocket이 watchOS에서 막혀서 우회. LAN에선 30fps, 외부망에서도 동작.

🌐

LAN 또는 Cloudflare 터널

같은 Wi-Fi면 LAN, 외부에선 cloudflared로 공개 URL. 둘 다 됩니다.

🎛️

메뉴바 앱

Dock 아이콘 없음. 상단 메뉴바에서 시작/중지/주소 복사.

🔓

오픈소스

MIT. Swift + watchOS 네이티브. 가상 디스플레이 위치 정렬 포함.

🧪

실험 친화

해상도·fps·포트 CLI 플래그로 즉시 조정. 가상 디스플레이 origin 강제 배치.

설치 — 맥

Apple 공증된 DMG. 받아서 드래그하면 끝. 빌드도, Gatekeeper 우회도 필요 없습니다.

1

DMG 다운로드 & 설치

watchmac.dmg 를 열어서 watchmac 를 Applications 폴더로 드래그.

2

더블클릭으로 실행

Apple 공증(notarized)된 앱이라 경고 없이 바로 열립니다. 메뉴바에 watchmac 아이콘 등장.

3

화면 기록 권한

메뉴바 아이콘 클릭 → 권한 요청 시 시스템 설정 → 개인정보 보호 및 보안 → 화면 기록 에서 watchmac 켜고, 한 번 종료 후 재실행.

설치 — 애플워치

워치 앱은 App Store 미배포라 Xcode 로 직접 빌드합니다 (무료 Apple ID).

1

레포 클론 & 프로젝트 생성

git clone https://github.com/Gojaehyeon/watchmac.git
cd watchmac/watch
xcodegen generate
open WatchMac.xcodeproj
2

서명 & 실행

TARGETS → Signing 에서 본인 Apple ID 선택 → 페어 아이폰 연결 → ⌘R (폰 통해 워치로 배포).

3

주소 입력

워치 앱 가운데 탭 → 맥 메뉴바의 "주소 복사" 한 LAN 주소 입력 → 연결.

# 예시
192.168.0.10:8890

한계 / 알아두실 점

  • 비공개 API: CGVirtualDisplay 는 비공개. macOS 메이저 업데이트로 깨질 수 있음.
  • System Settings UI: macOS 26.5 에서 가상 디스플레이가 디스플레이 설정 카드에 안 보일 수 있음 (system_profiler 와 WindowServer엔 정상 등록).
  • WebSocket 우회: URLSessionWebSocketTask가 personal-team 서명에서 막혀서 HTTP 폴링으로 동작.
  • 무료 Apple ID: 워치 앱 서명 7일마다 재서명 필요.
  • 요구 사항: macOS 14+, Apple Silicon 권장, Xcode 16+.