Phone Harness 사용법: AI에게 휴대폰 조작 맡기기
AI 에이전트가 아이폰과 안드로이드 화면을 보고 직접 누르게 해 주는 오픈소스 Phone Harness를 정리했습니다. 내 폰과 클라우드 폰의 연결 방법, Claude 커스텀 커넥터 조건, 요금, 안드로이드 에뮬레이터에서 세 가지 작업을 맡긴 결과를 담았습니다.

세 줄로 먼저 읽기
- Phone Harness는 AI 에이전트가 휴대폰 화면을 읽고 누르고 입력하게 해 주는 MIT 라이선스 오픈소스로, 내 아이폰은 맥의 아이폰 미러링으로, 안드로이드는 adb로 연결합니다.
- Claude나 ChatGPT에 커스텀 커넥터로 붙이는 MCP 주소는 지금 클라우드 폰 전용이라, 내 폰을 맡기려면 Claude Code나 Codex에서 명령줄 도구를 씁니다.
- 안드로이드 에뮬레이터에서 다크 모드 켜기, 알람 만들기, 날씨 검색을 맡기자 세 작업 모두 1분 30초 안팎에 끝났고, 한글 입력은 adb로 되지 않아 에이전트가 화면 키보드를 눌러 해결했습니다.
배달 주문, 쇼핑 앱의 쿠폰 받기, 메신저 확인처럼 휴대폰 앱으로 하는 일이 많습니다. PC 화면을 맡기는 컴퓨터 유즈 도구는 이런 일에 쓸 수 없습니다. 웹사이트가 없거나, 있어도 앱보다 기능이 적은 서비스가 많기 때문입니다.
Phone Harness는 AI 에이전트가 휴대폰 화면을 읽고, 누르고, 글자를 넣게 해 주는 오픈소스 도구입니다. 사람이 손가락으로 하는 조작을 그대로 흉내 내므로 앱마다 따로 연동할 필요가 없습니다. 2026년 11월 11일 안드로이드 에뮬레이터에 연결해 Claude Code로 세 가지 작업을 맡겨 봤습니다.
Phone Harness가 폰을 다루는 방법
Phone Harness는 MIT 라이선스로 공개된 파이썬 도구입니다. 2026년 8월 깃허브에 공개돼 11월 11일까지 별 4,800개 넘게 받았고, 같은 이름으로 클라우드 폰 서비스도 운영합니다. 공식 사이트에 따르면 Y Combinator의 투자를 받았습니다. 도구 안에 AI 모델은 없습니다. Claude Code나 Codex 같은 에이전트가 이 도구의 함수를 불러 폰을 조작합니다.
폰마다 화면을 읽는 방법이 다릅니다.
- 안드로이드: 개발자용 연결 도구인 adb로 화면을 찍고 입력을 보냅니다. 화면 글자는 접근성 트리에서 읽습니다. 접근성 트리는 앱이 버튼과 글자의 이름, 위치를 운영체제에 알려 주는 구조 정보입니다.
- 아이폰: 맥의 아이폰 미러링 창을 캡처하고, 애플의 문자 인식(Vision OCR)으로 글자를 읽은 뒤, 미러링 창에 클릭과 키 입력을 보냅니다.
에이전트가 쓰는 함수는 두 폰이 같습니다. screen()으로 화면 글자와 좌표를 받고, tap_text("알람 추가")처럼 글자를 지정해 누르고, type_text()로 입력합니다. 한 폰에서 만든 작업 스크립트를 다른 폰에서도 그대로 쓸 수 있습니다.
내 폰과 클라우드 폰의 연결 방법
연결 방법은 두 가지이고, 어느 폰을 쓰느냐에 따라 달라집니다. 내 폰은 Claude 웹이나 ChatGPT에 바로 연결되지 않습니다. 이 점을 먼저 알아 두면 설정에서 헤맬 일이 줄어듭니다.
Phone Harness 연결 방법 두 가지
| 항목 | ||
|---|---|---|
| 쓰는 곳 | Claude Code, Codex 같은 코딩 에이전트 | Claude, ChatGPT, Cursor 등 MCP를 지원하는 앱 |
| 조작할 수 있는 폰 | 내 아이폰, 내 안드로이드, 클라우드 폰 | 클라우드 안드로이드, 클라우드 아이폰 |
| 필요한 것 | uv와 파이썬 3.12, 아이폰은 맥, 안드로이드는 adb | 주소 하나와 Phone Harness 계정 로그인 |
내 아이폰을 쓰려면 macOS 15 이상의 맥과 iOS 18 이상의 아이폰이 아이폰 미러링으로 연결돼 있어야 합니다. 명령을 실행하는 터미널 앱에 손쉬운 사용과 화면 기록 권한도 줘야 합니다. 아이폰 잠금을 풀면 미러링이 멈추므로, 작업하는 동안 아이폰은 잠가 둡니다.
내 안드로이드는 맥, 윈도우, 리눅스 어디서든 됩니다. 폰의 설정에서 빌드 번호를 일곱 번 눌러 개발자 옵션을 켜고, USB 디버깅을 켠 뒤 케이블로 연결합니다. 같은 와이파이에 있으면 무선 디버깅으로도 연결할 수 있습니다.
설치는 에이전트에게 맡기는 방식이 공식 안내입니다. Claude Code나 Codex에 아래 문장을 그대로 보내면 에이전트가 도구를 설치하고, 사람이 해야 할 단계(권한 허용, 폰에서 허용 누르기)만 안내합니다.
Install or upgrade phone-harness to the latest stable version with uv using Python 3.12, register the skill from `phone-harness skill`, then read https://github.com/phone-harness/phone-harness/blob/main/onboarding.md and walk me through it. Follow https://github.com/phone-harness/phone-harness/blob/main/install.md if setup or connection fails.설치가 끝나면 phone-harness doctor가 연결 상태를 단계별로 검사합니다. 사용 기록을 개발사로 보내는 기능은 phone-harness config set telemetry false로 끕니다.
Claude와 ChatGPT에 커스텀 커넥터로 붙이기
커스텀 커넥터는 Claude 웹이나 앱에 외부 도구를 주소로 연결하는 기능입니다. MCP(Model Context Protocol)는 AI 앱이 외부 도구를 같은 방식으로 부르도록 정한 연결 규격이고, MCP 입문 글에서 자세히 다뤘습니다.
Claude에서는 사용자 지정 → 커넥터에서 커스텀 커넥터를 추가하고, 이름과 주소 https://mcp.phone-harness.com/mcp를 넣은 뒤 로그인 방식을 고릅니다. Claude 도움말에 따르면 커스텀 커넥터는 무료 플랜에서도 하나까지 추가할 수 있고, Team과 Enterprise에서는 소유자가 조직 설정에서 먼저 추가해야 구성원이 연결할 수 있습니다. Claude Code에서는 한 줄이면 됩니다.
claude mcp add --transport http phone-harness https://mcp.phone-harness.com/mcpChatGPT는 웹의 플러그인 메뉴에서 커스텀 MCP 서버로 추가합니다. Phone Harness 안내에 따르면 폰 조작까지 하려면 Business, Enterprise, Edu 워크스페이스가 필요하고, 개인 Pro 계정은 읽기 도구만 연결됩니다.
앞의 표처럼 이 주소로는 클라우드 폰만 조작합니다. 연결하면 에이전트가 phone_start_device로 클라우드 폰을 켜고, 화면 캡처, 누르기, 밀기, 입력 같은 도구 14개를 씁니다.
클라우드 폰 요금
클라우드 폰은 Phone Harness가 서버에서 빌려주는 폰입니다. 내 폰이 없어도 되고, 저장한 안드로이드는 앱과 로그인 상태가 다음 실행까지 유지됩니다.
| 요금제 | 내용 | 가격 |
|---|---|---|
| Basic | 클라우드 안드로이드 에뮬레이터, 쓴 만큼 결제 | 월 0달러, 1분 5센트 |
| Plus | 안드로이드 1,000분 포함, 초과분 1분 4센트 | 월 20달러 |
| Cloud iPhone | 실제 아이폰 한 대, 분 단위 과금 없음 | 월 80달러(eSIM 포함 100달러) |
2026년 11월 11일 Phone Harness 요금 페이지 기준입니다. 아이폰은 연 결제 시 월 64달러(eSIM 포함 80달러)입니다.
새 계정에는 5달러 크레딧이 들어 있어 안드로이드를 100분 쓸 수 있습니다. 안드로이드는 켜 둔 시간만큼 과금되므로, 작업이 끝나면 phone-harness cloud stop이나 phone_stop_device로 반드시 끕니다.
에뮬레이터에서 세 가지 작업을 맡긴 결과
내 폰을 바로 맡기기 전에 어떻게 움직이는지 보려고, 맥에 안드로이드 15 에뮬레이터를 띄우고 phone-harness 0.3.3을 연결했습니다. 에이전트는 Claude Code이고 모델은 Claude Sonnet 5.5입니다. Phone Harness가 제공하는 사용 안내(phone-harness skill의 출력)를 시스템 지시에 넣고, 작업 지시는 한 문장씩만 보냈습니다.
에뮬레이터에서 맡긴 세 가지 작업
| 작업 | |||
|---|---|---|---|
| 다크 모드 켜기 | 제공 | 9 | 53초 |
| 7시 30분 '출근' 알람 만들기 | 제공 | 14 | 84초 |
| 크롬에서 서울 날씨 검색 | 제공 | 11 | 96초 |
다크 모드 작업에서 에이전트는 설정 앱을 열고, 화면을 내려 '디스플레이 및 터치' 메뉴를 찾은 뒤 어두운 테마 스위치를 켰습니다. 마지막에 스위치가 켜진 화면을 다시 읽어 확인하고 끝냈습니다.
에이전트가 작업을 마친 뒤 저장한 화면입니다.
알람 작업에서 처음으로 막혔습니다. 시간은 시계 화면의 숫자를 눌러 맞췄지만, 이름 칸에 type_text("출근")을 보내자 글자가 들어가지 않았습니다. 안드로이드의 adb 입력 명령은 한글을 보내지 못합니다. 에이전트는 화면에 뜬 한글 키보드의 좌표를 읽고 ㅊ, ㅜ, ㄹ, ㄱ, ㅡ, ㄴ 키를 차례로 눌러 '출근'을 입력했습니다.
위의 '출근' 알람이 에이전트가 만든 것이고, 아래 두 개는 시계 앱의 기본 알람입니다.
날씨 검색에서는 크롬을 처음 열 때 나오는 로그인 안내와 광고 개인정보 안내를 각각 '계정 없이 사용'과 '확인'으로 넘겼습니다. 검색어는 주소창에 입력하는 대신 서울 날씨 검색 주소를 크롬으로 바로 여는 방법을 택했습니다. 역시 한글 입력 때문입니다.
에이전트는 날씨 카드에서 현재 기온 10도와 체감 온도 11도를 읽어 답했습니다.
세 작업 모두 결과는 정확했지만 사람이 직접 하는 것보다 느립니다. 한 번 누를 때마다 화면을 다시 읽고 다음 동작을 정하기 때문입니다. 한글이 들어가는 작업은 키를 하나씩 누르므로 단계가 더 늘어납니다.
맡기기 전에 알아 둘 한계
공식 문서가 밝힌 한계는 이렇습니다.
- 아이폰은 문자 인식으로 화면을 읽으므로 글자가 없는 아이콘은 구분하지 못합니다. 이때는 스크린샷을 보고 판단할 수 있는 모델이 필요합니다.
- 두 손가락 확대 같은 멀티터치, 카메라, Face ID는 지원하지 않습니다. 저작권 보호가 걸린 동영상은 검은 화면으로 찍힙니다.
- 에이전트는 잠금 PIN을 입력하지 않습니다. 잠긴 안드로이드는 사람이 풀어야 합니다.
- 폰을 연결하는 일은 항상 사람이 합니다. 권한 허용과 페어링은 폰을 손에 든 사람만 할 수 있습니다.
이 한계보다 더 신경 쓸 부분은 권한의 범위라고 생각합니다. 연결된 폰에서는 에이전트가 사람처럼 아무 앱이나 열 수 있습니다. 결제, 송금, 메시지 발송처럼 되돌리기 어려운 일은 처음부터 지시에서 빼고, 작업이 끝나면 에이전트의 보고만 믿지 말고 화면을 직접 확인하는 편이 안전합니다.
처음 써 본다면 클라우드 안드로이드의 무료 크레딧이나 에뮬레이터에서 설정 변경, 알람처럼 결과를 바로 확인할 수 있는 작업부터 맡겨 보길 권합니다. 내 폰은 그다음에, 개인 정보가 적은 앱부터 연결하면 어느 정도 안심하고 범위를 넓혀 갈 수 있습니다.

제대로 이해했는지 한 문제로 확인해 볼까요?
답을 고르면 바로 풀이가 나와요.
Claude 웹의 커스텀 커넥터에 Phone Harness MCP 주소를 추가했습니다. 이 연결로 조작할 수 있는 폰은 무엇일까요?

새 글과 AI 소식을 메일로 받아 보세요
AI가 바꾸는 일과 도구, 측정 실무 이야기를 매주 한 번 보내 드려요.
이 글이 도움이 되었나요?
메일, 회의록, 리포트처럼 반복되는 일을 AI로 자동화하는 순서와 안전장치를 다룹니다
코스 전체 보기 →