kmsg CLI
An unofficial CLI and MCP server for KakaoTalk on macOS: the agent reads chats and sends messages through the app interface
- 281 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- Reads your personal and work chats and sends messages and images in your name
- Requires macOS Accessibility access, meaning control of other apps' windows
- Automation may lead to an account restriction under the service's rules, and the author places responsibility on the user
Install
- Works in
Manual install
brew install channprj/tap/kmsgThe main program. Update with `kmsg update`. After installing run `kmsg status` and grant Accessibility access.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Reads your personal and work chats and sends messages and images in your name
- Requires macOS Accessibility access, meaning control of other apps' windows
- Automation may lead to an account restriction under the service's rules, and the author places responsibility on the user
This is third-party code. Review the repository files before installing.
What it does
kmsg controls the KakaoTalk app on a Mac through the macOS Accessibility API rather than the private LOCO protocol. The Swift program finds the chat list, message area and input box in the window and interacts with them as a user would. Where keyboard and mouse input is needed, it is simulated with `CGEvent`. Commands print structured JSON to `stdout` and trace logs to `stderr`. `kmsg chats` lists conversations and assigns each a local `chat_id`, `kmsg read` returns recent messages, `kmsg watch` follows new ones, and `kmsg send` and `send-image` send text and images. `send` has a `--dry-run` mode. The `kmsg mcp-server` command starts an MCP server over stdio with tools for reading, sending text and sending images. The repository also ships a `kmsg` skill for Claude Code and Codex. It fixes the working order: find the conversation in JSON, read by a stable `chat_id`, show the recipient and text in dry-run before sending, and send only on an explicit request. The project's README is in Korean with an English version alongside.
Who it is for. For Mac users with KakaoTalk who want to read chats and reply from scripts and AI agents, mainly in Korean-speaking settings.
Good fit when
- The agent should summarize the latest 20 messages of a work chat by a stable conversation id
- You need to follow new messages with `kmsg watch` and pass them to OpenClaw or another script
- You need an MCP server for KakaoTalk so the agent can read conversations and send text and images
- You want to check who gets what with `--dry-run` before a real send
- You want to install the skill with a single `npx skills add` command for Claude Code and Codex
Not a fit when
- You have no Mac with macOS 13 or newer and the KakaoTalk app for macOS: it does not work on Windows, Linux, Android or iOS
- You cannot grant the program Accessibility access: without it the program cannot see the window
- You need to run on a server without a graphical session: control goes through the KakaoTalk app window
- You need a guarantee that the account will not be restricted: the author leaves compliance with the service's rules to the user
Example request
/kmsg Summarize the last 10 messages from the "출시 준비" chatLimitations
You need macOS 13 or newer, the installed KakaoTalk for macOS and Accessibility permission for the `kmsg` binary itself. `kmsg status` asks for the permission and checks whether you are signed in.
The project is unofficial and unaffiliated with Kakao Corp. The author warns that responsibility for account restrictions, malfunctions and data loss lies with the user, and that the service's terms and company security policy must be followed. The KakaoTalk interface changes and some element paths may stop working; a self-healing path cache covers this.
`send-image` has no dry-run mode, so the skill requires both a clear recipient and an explicit request to send. The main README is in Korean.
How to disable. Remove the program with `brew uninstall kmsg`, delete `kmsg` from the client's MCP settings and revoke its permission in the Accessibility section of System Settings. The skill is removed from the agent's skills directory.
FAQ
How do I install kmsg for Claude Code?
First install the program with `brew install channprj/tap/kmsg`. Then run `npx skills add channprj/kmsg --skill kmsg --agent claude-code codex -g -y`. In Claude Code the skill is called as `/kmsg`, in Codex as `$kmsg`. If the skill is not visible, restart the agent session.
Why does kmsg work through the interface and not the KakaoTalk protocol?
The author chose macOS Accessibility because the program then connects to no KakaoTalk servers and does not use the private LOCO protocol. The price is a dependency on how the window looks: if the interface changes, some paths have to be found again.
Can I check a message before sending it?
For text, yes: `kmsg send "chat name" "text" --dry-run` shows what would go to whom. `send-image` has no such mode.
Which tools does the MCP server provide?
The `kmsg mcp-server` command starts MCP over stdio with tools for reading, sending text and sending images. For OpenClaw the repository has an example, `docs/openclaw.mcp.example.json`.
What do I need for kmsg to work?
A Mac with macOS 13 or newer, KakaoTalk for macOS and Accessibility permission for the `kmsg` binary. The first `kmsg status` asks for the permission and launches KakaoTalk if needed.
Discussion
No questions or reviews yet.
Related
CLI toolsA macOS CLI and MCP server: screenshots, accessibility-based UI inspection and app control via clicks and typing
A Swift MCP server that lets an agent drive any macOS app: click, type and read the interface tree
Open Computer Use
open-computer-use
An open MCP server for desktop control: the agent reads app state and clicks, types and scrolls on macOS, Linux and Windows
An MCP server in a single Go binary: more than 75 local tools for files, shell, browser, calendar and scheduled tasks
An MCP channel that passes WeChat messages into a Claude Code session and sends the agent's replies back to the same chat
Discord MCP by cappyeo: a server with 200+ tools
Discord MCP (cappyeo)
A Discord MCP with over 200 typed tools: the agent handles messages, roles and moderation, builds a server from a plan, and writes default to preview mode
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| kmsg (this entry) | no | 281 | ||
| WhatsApp MCP Server | no | not required | 6,758 | an MCP server for personal WhatsApp rather than KakaoTalk on macOS |
| Claude Code WeChat Channel | no | OAuth | 312 | relays WeChat messages into a Claude Code session and back |
README in short
The Korean README opens with a disclaimer about the project's unofficial status and a description of the AX-based architecture. It follows with a demo, user reviews, features, requirements, Homebrew install, a quick start, skill installation and an FAQ.