Personal Agent Bench

다른 언어English日本語简体中文

iPhone Use 소스 분석: Codex는 내 iPhone에서 무엇을 할 수 있나

이 페이지는 2026-10-13 기준 영어판을 기계 번역한 것이며, 모든 수치는 원문과 대조했습니다. 내용이 다를 경우 영어판이 우선합니다.

iPhone Use는 Codex와 중국의 데스크톱 어시스턴트 2종이 Mac에 연결된 실제 iPhone을 조작하도록 해주는 오픈 소스 플러그인이다. 앱을 열고, 화면을 읽고, 탭하고, 스크롤하고, 텍스트를 입력할 수 있다. 2026년 10월 6일 GitHub에 공개됐으며, 1주 뒤 스타 수가 3,504개에 달했다. 우리가 추적하는 오픈 소스 휴대폰 제어 에이전트 가운데 가장 빠르게 관심을 모은 프로젝트 중 하나다. 우리는 이를 직접 실행하지 않았다. 에이전트에게 맡길 만한 여분의 휴대폰이 없고, 중요한 계정으로 테스트할 생각도 없다. 이 페이지는 특정 커밋의 소스를 읽고 분석한 결과다. 무엇을 할 수 있는지, 어떤 상황에서 사용자를 위해 동작을 멈추는지, 어떤 데이터가 Mac 밖으로 나가는지를 살펴본다.

  • iPhone Use는 에이전트에 도구 17개를 제공한다. 7개는 화면을 읽기만 한다. 나머지는 화면의 어느 곳이든 탭하기, 텍스트 입력, 설치된 모든 앱 실행, 1회 호출로 최대 20단계 실행 등 실제 조작을 수행한다.
  • 코드는 비밀번호 필드에 입력하는 것을 거부하며, 제출 결과를 확인하지 못하면 일괄 작업을 멈춘다. 전송과 결제 처리 방식을 포함한 나머지 보호 장치는 모두 모델이 따르도록 요청하는 지침이다.
  • 스크린샷과 화면의 요소 트리는 호스트 어시스턴트가 사용하는 모델로 전달된다. Codex용으로 설치하면 기본적으로 익명 사용 이벤트도 PostHog로 전송된다. 나머지 2개 설치 프로그램은 이 기능을 끈다.
  • 저장소에는 WeChat이나 Alipay 같은 앱이 이런 자동화를 탐지하는지, 적발된 계정에 어떤 일이 생기는지에 관한 설명이 없다.

iPhone Use는 무엇이며 누가 만드나

프로젝트는 zhongerxin/iPhone-use에 있으며 MIT 라이선스로 제공된다. README는 Codex, WorkBuddy 또는 Doubao의 데스크톱 업무 어시스턴트가 USB로 실제 iPhone을 조작하고, 어시스턴트 사이드바에서 휴대폰 화면을 실시간으로 볼 수 있게 해주는 도구라고 설명한다. README.

개발 속도는 빠르다. 변경 이력은 10월 7일의 0.2.x부터 우리가 읽은 버전인 10월 13일의 0.3.12까지 이어진다. 익명 사용 분석 기능은 10월 9일 0.3.7에 추가됐고, WorkBuddy와 Doubao 어댑터는 10월 13일에 병합됐다. 이 프로젝트를 다룬 글은 특정 시점의 기록일 수밖에 없다. 우리가 읽은 커밋은 5cc2fa8이다.

저장소를 찾아보기 전에 알아둘 작은 모순이 있다. README에는 여전히 저장소가 비공개이며 GitHub 접근 권한이 필요하다고 적혀 있다. README 50행. 실제로는 공개 저장소다. 이름이 거의 같은 leeguooooo/iphone-use는 다른 개발자가 만든 별개의 도구이며, 이 페이지에서 다루는 프로젝트가 아니다.

iPhone Use가 Codex를 실제 iPhone에 연결하는 방식

구성 요소는 3개이며, 모두 사용자의 Mac과 휴대폰에서 실행된다.

구성 요소설명실행 위치
MCP 서버표준 라이브러리만 사용하는 Python 파일 1개. 호스트 어시스턴트와 stdio로 통신한다Mac
USB 포워더127.0.0.1:18100에서 연결을 받아 휴대폰의 8100 포트로 전달하는 작은 Node 스크립트Mac
WebDriverAgentAppium의 오픈 소스 UI 자동화 서비스. 버전은 16.14.0으로 고정돼 있으며 사용자 본인의 Apple 서명으로 빌드한다iPhone

출처: MCP 서버, 포워더, WDA 버전 및 빌드.

WebDriverAgent는 앱 개발자들이 테스트 중 자신의 앱을 조작할 때 사용하는 테스트 자동화 서비스다. iPhone Use는 이 서비스의 용도를 바꿨다. 테스트 스크립트 대신 언어 모델이 어디를 탭할지 결정한다. 클라이언트는 Mac 자체를 가리키지 않는 WebDriverAgent 주소와의 통신을 거부한다. 코드에서 Wi-Fi 연결 경로도 찾지 못했으므로 휴대폰은 계속 유선으로 연결돼 있어야 한다. 루프백 검사.

실시간 화면 보기는 같은 MCP 서버가 제공하는 작은 웹 패널이다. 이 패널의 콘텐츠 보안 정책은 외부 연결을 허용하지 않으므로, 미리보기 자체가 외부 서버로 데이터를 보내지는 않는다. 위젯 리소스.

iPhone Use 도구: 에이전트가 읽을 수 있는 것과 할 수 있는 것

README에 따르면 모델용 도구는 17개이며, 미리보기 패널만 사용하는 도구가 2개 더 있다. 도구 목록. 코드는 각 도구를 읽기 전용 또는 파괴적 작업으로 표시한다. 도구의 성격을 이해하는 데 유용한 구분이다. 주석 속성.

휴대폰에서 읽기휴대폰 조작
pua_observe: 요소 트리 및/또는 스크린샷pua_tap: 요소 또는 x/y 좌표를 기준으로 탭
pua_find: 요소 검색pua_type_text: 텍스트 입력, 선택적으로 제출
pua_wait: 요소가 나타날 때까지 대기pua_swipe, pua_scroll_find
pua_apps: 앱의 번들 ID 찾기pua_launch_app: 설치된 모든 앱 실행
pua_doctor, pua_metrics: 작동 상태 및 소요 시간pua_press_button: 홈, 음량 버튼
pua_screen: 미리보기 열기 또는 일시 정지pua_batch: 1회 호출로 최대 20단계 실행
pua_collect_list, pua_setup, pua_ready

이 중 2개는 자세히 볼 필요가 있다. pua_launch_app은 앱을 열기 전에 번들 ID의 형식이 올바른지만 확인한다. 에이전트가 열어도 되는 앱이나 열면 안 되는 앱의 목록은 없다. 앱 실행. 또한 pua_batch를 사용하면 모델은 탭, 입력, 앱 실행, 대기를 한 번에 최대 20개까지 이어서 수행할 수 있다. 속도를 높여주는 기능인 동시에, 잘못된 가정이 가장 많은 후속 동작으로 이어질 수 있는 지점이기도 하다. 일괄 작업 제한.

파일 잠금은 휴대폰에서 작업 2개가 동시에 실행되지 않도록 한다. 2번째 호출자는 device_busy를 받으며, 해당 호출로는 아무 동작도 일어나지 않는다. 작업 잠금.

iPhone Use를 쓰려면 어떤 설정과 신뢰가 필요한가

탈옥이나 별도의 Appium 서버는 필요 없지만, 여전히 개발자용 환경을 갖춰야 한다. macOS, 전체 Xcode, Python 3.9 이상, Node 20.19 이상이 필요하다. 요구 사항. WebDriverAgent는 사용자 본인의 Apple 계정과 개발 팀으로 서명한다. 서명.

설정 스킬에는 사용자만 직접 할 수 있는 단계가 나열돼 있다. Xcode 로그인, "이 컴퓨터를 신뢰" 누르기, 개발자 모드 활성화 후 재시동, 필요한 경우 설정에서 UI 자동화 활성화, 개발자 프로파일 신뢰, 휴대폰의 잠금 해제 상태 유지다. 수동 단계. 모델에는 사용자에게 인증 정보를 절대 요구하지 말고, 완료됐다고 가정하는 대신 사용자가 실제로 "완료"라고 답할 때까지 기다리라는 지침이 있다. 사용자에게 넘기는 규칙.

쉽게 말해, 개발자 모드가 켜져 있고 WebDriverAgent가 실행 중이면 Mac의 소프트웨어가 잠금 해제된 채 연결된 휴대폰 전체를 조작할 수 있다. 이것이 이 도구의 목적이다. 은행 앱과 메신저 앱이 들어 있는 휴대폰을 연결하기 전에 이해해야 할 점이기도 하다.

iPhone Use가 사용자를 위해 멈추는 지점: 비밀번호, 전송, 결제

개인용 에이전트에서 가장 중요한 부분이며, 보호 장치는 2종류로 나뉜다.

코드로 강제하는 보호 장치. iOS가 비밀번호에 사용하는 보안 텍스트 필드에 입력하려 하면 거부된다. 오류 메시지는 모델에 사용자에게 대신 입력을 요청하라고 안내한다. 보안 필드 입력 거부. 입력 후 제출은 요청이 없으면 비활성화돼 있으며, 제출 결과를 확인하지 못하면 일괄 작업이 멈춘다. 제출 기본값 및 일괄 작업 중단. 긴 텍스트를 나누어 입력할 때는 처음 입력을 시작한 앱과 필드에만 이어서 입력한다. 둘 중 하나라도 바뀌면 나머지는 입력하지 않는다. 이어서 입력하기 보호 장치.

모델에 따르도록 요청하는 보호 장치. 나머지는 모두 스킬에 적힌 지침이다. 비밀번호, PIN, 인증 코드, Face ID는 미리보기를 일시 정지한 상태에서 사용자에게 넘긴다. 인증을 사용자에게 넘기기. 메시지는 사용자가 전송을 허가한 경우에만, 수신자와 초안 전체를 확인한 뒤 보낸다. 전송 규칙. 입력, 전송, 결제, 주문의 결과가 불확실하면 반드시 확인해야 하며, 같은 작업을 다시 실행해서는 안 된다. 재실행 금지.

우리가 코드와 스킬 어디에서도 찾지 못한 것은 결제 전에 에이전트가 멈추고 사용자에게 확인을 받아야 한다는 규칙이다. 스킬은 2번 결제하는 것을 막지만, 묻지 않고 1번 결제하는 것을 막지는 않는다. 앱이 비밀번호 입력란을 일반 텍스트 필드로 구현했다면 이 역시 코드 검사 대상에서 빠진다. 이 경우를 다루는 것은 스킬의 지침뿐이다. 인증 참고 문서. 우리가 분석한 다른 제품과 비교하면, Pine은 모든 청구 관련 작업 전에 사용자에게 묻고, Muse는 승인을 1개의 관문에서 처리한다.

iPhone Use를 사용할 때 Mac 밖으로 나가는 데이터

외부로 나가는 것은 3가지다.

  1. 화면은 모델로 간다. 요소 트리와 스크린샷은 호스트 어시스턴트에 반환되고, 어시스턴트는 이를 자신이 사용하는 모델로 보낸다. 스크린샷은 먼저 크기를 줄인 JPEG로 변환되며, 원본은 디스크에 남는다. 이미지 처리. 채팅, 잔액, 코드 등 화면에 표시된 것은 무엇이든 그 이미지에 담긴다.
  2. 앱 조회 요청은 Apple로 간다. 앱의 번들 ID를 찾는 과정에서 Apple의 공개 검색 API를 조회할 수 있다. 앱 검색.
  3. 사용 이벤트는 PostHog로 간다. Codex 플러그인은 기본적으로 익명 이벤트를 전송한다. WorkBuddy와 Doubao 설치 프로그램은 --analytics를 지정하지 않으면 이를 비활성화한다. 기본값, WorkBuddy 설치 프로그램.

분석 코드를 ANALYTICS.md와 대조한 결과, 내용은 일치했다. 이벤트 유형은 5개이며, 무작위 설치 ID, 도구 이름, 결과, 소요 시간, 오류 코드를 기록한다. 허용 목록을 사용해 사전에 지정되지 않은 필드는 모두 제외한다. 화면 텍스트, 스크린샷, 선택자, 기기 ID, 서명에 사용한 개발 팀 정보는 전송하지 않는다. 허용 목록. IPHONE_USE_ANALYTICS=0 또는 DO_NOT_TRACK=1을 설정하면 이 기능이 중단되며, 기록 전과 전송 전에 모두 해당 설정을 확인한다. 수집 거부 설정.

문서에서 빠진 세부 사항은 2가지다. 이벤트는 PostHog의 위치 조회 기능을 비활성화하지만, 요청에 실린 IP 주소는 여전히 PostHog 서버에 도달한다. 이를 보관하는지는 코드만으로 알 수 없다. 또한 다른 2개 호스트에서 발생한 이벤트까지 모두 Codex 플러그인에서 발생한 것으로 표시된다. 출처 표시.

iPhone Use와 계정 제재: 저장소에 없는 설명

X와 Xiaohongshu에 공유된 데모에는 WeChat Moments를 스크롤하거나 음식 배달을 주문하는 장면이 나온다. 자체 자동화 방지 시스템을 갖춘 기업들의 앱 안에서 이뤄지는 작업이다. 변경 이력에는 WeChat 최적화가 언급되지만, 이는 긴 채팅 목록을 더 빠르게 읽기 위한 것으로 탐지 회피와는 관계없다. WeChat 참고 사항. 무작위 지연이나 사람의 조작처럼 보이게 하는 미세한 변동은 찾지 못했다. 텍스트 입력은 일정한 속도로 이뤄진다. 입력 상수. 정직한 방식이지만, 자동화를 감추는 장치가 없다는 뜻이기도 하다.

저장소에는 플랫폼 약관, 위험 통제, 계정 제재에 관한 설명이 없다. WeChat, Alipay, Meituan이 WebDriverAgent를 통한 입력을 탐지하는지는 알 수 없으며, 직접 시도하지도 않았다. 이런 정보의 공백은 iPhone Use에만 있는 문제가 아니다. Droidrun의 기반이 되는 호스팅형 Android 서비스는 반대 방향을 택해 탐지를 피하는 입력 기능을 홍보한다. 이 내용은 휴대폰 제어 에이전트 개요에서 다룬다. iPhone Use를 시도한다면 잃어도 감당할 수 있는 휴대폰과 계정으로 해보는 것이 좋다.

iPhone Use에 관해 확인하지 못한 것

  • 실제로 작동하는지, 얼마나 자주 성공하는지. 우리는 직접 실행하지 않았다. 프로젝트는 성공률을 공개하지 않으며, 이 페이지의 내용은 어떤 것도 측정 결과가 아니다. 우리 평가에 포함되지 않았고 점수도 없다.
  • 호스트가 무엇을 보관하는지. 스크린샷은 Codex, WorkBuddy 또는 Doubao와 이들이 사용하는 모델 제공업체로 전달된다. 이들의 보관 정책은 이 저장소에서 다루지 않는다.
  • PostHog의 IP 주소 보관 여부. 각 이벤트와 함께 전달되는 IP 주소를 보관하는지 확인하지 못했다.
  • 0.3.12 이후의 모든 변경 사항. 현재 개발 속도라면 이 페이지의 세부 내용은 며칠 안에 달라질 수 있다. 특정 커밋에 고정한 링크에서 우리가 읽은 내용을 정확히 확인할 수 있다.

자주 묻는 질문

iPhone Use를 안전하게 써볼 수 있나? 오픈 소스이고 사용 분석 기능이 문서의 설명과 일치한다는 점은 많은 도구보다 낫다. 하지만 에이전트는 잠금이 풀린 휴대폰에서 모든 앱을 열고 어디든 탭할 수 있으며, 코드 수준에서 동작을 멈추는 것은 비밀번호 필드와 결과를 확인하지 못한 제출뿐이다. 결제 확인은 모델에 맡겨져 있다. 여분의 휴대폰과 잃어도 감당할 수 있는 계정을 사용하자.

iPhone Use를 쓰려면 탈옥이 필요한가? 아니다. 사용자 본인의 Apple 개발 팀으로 서명한 Appium의 WebDriverAgent를 사용하며, 휴대폰의 개발자 모드와 Mac의 전체 Xcode가 필요하다.

iPhone Use는 Wi-Fi로도 작동하나? 우리가 읽은 버전에서는 불가능하다. 클라이언트는 Mac의 포워더를 통해서만 WebDriverAgent와 통신하며, Wi-Fi 연결 경로는 찾지 못했다.

iPhone Use는 PostHog에 무엇을 보내나? 익명 이벤트는 5종류이며, 도구 이름, 결과, 소요 시간, 오류 코드, 무작위 설치 ID를 담는다. 화면 내용, 스크린샷, 기기 ID는 전송하지 않는다. Codex용으로 설치하면 기본적으로 켜지고, WorkBuddy와 Doubao용으로 설치하면 꺼진다. IPHONE_USE_ANALYTICS=0으로 비활성화할 수 있다.

이 도구를 쓰면 WeChat이나 Alipay에서 계정을 정지하나? 알 수 없다. 저장소에도 답이 없다. 계정 제재나 플랫폼 약관을 전혀 언급하지 않는다. 코드에는 자동화를 감추는 장치가 없다.

iPhone Use는 어떻게 설치하나? 전체 Xcode, Python 3.9 이상, Node 20.19 이상을 갖춘 Mac에서 저장소를 복제한 뒤, Codex 플러그인용으로 sh scripts/install.sh를 실행한다. WorkBuddy와 Doubao에는 별도의 설치 프로그램이 있다. 그런 다음 사용자 본인의 Apple 개발 팀으로 WebDriverAgent에 서명하고, 휴대폰에서 Mac을 신뢰하도록 설정한다. 설치 단계. 우리는 이 절차를 읽었으며, 직접 실행하지는 않았다. 다른 휴대폰 제어 에이전트 도구는 개요 페이지에서 비교한다.