Kakaotalk Send logo

Kakaotalk Send

Community
bam-bam-2
kakaotalk-send

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

Overview

Publisherbam-bam-2
Repositorysolo-skills
Skill namekakaotalk-send
Stars
366
Forks
87
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by bam-bam-2 on GitHub. Read the source before you install it.

Installation

Install the Kakaotalk Send AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/bam-bam-2/solo-skills/tree/main/skills/kakaotalk-cli
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/bam-bam-2/solo-skills.git /tmp/solo-skills
mkdir -p .claude/skills
cp -r /tmp/solo-skills/skills/kakaotalk-cli .claude/skills/kakaotalk-send
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Kakaotalk Send in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Kakaotalk Send on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Kakaotalk Send is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

이 스킬이 시스템에 하는 일 (설치 전 확인)

  • 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

Frequently asked questions

What does the Kakaotalk Send AI skill do?

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

Why use Kakaotalk Send on TypingMind?

Because you install it once and use it with any model. Kakaotalk Send is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Kakaotalk Send in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/bam-bam-2/solo-skills/tree/main/skills/kakaotalk-cli. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Kakaotalk Send?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Kakaotalk Send?

As many as you like. As long as a model supports skills, you can use Kakaotalk Send with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Kakaotalk Send AI skill free?

Yes. It is published on GitHub by bam-bam-2 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇