회의 스크린샷을 Codex에 건네고 “캘린더에 추가해 줘”라고 한마디만 하면 간단히 끝날 줄 알았다. 하지만 직접 해 보니 거의 매번 Computer Use로 처리했다. 화면을 캡처하고, 버튼을 찾아 클릭하고, 입력란을 채운 뒤, 다시 화면을 캡처해 확인하는 식이다. 완료는 되지만 너무 느렸다.
내가 줄이고 싶었던 건 바로 이렇게 화면을 반복해서 조작하는 과정이었다. 기존 도구 몇 가지를 써 본 끝에 AppleCtl을 만들었다. 에이전트가 직접 호출하는 로컬 CLI로, Apple의 공개 EventKit API를 통해 캘린더와 미리 알림을 관리한다.
에이전트는 스크린샷의 내용을 파악하고, AppleCtl은 실제 작업을 수행한 뒤 결과를 에이전트에 명확하게 돌려준다.
Whiteboard
두 방식 모두 내용을 이해하는 건 에이전트다. 달라지는 건 실행 방식이다.
이런 도구는 이미 꽤 있다. 주된 차이는 지원 범위와 연동 방식이다. 아래는 개발하면서 참고한 버전들을 비교한 것이다.
내가 더 중요하게 생각한 건 에이전트가 같은 인터페이스로 두 종류의 작업을 모두 처리하고 실행 결과까지 확인할 수 있어야 한다는 점이다. AppleCtl은 날짜, 시간대, 반복 일정과 관련된 예외 상황도 처리하며, 저장 전 미리 보기와 수정 대상의 최신 상태 확인도 지원한다. 미리 알림의 핵심 로직은 remindctl을 바탕으로 수정했고, 캘린더 구현은 나머지 두 프로젝트를 참고했다. 구체적인 수정 사항은 AUDIT.md에 정리했다.
Apple 기본 캘린더와 미리 알림을 계속 쓰려는 것도 번거로움을 줄이기 위해서다. 캘린더나 할 일 앱을 따로 설치할 필요도, 서드파티 서비스 구독료를 추가로 낼 필요도 없다. 같은 Apple 계정으로 iCloud 동기화를 켜 두면 Mac, iPhone, iPad에서 그대로 이어서 쓸 수 있다.
설치도 Claude Code나 Codex에 맡기는 걸 추천한다. 사용할 Mac에서 이렇게 말하면 된다.
macOS 14 이상과 Python 3가 필요하며, 처음 사용할 때 캘린더와 미리 알림에 대한 접근을 허용해야 한다. 다운로드한 버전은 시스템 설정에서 실행을 허용해야 할 수도 있다. 자세한 절차는 설치 안내를 참고하면 된다.
설치가 끝나면 회의 스크린샷을 올리고 이렇게 말하면 된다.
“
이미지에 있는 회의를 캘린더에 추가하고 30분 전에 알림을 설정해 줘. 시간이 명확하지 않으면 먼저 물어보고, 추가한 뒤에는 저장된 내용을 다시 확인해서 알려 줘.
명령줄 도구로 만들긴 했지만 명령어를 다루는 건 에이전트의 몫이다. 나는 이미지 한 장이나 말 한마디만 건네면 된다.
나도 Apple Intelligence가 이런 소소한 일을 맡아 주기를 줄곧 기대해 왔다. 앞으로 중국 본토에 출시되면 Mac에서든 iPhone에서든 스크린샷을 찍어 바로 일정을 추가할 수 있으면 좋겠다. 그때는 일정을 추가하는 방식이 바뀌더라도 Apple 캘린더와 미리 알림을 쓰던 습관은 그대로 이어 갈 수 있을 것이다.
Loading...
Loading...
Loading...
Loading...
Loading...
회의 스크린샷을 Agent에게 건네 캘린더에 등록하면 편할 줄 알았지만, 캡처와 클릭, 입력을 반복하느라 너무 오래 걸렸다. 그래서 AppleCtl을 만들었다. Apple의 공개 EventKit 인터페이스를 통해 Agent가 단일 CLI로 캘린더와 미리 알림을 관리한다. 기본 출력은 JSON이며, 실행 결과를 다시 읽어 확인할 수도 있다. Agent는 내용을 이해하고, AppleCtl은 실행을 맡는다. 날짜와 시간대, 반복 일정도 처리하며, 저장 전 미리 보기와 수정 대상의 최신 상태 확인을 지원한다. 별도 앱 설치나 추가 구독 없이 Apple 기본 앱을 그대로 쓰고, iCloud를 켜면 기기 간 동기화도 된다. 설치와 명령 실행은 Agent에게 맡기고, 나는 이미지 한 장이나 말 한마디만 전달하면 된다. 시간이 모호하면 먼저 물어보고, 추가한 뒤에는 결과를 확인한다.
회의 스크린샷을 Codex에 건네고 “캘린더에 추가해 줘”라고 한마디만 하면 간단히 끝날 줄 알았다. 하지만 직접 해 보니 거의 매번 Computer Use로 처리했다. 화면을 캡처하고, 버튼을 찾아 클릭하고, 입력란을 채운 뒤, 다시 화면을 캡처해 확인하는 식이다. 완료는 되지만 너무 느렸다.
내가 줄이고 싶었던 건 바로 이렇게 화면을 반복해서 조작하는 과정이었다. 기존 도구 몇 가지를 써 본 끝에 AppleCtl을 만들었다. 에이전트가 직접 호출하는 로컬 CLI로, Apple의 공개 EventKit API를 통해 캘린더와 미리 알림을 관리한다.
에이전트는 스크린샷의 내용을 파악하고, AppleCtl은 실제 작업을 수행한 뒤 결과를 에이전트에 명확하게 돌려준다.
두 방식 모두 내용을 이해하는 건 에이전트다. 달라지는 건 실행 방식이다.
이런 도구는 이미 꽤 있다. 주된 차이는 지원 범위와 연동 방식이다. 아래는 개발하면서 참고한 버전들을 비교한 것이다.
프로젝트
지원 범위
에이전트 연동
remindctl v0.3.8
미리 알림
CLI, JSON 지원
apple-calendar-cli v0.1.1
캘린더
CLI + Skill, JSON 지원
acal v0.4.0
캘린더
CLI + 선택적 MCP, 구조화된 결과
AppleCtl
캘린더 + 미리 알림
통합 CLI + Skill, 기본 출력은 JSON
내가 더 중요하게 생각한 건 에이전트가 같은 인터페이스로 두 종류의 작업을 모두 처리하고 실행 결과까지 확인할 수 있어야 한다는 점이다. AppleCtl은 날짜, 시간대, 반복 일정과 관련된 예외 상황도 처리하며, 저장 전 미리 보기와 수정 대상의 최신 상태 확인도 지원한다. 미리 알림의 핵심 로직은 remindctl을 바탕으로 수정했고, 캘린더 구현은 나머지 두 프로젝트를 참고했다. 구체적인 수정 사항은 AUDIT.md에 정리했다.
Apple 기본 캘린더와 미리 알림을 계속 쓰려는 것도 번거로움을 줄이기 위해서다. 캘린더나 할 일 앱을 따로 설치할 필요도, 서드파티 서비스 구독료를 추가로 낼 필요도 없다. 같은 Apple 계정으로 iCloud 동기화를 켜 두면 Mac, iPhone, iPad에서 그대로 이어서 쓸 수 있다.
설치도 Claude Code나 Codex에 맡기는 걸 추천한다. 사용할 Mac에서 이렇게 말하면 된다.
macOS 14 이상과 Python 3가 필요하며, 처음 사용할 때 캘린더와 미리 알림에 대한 접근을 허용해야 한다. 다운로드한 버전은 시스템 설정에서 실행을 허용해야 할 수도 있다. 자세한 절차는 설치 안내를 참고하면 된다.
설치가 끝나면 회의 스크린샷을 올리고 이렇게 말하면 된다.
명령줄 도구로 만들긴 했지만 명령어를 다루는 건 에이전트의 몫이다. 나는 이미지 한 장이나 말 한마디만 건네면 된다.
나도 Apple Intelligence가 이런 소소한 일을 맡아 주기를 줄곧 기대해 왔다. 앞으로 중국 본토에 출시되면 Mac에서든 iPhone에서든 스크린샷을 찍어 바로 일정을 추가할 수 있으면 좋겠다. 그때는 일정을 추가하는 방식이 바뀌더라도 Apple 캘린더와 미리 알림을 쓰던 습관은 그대로 이어 갈 수 있을 것이다.