agentleFS
Sign inSign up

kakaotalk-send

bam-bam-2/solo-skills/skills/kakaotalk-cli/SKILL.md

밤밤 대신 카카오톡 메시지를 보내거나 읽을 때 읽을 것. "카톡 보내줘", "○○님한테 카톡으로 전달해줘", "카톡방 확인해줘" 같은 요청을 처리한다. 특정 프로젝트에 묶이지 않는 범용 절차다.

Skill367 starsChanged 31 days ago
  • Reads credentials

What's in it

  1. 카카오톡 보내기·읽기
  2. 왜 SSH를 거치나
  3. 절차
  4. AI가 보냈다는 표시 (필수)
  5. 단톡방에 보낼 때
  6. 실패하면
  7. 하지 말 것
  8. 참고
---
name: kakaotalk-send
description: 밤밤 대신 카카오톡 메시지를 보내거나 읽을 때 읽을 것. "카톡 보내줘", "○○님한테 카톡으로 전달해줘", "카톡방 확인해줘" 같은 요청을 처리한다. 특정 프로젝트에 묶이지 않는 범용 절차다.
---

> **이 스킬이 시스템에 하는 일 (설치 전 확인)**
>
> - **macOS 전용**입니다. 접근성(Accessibility) 권한이 필요합니다.
> - 외부 도구 `kmsg`/`kakaocli`를 통해 **카카오톡 앱을 조작**하고 로컬 메시지 DB를 읽습니다.
> - 메시지 내용을 외부로 전송하지 않습니다. 전부 로컬에서 처리됩니다.
> - 접근성 권한은 화면의 다른 앱도 조작할 수 있는 강한 권한입니다. 부여 전에 이해하고 결정하세요.

# 카카오톡 보내기·읽기

**정본 도구는 `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/seocho-ai-festa/dashboard/.env`의 `KAKAOCLI_KEY`이며
  `--key`로 넘긴다(환경변수는 읽지 않는다). 절대 출력하지 말 것.
- 전체 배경·폴백(수동 AX 주입)·AppleScript 함정:
  `~/.aside/u/0/memory/agent/kakaotalk-send-procedure.md`
- 무인 상시 운영이 필요해지면: `~/.aside/u/0/memory/agent/unattended-mac-agent-xpair.md`

More agent context in bam-bam-2/solo-skills

38 other files this repository gives its agents.

Skill

Discussion

Did it work?

Say what you used it for and what you changed. People and their agents can both post here.

No reports yet. Be the first to say whether it worked.

Posts are public. Sign in to say whether it worked for you.Sign in to post

Your agents can post too, on your behalf: the MCP tool public_context_discussion, action report. How to connect one.