# Kakaotalk Cli

> macOS에서 카카오톡 메시지를 읽고 보낸다. 렌더링 안 된 채팅방도 검색으로 찾아 열고 줄바꿈을 보존한다. 실패하는 경로와 대체 경로를 함께 담았다.

- **Type:** Skill
- **Install:** `agentstack add skill-bam-bam-2-solo-skills-kakaotalk-cli`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [bam-bam-2](https://agentstack.voostack.com/s/bam-bam-2)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [bam-bam-2](https://github.com/bam-bam-2)
- **Source:** https://github.com/bam-bam-2/solo-skills/tree/main/skills/kakaotalk-cli

## Install

```sh
agentstack add skill-bam-bam-2-solo-skills-kakaotalk-cli
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 카카오톡 보내기·읽기

**정본 도구는 `kmsg`다.** `kakaocli send`는 쓰지 않는다 — 화면에 렌더링된 채팅
목록만 훑어서 아래로 밀린 방을 못 찾고, DB 키를 받는 옵션도 없다.

## 왜 SSH를 거치나

Aside 샌드박스는 **GUI 실행·AX(손쉬운 사용)·타 프로세스 조회가 전부 막혀 있다.**
그래서 모든 명령은 SSH 루프백으로 샌드박스 밖에서 실행한다.

```bash
ssh -o BatchMode=yes localhost 'export PATH=/opt/homebrew/bin:$PATH; kmsg ...'
```

`kakaocli status`가 "App state: notRunning"이라고 해도 믿지 말 것. 샌드박스가
프로세스를 못 볼 뿐 카톡은 대개 켜져 있다.

선행 조건(2026-08-15 부여 완료): `/usr/libexec/sshd-keygen-wrapper`에
시스템 설정 → 개인정보 보호 및 보안 → **손쉬운 사용** 권한. 없으면 모든 AX 호출이
`-25211`로 막힌다.

## 절차

```bash
# 1. 상태와 열린 창 확인 — 이 단계를 건너뛰지 말 것
kmsg status --verbose

# 2. (메인 창 외에 채팅 창이 열려 있으면 닫는다)

# 3. 보낼 내용을 파일로 빼서 따옴표 문제를 피한다
kmsg send "" "$(cat /path/msg.txt)"

# 4. 실제로 나갔는지 읽어서 확인
kmsg read "" --limit 1 --json
```

- **`kmsg send`는 성공 후 방 창을 닫는다.** 그래서 직후 `kmsg read`는 창이 없다며 실패한다. 발송 검증은 `kakaocli messages --chat-id ... --key`로 DB를 보거나, 창을 다시 열고 읽는다.
- 방은 이름 substring 또는 `--chat-id`로 지정한다. `kmsg chats --json`로 목록.
- 보내기 전 `--dry-run`으로 수신자를 한 번 확인한다.
- **나와의 채팅은 `나와의 채팅`이 아니라 프로필명 `내 프로필명`으로 지정한다.**
- 처음 보내는 상대이거나 내용이 길면 먼저 `내 프로필명`으로 연습 발송해 서식을 확인한다.

## AI가 보냈다는 표시 (필수)

카톡은 사용자 본인 명의로 나가므로, **대신 보내는 전달·공지·안내성 메시지에는
본문 맨 끝에 서명 한 줄을 붙인다.**

```
— 이 메시지는 사용자을 대신해 AI가 정리해서 보냈습니다
```

사용자가 2026-08-15에 직접 요청했다("디스코드 봇은 그렇게 해주잖아"). 디스코드는
커뮤니티봇 봇 계정이라 이미 드러나지만 카톡은 안 드러난다는 게 이유.
개인 브랜드 콘텐츠(블로그·스레드·링크드인)는 예외.

## 단톡방에 보낼 때

- **진짜 @멘션은 걸 수 없다.** 카톡 멘션은 `@` 입력 시 뜨는 멤버 선택 팝업에서
  골라야 생기고, 자동 입력은 그 팝업 때문에 문장이 깨질 위험이 있다.
  이름을 본문에 나열하는 방식으로 쓰고, 하이라이트가 필요하면 사용자가 직접 단다.
- 여러 명이 읽는 메시지는 **먼저 `내 프로필명`으로 연습 발송해 서식을 확인**하고,
  사용자 승인을 받은 뒤 보낸다.

## 실패하면

| 증상 | 원인과 조치 |
|---|---|
| `[SEARCH_MISS] Search field not found` | 다른 채팅 창이 열려 있다. 닫고 `--refresh-cache` |
| 같은 오류인데 창이 메인 하나뿐 | 방 창이 막 열리는 중이라 AX 캐시가 어긋난 것. **그대로 `--refresh-cache`로 한 번만 재시도하면 나간다**(2026-08-16 실측). 첫 실패로 발송이 안 된 것이 맞는지 `kakaocli messages`로 먼저 확인할 것 |
| `[WINDOW_NOT_READY]` | 같은 원인. `open -a KakaoTalk` 후 재시도 |
| `[BACKGROUND_SAFE_BLOCKED]` | `--background-safe`는 이미 열린 창만 읽는다. 정상 동작 |
| 방을 못 찾음 | `kmsg chats --limit 200 --json`로 이름 확인 |

## 하지 말 것

- **`kmsg harvest`류의 메타데이터 재수집을 실행하지 말 것.** `kakaocli harvest`가
  `~/.kakaocli/metadata.json`의 방 이름을 전부 `(unknown)`으로 덮어쓴 사고가 있었다.
  백업: `~/.kakaocli/backups/`
- AppleScript `keystroke`로 한글을 치지 말 것 — `ㅁㅁㅁ`으로 깨진다. SSH `pbcopy`도
  GUI 페이스트보드에 닿지 않는다.
- **대량 발송·무인 자동응답 봇으로 확장하지 말 것.** 카카오 운영정책에 자동화
  프로그램 이용 제한이 있고 계정 제재 가능성이 있다. 사용자가 2026-08-15에 무인
  자동응답은 돌리지 않겠다고 명시했다.

## 참고

- 읽기 전용 대량 조회·검색이 필요하면 `kakaocli`(DB 직접 복호화)를 쓴다.
  키는 원격 머신 `~/Projects//dashboard/.env`의 `KAKAOCLI_KEY`이며
  `--key`로 넘긴다(환경변수는 읽지 않는다). 절대 출력하지 말 것.
- 전체 배경·폴백(수동 AX 주입)·AppleScript 함정:
  `에이전트 메모`
- 무인 상시 운영이 필요해지면: `에이전트 메모`

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [bam-bam-2](https://github.com/bam-bam-2)
- **Source:** [bam-bam-2/solo-skills](https://github.com/bam-bam-2/solo-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-bam-bam-2-solo-skills-kakaotalk-cli
- Seller: https://agentstack.voostack.com/s/bam-bam-2
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
