WristPilot 제작: iPhone과 Apple Watch에서 Claude Code의 질문에 답변하기 — 오픈 소스, 제3자 서비스 미사용
요약
Claude Code 세션 중 발생하는 질문이나 권한 승인 요청을 iPhone과 Apple Watch로 푸시 알림을 통해 처리할 수 있는 오픈 소스 도구 WristPilot을 소개합니다. 제3자 서버 없이 Apple의 APNs와 CloudKit을 활용하여 보안과 개인정보를 보호하며, 원격에서도 대화형 세션을 지속할 수 있게 해줍니다.
핵심 포인트
- Claude Code의 프롬프트를 iOS 및 watchOS 알림으로 전달
- APNs와 CloudKit을 사용하여 제3자 인프라 없이 사용자 Apple ID 내에서 작동
- 받아쓰기 및 버튼 입력을 통해 원격으로 답변 및 권한 승인 가능
- 자리를 비울 때만 작동하는 '어웨이 모드' 지원
- Node.js 기반의 가벼운 구현과 높은 보안성
저는 Claude Code 세션을 길게 진행하곤 하는데, "어떤 방식을 선호하시나요?"라는 질문에 답하거나 명령을 승인하기 위해 매번 Mac으로 다시 걸어가는 것이 지겨워졌습니다. 그래서 손목(또는 휴대폰)에서 답변할 수 있는 방법을 만들었습니다.
WristPilot은 Claude Code의 질문, 권한 프롬프트(permission prompts) 및 결과를 iPhone과 Apple Watch로 푸시 알림(push notifications)을 통해 전달합니다. 옵션을 탭하거나, 자유 형식의 답변을 받아쓰기(dictation)하거나, 권한을 길게 눌러 허용(Allow)/거부(Deny)를 선택하면 Mac에서의 세션이 즉시 계속됩니다.
단순한 "알림 그 이상"인 점은 다음과 같습니다:
- 실제로 답변을 할 수 있습니다. 단순히 보기만 하는 것이 아닙니다. 옵션은 버튼으로 나타나며, 자유 형식의 텍스트는 워치의 받아쓰기 기능이나 휴대폰의 키보드를 통해 작동합니다. 다중 선택(multi-select)도 지원됩니다.
- iPhone과 Watch 모두 동기화됩니다. 가장 가까이 있는 기기에서 답변하세요. 한쪽에서 답변하면 다른 기기의 알림은 자동으로 사라집니다.
- 제3자 인프라가 전혀 없습니다. 모든 것은 사용자의 자체 Apple 스택을 통해 실행됩니다: 직접적인 APNs 푸시(사용자 본인의 키 사용)와 답변 채널로서의 사용자 본인의 CloudKit 컨테이너를 사용합니다. 중간에 저의 서버도 없고, 계정도 없으며, 그 어떤 것도 사용자의 Apple ID를 벗어나지 않습니다.
- 두 가지 모드가 있습니다. 실행 후 잊어버려도 되는 작업을 위한 '러너(runner)' 모드와, 일반적인 대화형 세션을 위한 '어웨이 모드(away-mode)' 훅(hook)이 있습니다. Mac 앞에 있을 때는 모든 것이 평소처럼 작동하지만, 몇 분 동안 자리를 비우면 프롬프트가 손목으로 전달됩니다. 응답하지 않을 경우 일반적인 화면 프롬프트로 자동 전환(fallback)됩니다. 이 훅은 스스로 무엇인가를 승인할 수는 없습니다.
제작하며 배운 몇 가지 사항:
- 미러링된 iOS 알림의 액션 버튼은 watchOS에서 기본적으로 작동하지 않습니다. 이것이 네이티브 앱이 필요한 이유입니다.
- 독립형 watch 앱에 대한 CloudKit 구독(subscriptions)은 수년간 불안정했기 때문에, 대신 APNs 푸시를 직접 보냅니다. 또한 공개 데이터베이스 쿼리 인덱스(public-database query index) 역시 분명히 존재하는 레코드에 대해 결과가 0으로 반환되는 등 불안정한 것으로 나타났습니다. 따라서 앱은 전달된 알림으로부터 목록을 구축하며, 오직 레코드 이름(record name)을 통해서만 답변을 가져옵니다(이는 매우 안정적입니다).
전체 Node 측은 Claude Agent SDK 외에는 의존성이 전혀 없으며, APNs JWT 및 CloudKit 요청 서명(request signing)은 node:crypto를 사용한 약 100줄 정도의 코드입니다.
요구 사항: 유료 Apple Developer 계정 및 약 30분의 일회성 설정(App IDs, CloudKit 스키마, 키 2개 — 전체 문서화됨). AGPL-3.0.
스크린샷과 리포지토리(repo) 링크는 댓글에 있습니다.
무엇이든 기꺼이 답변해 드리겠습니다. 만약 직접 설정해 보신다면, 다른 사람의 환경에서도 가이드가 잘 작동하는지 알고 싶습니다.
(독립적인 프로젝트이며, Anthropic과 관련이 없습니다. "Claude Code"는 그들의 상표입니다.)
제출자: /u/MobileJob8321
[링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/ClaudeAI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기