Find My (Apple)
macOS의 FindMy.app을 통해 Apple 기기와 AirTag 위치를 추적합니다. Apple은 Find My를 위한 CLI를 제공하지 않으므로, 이 스킬은 AppleScript를 사용하여 앱을 열고 화면 캡처로 기기 위치를 읽어옵니다.
사전 요구 사항
- macOS에 Find My 앱이 설치되어 있고 iCloud에 로그인되어 있어야 함
- 기기/AirTag가 이미 Find My에 등록되어 있어야 함
- 터미널에 화면 녹화 권한이 부여되어야 함 (시스템 설정 → 개인정보 보호 → 화면 기록)
- 권장 사항: UI 자동화를 위해
peekaboo설치:brew install steipete/tap/peekaboo
사용 시기
- 사용자가 "내 [기기/고양이/열쇠/가방] 어디 있어?"라고 물을 때
- AirTag 위치 추적
- 기기 위치 확인 (iPhone, iPad, Mac, AirPods)
- 시간에 따른 애완동물이나 물건의 이동 경로 모니터링 (AirTag 순찰 경로)
방법 1: AppleScript + 스크린샷 (기본)
FindMy 열고 이동
# Find My 앱 열기
osascript -e 'tell application "FindMy" to activate'
# 로딩 대기
sleep 3
# Find My 창 스크린샷 촬영
screencapture -w -o /tmp/findmy.png
그런 다음 vision_analyze를 사용하여 스크린샷 읽기:
vision_analyze(image_url="/tmp/findmy.png", question="표시된 기기/항목과 각각의 위치는 무엇인가요?")
탭 간 전환
# 기기 탭으로 전환
osascript -e '
tell application "System Events"
tell process "FindMy"
click button "Devices" of toolbar 1 of window 1
end tell
end tell'
# 항목 탭(AirTag)으로 전환
osascript -e '
tell application "System Events"
tell process "FindMy"
click button "Items" of toolbar 1 of window 1
end tell
end tell'
방법 2: Peekaboo UI 자동화 (권장)
peekaboo가 설치되어 있다면 더 안정적인 UI 상호작용에 사용합니다:
# Find My 열기
osascript -e 'tell application "FindMy" to activate'
sleep 3
# UI 캡처 및 주석 추가
peekaboo see --app "FindMy" --annotate --path /tmp/findmy-ui.png
# 특정 기기/항목을 요소 ID로 클릭
peekaboo click --on B3 --app "FindMy"
# 상세 보기 캡처
peekaboo image --app "FindMy" --path /tmp/findmy-detail.png
그런 다음 vision으로 분석:
vision_analyze(image_url="/tmp/findmy-detail.png", question="이 기기/항목에 표시된 위치는 무엇인가요? 주소와 좌표가 보이면 포함해 주세요.")
워크플로: 시간에 따른 AirTag 위치 추적
AirTag 위치를 모니터링하는 경우(예: 고양이 순찰 경로 추적):
# 1. FindMy를 항목 탭으로 열기
osascript -e 'tell application "FindMy" to activate'
sleep 3
# 2. AirTag 항목 클릭 (페이지가 열려 있어야만 위치 업데이트)
# 3. 주기적으로 위치 캡처
while true; do
screencapture -w -o /tmp/findmy-$(date +%H%M%S).png
sleep 300 # 5분마다
done
각 스크린샷을 vision으로 분석하여 좌표를 추출한 후 경로를 구성합니다.
제한 사항
- FindMy는 CLI나 API가 없음 — UI 자동화를 사용해야 함
- AirTag는 FindMy 페이지가 활성화된 상태에서만 위치가 업데이트됨
- 위치 정확도는 Find My 네트워크 내 주변 Apple 기기에 따라 달라짐
- 스크린샷을 위해 화면 녹화 권한 필요
- AppleScript UI 자동화는 macOS 버전에 따라 동작이 달라질 수 있음
규칙
- AirTag를 추적할 때는 FindMy 앱을 포그라운드에 유지하세요 (최소화하면 업데이트가 중단됨)
- 스크린샷 내용을 읽기 위해
vision_analyze를 사용하고 픽셀을 직접 분석하지 마세요 - 지속적인 추적을 위해 cronjob을 사용하여 주기적으로 캡처하고 위치를 기록하세요
- 개인 정보를 존중하세요 — 사용자가 소유한 기기/항목만 추적하세요