This lets Claude read and send KakaoTalk messages on macOS by wrapping kakaocli, a tool that talks directly to the local KakaoTalk database and Mac accessibility APIs instead of using official Kakao APIs. You'll need Full Disk Access and Accessibility permissions, and there's a helper script included for when user ID auto-detection fails (common in real deployments). The workflow is explicitly cautious about sending: always test with --me or --dry-run first, always confirm before sending to other people. It's Korean-language focused, macOS only, and assumes you already have KakaoTalk for Mac installed. Good for automating message searches or drafting replies, not for production integrations where official APIs exist.
npx -y skills add nomadamas/k-skill --skill kakaotalk-mac --agent claude-codeInstalls into .claude/skills of the current project.
katok CLI를 유일한 실행 표면으로 사용해 macOS 카카오톡 대화를 로컬 아카이브와 검색 인덱스로 동기화하고, keyword/BM25/semantic 검색과 chunk 조회를 수행한다.
이 스킬은 기존 kakaotalk-mac 설치 경로를 유지하지만 내부 동작은 katok 기반이다. 메시지 전송, 삭제, UI 자동화, 직접 DB 읽기, 인증 캐시 처리, 복호화 material 처리는 이 스킬의 범위가 아니다.
katok sync --source macos --json for live macOS KakaoTalk ingestion.katok CLI 설치Homebrew:
brew tap NomaDamas/katok https://github.com/NomaDamas/katok.git
brew install katok
Cargo:
cargo install katok
export PATH="$HOME/.cargo/bin:$PATH"
설치 후 CLI가 보이는지 확인한다.
katok --help
katok doctor --json
katok doctor --json
doctor --json의 freshness 섹션에서 마지막 sync/index 상태를 확인한다. 이 기본 doctor는 macOS app-data probe를 실행하지 않으므로 권한 prompt를 띄우지 않는 준비 상태 점검에 적합하다.
Full Disk Access 설정이 필요하면 사용자가 직접 허용할 수 있도록 설정 화면을 연다.
katok permissions macos
KakaoTalk UI 자동화는 이 스킬 범위가 아니지만, upstream 진단을 위해 Accessibility 설정 화면까지 열어야 하는 경우에만 다음 명령을 쓴다.
katok permissions macos --accessibility
카카오톡 앱 설치, container, DB 파일 접근 같은 macOS source adapter 상태를 확인해야 할 때만 probe를 실행한다. 이 명령은 macOS가 app-data 접근 prompt를 띄울 수 있다.
katok doctor --macos-probe --json
최신 대화가 중요하거나 freshness.recommendation.sync_before_search가 true이면 검색 전에 sync한다.
katok sync --source macos --json
설정 파일의 기본 source adapter를 쓰는 경우:
katok sync --json
semantic search 전 freshness.recommendation.index_before_semantic_search가 true이거나 방금 sync한 내용을 semantic 검색에 반영해야 하면 index를 만든다.
katok index --json
katok index는 기본적으로 로컬 embeddinggemma-300m-q4 embedder를 사용한다. Python, Jina, TEI, 별도 HTTP embedding server를 요구하지 않는다.
정확한 문자열, 이름, 계좌번호, 고유명사는 keyword search를 먼저 쓴다.
katok search keyword "검색어" --json
여러 단어가 섞인 일반 질의는 BM25를 쓴다.
katok search bm25 "지난주 미팅 자료" --json
표현이 정확히 기억나지 않는 의미 기반 질의는 semantic search를 쓴다.
katok search semantic "최근에 논의한 세금 신고 일정" --json
검색 결과는 먼저 snippet과 chunk id 중심으로 요약한다. 사용자가 특정 결과를 열어 달라고 하거나 chunk id를 제공했을 때만 원문 chunk를 조회한다.
katok chunk get <chunk-id> --json
katok chunk context <chunk-id> --json
katok chunk parent <chunk-id> --json
katok chunk get <chunk-id> --json: 해당 chunk 원문 조회katok chunk context <chunk-id> --json: 같은 채팅방의 직전/직후 micro chunk 조회katok chunk parent <chunk-id> --json: semantic search parent window 조회실제 카카오톡 설치 없이 upstream fixture로 테스트할 때만 fixture source와 deterministic embedder를 사용한다.
katok sync --source fixture tests/fixtures/kakao/replies.jsonl --json
KATOK_EMBEDDER=local-test katok index --json
KATOK_EMBEDDER=mock katok index --json
실사용 경로에서는 fixture, mock embedder, 원격 embedding endpoint를 사용하지 않는다.
katok doctor --json 결과와 freshness 권장사항을 요약했다.katok sync --source macos --json과 katok index --json 실행 여부를 명확히 했다.katok chunk get/context/parent 결과를 요약했다.katok 미설치 또는 Cargo binary PATH 누락katok doctor --macos-probe --json에서 container 또는 DB 파일 접근 실패kakaotalk-mac이지만 실행 표면은 katok이다.juliusbrussee/caveman
mattpocock/skills
shadcn/improve
obra/superpowers
forrestchang/andrej-karpathy-skills
vercel-labs/skills