Use kakaocli on macOS to read KakaoTalk chats, search messages, and send replies after explicit confirmation.
kakaocli 를 사용해 macOS에서 카카오톡 대화 목록을 확인하고, 메시지를 검색하고, 필요할 때 답장을 보낸다.
이 스킬은 macOS + 카카오톡 Mac 앱 설치를 전제로 한다. 공식 Kakao API를 쓰는 것이 아니라 로컬 데이터베이스 읽기와 macOS 접근성 자동화 위에서 동작하므로, 권한과 안전 규칙을 먼저 확인해야 한다.
mas 사용 시)kakaocli 설치python3 3.10+scripts/kakaotalk_mac.py--since 1h, --since 7d 등--me, --dry-run)카카오톡 Mac 앱이 없으면 먼저 설치한다. mas 를 쓰려면 App Store 로그인 상태여야 한다.
brew install mas
mas account
mas install 869223134
mas install 이 막히면 App Store 앱에서 먼저 로그인한 뒤 다시 시도한다.
kakaocli공식 저장소 기준 권장 설치는 Homebrew tap 이다.
brew install silver-flight-group/tap/kakaocli
설치 후 바로 상태를 확인한다.
kakaocli status
System Settings > Privacy & Security 에서 현재 사용하는 터미널 앱(iTerm, Terminal, Warp 등)에 아래 권한을 준다.
기본 규칙:
status / auth / chats 같은 읽기 명령도 Full Disk Access 가 필요하다.send, harvest, inspect 류 작업은 Accessibility 권한까지 필요하다.먼저 읽기 경로가 되는지 확인한다.
kakaocli status
kakaocli auth
kakaocli chats --limit 10 --json
auth 가 성공하면 읽기 경로는 준비된 것이다.
kakaocli auth fails on user_id auto-detection실제 macOS 환경에서는 KakaoTalk.db 라는 literal 파일이 없어도, container 안의 78자 hex 파일이 실제 SQLCipher DB 인 경우가 있다. 이때 kakaocli status 는 정상인데 kakaocli auth 만 실패하는 대표 원인은:
AlertKakaoIDsList 후보로는 복호화가 안 됨DESIGNATEDFRIENDSREVISION:<sha512(user_id)> 만 남아 있음kakaocli 의 기본 user_id brute-force 시간이 짧아서 auto-detection 이 실패함이 저장소는 그 구간만 보완하는 read-only helper 를 함께 제공한다.
python3 scripts/kakaotalk_mac.py auth --refresh
python3 scripts/kakaotalk_mac.py chats --limit 10 --json
python3 scripts/kakaotalk_mac.py messages --chat "지수" --since 1d --json
python3 scripts/kakaotalk_mac.py search "회의" --json
AlertKakaoIDsList 와 DESIGNATEDFRIENDSREVISION hash 를 읽는다.user_id 가 모두 실패하면 SHA-512 preimage search 로 실제 user_id 를 더 오래 찾는다.user_id, DB 경로, derived key 는 ~/.cache/k-skill/kakaotalk-mac-auth.json 에 캐시한다.chats, messages, search, schema)은 cached --db / --key 를 붙여 kakaocli 를 다시 호출한다.kakaocli messages --chat "지수" --since 1h --json
kakaocli search "점심" --json
helper 경유 예시:
python3 scripts/kakaotalk_mac.py messages --chat "지수" --since 1h --json
python3 scripts/kakaotalk_mac.py search "점심" --json
응답은 가능하면 JSON 모드로 받고, 사람이 읽기 쉽게 다시 요약한다.
실제 전송 전에 먼저 자기 자신에게 테스트하거나 dry-run 으로 확인한다.
kakaocli send --me _ "테스트 메시지"
kakaocli send --dry-run "채팅방 이름" "보낼 문장"
--me 는 나와의 채팅으로 보내므로 가장 안전한 테스트 경로다.
다른 사람이나 단체방으로 보내기 전에는 반드시 사용자의 최종 확인을 받는다.
확인 전에는 아래만 준비한다.
확인을 받았을 때만 전송한다.
kakaocli send "채팅방 이름" "보낼 문장"
자동 로그인 편의를 원할 때만 자격증명을 저장한다.
kakaocli login
kakaocli login --status
비밀번호를 채팅창에 보내라고 요구하지 않는다. 사용자가 직접 로컬 터미널에서 입력하게 한다.
--me 또는 --dry-run)와 사용자 확인이 끝난 뒤 실제 전송 여부가 명확하다mas install 실패status 는 정상인데 auth 만 실패하는 user_id auto-detection / key mismatch 케이스kakaocli status 와 kakaocli auth 부터 시작하는 편이 안전하다.kakaocli auth 가 User ID: auto-detection failed 로 멈추면 helper 경로를 우선 사용한다.auth 텍스트 출력은 key 를 다시 보여주지 않는다. 자동화가 필요할 때만 --format json 또는 --format shell 을 사용한다.