저는 아직 코드를 작성할 수 없지만, 이제 ChatGPT가 제 휴대폰을 조종하고 — 스스로를 승인할 수는 없습니다.
요약
ChatGPT를 활용하여 단순히 스크립트를 붙여넣는 것을 넘어, 휴대폰 자체에 직접 명령을 내리고 작업을 수행하게 하는 새로운 방식이 소개되었습니다. 이를 통해 Google Maps 검색 및 상점 저장 같은 복잡한 작업이나, 특정 시간에 AI 논문 요약본을 자동으로 Obsidian에 기록하는 에이전트 등록까지 가능해졌습니다.
핵심 포인트
- ChatGPT가 휴대폰의 배경에서 직접 작업을 수행할 수 있게 됨.
- Google Maps 등 앱 제어 및 데이터 저장이 자동화됨.
- 특정 시간 간격으로 AI 논문 요약본을 자동으로 기록하는 에이전트 구축이 가능함.
지난달에는 아무것도 아닌 알람에 대해 글을 썼습니다. 제가 오전 8시에 예약했던 에이전트(agent)가 정시에 울렸지만, 나중에 조용히 작동하지 않았고, 다시 스케줄링 기능을 신뢰하기까지 어떤 과정이 필요했는지에 대한 내용이었습니다.
이번 글은 그 휴대폰 자체를 ChatGPT에게 맡긴 것에 관한 것입니다. 'ChatGPT가 스크립트를 작성하고 제가 붙여넣는' 방식이 아닙니다. ChatGPT 앱에서 ChatGPT가 제 휴대폰에게 무언가를 요청하고, 제가 보고 있지 않은 화면에서 휴대폰이 그것을 수행하며, 그 결과가 다시 채팅창으로 돌아오는 방식입니다.
작동 방식

저는 ChatGPT 앱에 하나의 요청을 입력했습니다: 시모키타자와(Shimokitazawa) 근처 평점 높은 빈티지 상점을 Google Maps 목록으로 저장해 달라는 것입니다. 오른쪽에서 제 휴대폰이 한 번 승인을 요청합니다. 그러자 Google Maps가 하단 오른쪽 창 — 즉, 제 화면이 아닌 배경 가상 디스플레이(background virtual display) — 에서 스스로 움직이기 시작하고, 1분 후 ChatGPT는 어떤 상점 두 곳을 저장했는지 알려줍니다. 실제로 Maps를 열어보면 그 목록이 존재합니다.

두 번째 방식은 더 조용하고, 솔직히 말해 제가 더 많이 사용하는 방식입니다: ChatGPT의 메시지 하나가 휴대폰에서 매일 16시 27분에 실행되는 에이전트를 등록합니다. 이 에이전트는 Perplexity를 이용해 최신 AI 논문을 조사하고, 출처가 명시된 영어 요약본을 Obsidian에 넣어줍니다. ChatGPT도, 터치도 없이, 매일 16시 27분에요. 그리고 그 이후로도 매일입니다.
구성 요소 결합 방식
- ChatGPT → Shelly. ChatGPT 앱은 연결된 기기에서 Codex 원격 제어를 구동할 수 있습니다. Shelly는 이미 Codex를 네이티브로 탑재하고 있어, 이 기능을 휴대폰 자체에 호스팅할 수 있습니다:
shelly codex pair --background. 그러면 ChatGPT 앱을 통해 휴대폰은 그저 또 하나의 기기가 됩니다. ChatGPT가 실행하는 명령어들은 Shelly의 실제 Android PTY(Pseudo-Terminal)로 들어옵니다. - Shelly → ClosePaw. Shelly는 화면을 터치하지 않습니다. ClosePaw가 합니다. 이는 화면을 보고 앱을 조작하는 에이전트입니다. 저는 이를 포크하여, Shelly의 요청(그리고 서명 인증서로 고정된 Shelly만 가능)이 ClosePaw를 열거나 ClosePaw 자체의 확인을 요청하지 않고 Shizuku 가상 디스플레이에서 실행되도록 했습니다.
- ChatGPT → ChatGPT.
shelly closepaw --wait "<목표>"는 제가 승인하고 ClosePaw가 완료할 때까지 대기하며, 그 후 ClosePaw가 보고한 내용을 출력합니다. ChatGPT는 이 내용을 읽고 답변을 합니다.
가장 중요하게 생각했던 부분
ChatGPT가 휴대폰을 구동할 수 있다면, 원칙적으로 ChatGPT가 질문-승인-실행의 전체 루프를 스스로 수행할 수도 있습니다. 웹 페이지에서 읽은 내용이
약 8번의 시도가 필요했습니다. 매번 시도할 때마다, 원래는 배포했을 기능을 망가뜨렸습니다:
- 첫 번째 버전에서는 ChatGPT에게 결과를 알려주지 않았습니다. ClosePaw가 완료되었는데도 ChatGPT는 계속 "승인을 기다리고 있다"고 말했습니다. 결과가 보이지 않는 데모는 데모가 아닙니다.
- 알림에서 승인하는 과정이 Shelly를 전체 화면으로 전환시키면서 분할 화면을 망가뜨렸습니다. 이제 승인은 백그라운드에서 처리됩니다.
- 제가 "Perplexity와 함께"라고 말하자, 에이전트가 예정된 실행 중에 다른 것을 조용히 가져갔습니다. 이름 지정된 도구(named tool)가 확인 시점에 누락되고 있었습니다.
- 영어로 질문했는데 일본어 요약본을 받았는데, 그 이유는 제 프로필 메모리가 일본어였기 때문입니다. 이제 작업 자체의 언어가 우선권을 갖게 되었습니다.
- ClosePaw를 구동하는 gpt-4.1-mini가 세 개의 스토어를 저장하다 길을 잃었습니다. gpt-4.1과 두 개의 스토어는 작동했습니다.
- 한때 "백그라운드 화면 보기" 버튼을 눌렀는데, 녹화 도중에 LINE이 채팅 목록과 함께 열렸습니다. 그 시도는 사라졌습니다.
아직 할 수 없는 것들
이 모든 것을 하나로 묶는 Kotlin 코드를 작성하는 것입니다. 가상 디스플레이 트릭이 모든 휴대폰에서 동일하게 작동할 것이라고 약속하는 것입니다. 제 휴대폰이 Wi-Fi에서 LTE로 전환될 때 OpenAI의 원격 제어 호스트가 스스로 재연결되는지 여부를 알려드릴 수 있는데, 이것은 이번 주에 알아내고 있는 중입니다.
제가 할 수 있는 것은 데모가 좋아 보이지만 실제 결과는 없는 경우를 감지하고, 그것이 나올 때까지 게시하는 것을 거부하는 것입니다.
GitHub: github.com/RYOITABASHI/Shelly — v8.1.0, GPLv3. ClosePaw의 Shelly 빌드: RYOITABASHI/closepaw releases.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기