
Earshot는 macOS에서 Claude Code의 답변을 음성으로 듣고, AirPods를 리모컨처럼 써서 Claude Desktop에 음성을 입력하고 전송하는 플러그인이다.
Claude Code에서 /plugin marketplace add epavanello/earshot /plugin install earshot@earshot를 실행해 설치한 뒤 Claude Code를 다시 시작한다. 음성 모드를 켜려면 “voice mode”라고 말하거나 /earshot:voice를 실행한다. “normal mode”라고 말하면 끌 수 있다. 음성 답변은 voice 스킬이 답변 끝에 짧은 문장으로 만들고, Stop 훅이 macOS의 say 기능으로 읽는다. 음성 모드가 꺼져 있으면 훅은 작동하지 않는다.
목소리와 말하기 속도는 환경 변수 EARSHOT_VOICE와 EARSHOT_VOICE_RATE로 설정할 수 있다. 기본 속도는 분당 185단어다. 제작자는 EARSHOT_VOICE를 설정하지 않고 시스템 설정의 손쉬운 사용 → 콘텐츠 말하기에서 Siri 목소리를 선택하면 say가 이를 기본으로 사용한다고 안내한다.
AirPods 리모컨 기능은 선택 사항이며 Claude Desktop, 머리 움직임 추적 기능이 있는 AirPods(Pro, Max, 3세대 이상), Xcode 명령줄 도구, Hammerspoon이 필요하다. Hammerspoon에는 손쉬운 사용 권한을 허용하고 ~/.hammerspoon/init.lua에 require("hs.ipc")를 설정해야 한다. 설치 스크립트는 작은 백그라운드 앱을 빌드해 로그인 시 실행하며, 처음 실행할 때 동작 권한을 허용해야 한다.
Claude Desktop이 앞에 있을 때 AirPods 스템을 클릭하면 기존 음성을 멈추고 받아쓰기를 시작한다. 턱을 약 15도 내렸다가 되돌리면 받아쓰기를 끝내고 전송한다. 다른 앱이 앞에 있으면 클릭은 재생·일시 정지로 돌아간다. 받아쓰는 동안에는 음성 훅이 이전 답변을 건너뛴다. 제거에는 airpods/uninstall.sh를 사용하며 로그는 /tmp/earshot-remote.log에 기록된다.
Earshot 안내에 따르면 macOS는 마이크가 켜진 동안 AirPods 클릭을 통화 음소거에 할당해 앱으로 전달하지 않으므로, 머리 움직임을 CMHeadphoneMotionManager로 읽어 전송 신호로 쓴다. Hammerspoon은 손쉬운 사용 권한을 유지하므로 키 입력을 맡는다. 로컬에서 빌드한 바이너리는 다시 빌드할 때마다 해당 권한을 잃는다고 안내한다. 라이선스는 MIT다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요