<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kakaotalk on ICE-ICE-BEAR-BLOG</title><link>https://ice-ice-bear.github.io/tags/kakaotalk/</link><description>Recent content in Kakaotalk on ICE-ICE-BEAR-BLOG</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Fri, 03 Apr 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://ice-ice-bear.github.io/tags/kakaotalk/index.xml" rel="self" type="application/rss+xml"/><item><title>k-skill: A Korean-Specific Skill Collection for Claude Code</title><link>https://ice-ice-bear.github.io/posts/2026-04-03-k-skill-korean-claude-code/</link><pubDate>Fri, 03 Apr 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/posts/2026-04-03-k-skill-korean-claude-code/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post k-skill: A Korean-Specific Skill Collection for Claude Code" /&gt;&lt;h2 id="overview"&gt;Overview
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/NomaDamas/k-skill" target="_blank" rel="noopener"
 &gt;k-skill&lt;/a&gt; is an open-source curated skill collection for Claude Code built specifically for Korean users, maintained by NomaDamas. With 1,371 GitHub stars and 113 forks, the project covers tasks that are deeply embedded in Korean daily life — booking SRT and KTX trains, checking KBO baseball scores, sending KakaoTalk messages, processing HWP documents, and looking up fine dust air quality.&lt;/p&gt;
&lt;p&gt;It supports Claude Code, Codex, OpenCode, and OpenClaw/ClawHub. No additional client API layer is required: skills either run directly or route through the &lt;code&gt;k-skill-proxy&lt;/code&gt; server with plain HTTP requests.&lt;/p&gt;
&lt;h2 id="architecture-how-k-skill-integrates-with-claude-code"&gt;Architecture: How k-skill Integrates with Claude Code
&lt;/h2&gt;&lt;p&gt;The diagram below shows the full integration flow from user intent to skill execution.&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart TD
 User["User"] --&gt; CC["Claude Code &amp;lt;br/&amp;gt; (AI Agent)"]
 CC --&gt; Skills["k-skill Collection"]

 Skills --&gt; Auth["Skills Requiring Auth"]
 Skills --&gt; NoAuth["No Auth Required"]
 Skills --&gt; Proxy["Proxy-Routed Skills"]

 Auth --&gt; SRT["SRT Booking"]
 Auth --&gt; KTX["KTX Booking"]
 Auth --&gt; Toss["Toss Securities"]

 NoAuth --&gt; KBO["KBO Game Results"]
 NoAuth --&gt; Lotto["Lotto Check"]
 NoAuth --&gt; HWP["HWP Document Processing"]
 NoAuth --&gt; Zip["Postal Code Search"]
 NoAuth --&gt; KakaoTalk["KakaoTalk Mac CLI"]
 NoAuth --&gt; Delivery["Package Tracking"]

 Proxy --&gt; Subway["Seoul Subway Arrivals"]
 Proxy --&gt; Dust["Fine Dust &amp;lt;br/&amp;gt; PM10 &amp;amp; PM2.5"]
 Proxy --&gt; Coupang["Coupang Product Search"]
 Proxy --&gt; Law["Korean Law Search"]

 Proxy --&gt; ProxySrv["k-skill-proxy &amp;lt;br/&amp;gt; (self-hosted)"]&lt;/pre&gt;&lt;h2 id="complete-skill-inventory"&gt;Complete Skill Inventory
&lt;/h2&gt;&lt;p&gt;k-skill currently ships 18 distinct skills across five domains.&lt;/p&gt;
&lt;h3 id="transportation"&gt;Transportation
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Skill&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;th&gt;Auth&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;SRT Booking&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Search, reserve, confirm, cancel SRT trains&lt;/td&gt;
 &lt;td&gt;Required&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;KTX Booking&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Full Korail booking with Dynapath anti-bot helper&lt;/td&gt;
 &lt;td&gt;Required&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Seoul Subway Arrivals&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Real-time arrival info per station via k-skill-proxy&lt;/td&gt;
 &lt;td&gt;Proxy URL&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="daily-life"&gt;Daily Life
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Skill&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;th&gt;Auth&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Fine Dust&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;PM10/PM2.5 by current location or region fallback&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Postal Code Search&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Official Korea Post zipcode lookup by address keyword&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Package Tracking&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;CJ Logistics and Korea Post official tracking&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Blue Ribbon Restaurants&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Nearby Blue Ribbon Survey-rated restaurants&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Nearby Bars&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;KakaoMap-based bar info with hours, menu, seats, phone&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Daiso Product Search&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;In-store inventory check at specific Daiso branches&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Used Car Prices&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;SK Rent-a-Car Tago BUY snapshot for purchase price and monthly lease&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="sports-and-entertainment"&gt;Sports and Entertainment
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Skill&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;th&gt;Auth&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;KBO Game Results&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Schedule, scores, and team filters by date&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;K League Results&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;K League 1 and 2 results, standings&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Lotto Check&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Latest draw results and number matching&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="work-and-documents"&gt;Work and Documents
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Skill&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;th&gt;Auth&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;HWP Document Processing&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.hwp&lt;/code&gt; to JSON/Markdown/HTML, image extraction&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Korean Law Search&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Statutes, court decisions, official interpretations&lt;/td&gt;
 &lt;td&gt;Local only&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;KakaoTalk Mac CLI&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Read, search, and send KakaoTalk messages on macOS&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="shopping-and-finance"&gt;Shopping and Finance
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Skill&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;th&gt;Auth&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Coupang Product Search&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Rocket Delivery filter, deals, price range via coupang-mcp&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Toss Securities&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Account summary, portfolio, prices, orders via tossctl&lt;/td&gt;
 &lt;td&gt;Required&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="deep-dive-kakaotalk-mac-cli"&gt;Deep Dive: KakaoTalk Mac CLI
&lt;/h2&gt;&lt;p&gt;The KakaoTalk skill stands out as a particularly creative integration. It wraps &lt;code&gt;kakaocli&lt;/code&gt;, a macOS-only CLI tool, allowing Claude Code to read conversation history and send messages directly from the terminal.&lt;/p&gt;
&lt;h3 id="prerequisites"&gt;Prerequisites
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install silver-flight-group/tap/kakaocli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The terminal application must have &lt;strong&gt;Full Disk Access&lt;/strong&gt; and &lt;strong&gt;Accessibility&lt;/strong&gt; permissions granted in System Settings. Without Full Disk Access, even read commands will fail. Without Accessibility, send and harvest automation will not work.&lt;/p&gt;
&lt;p&gt;If KakaoTalk for Mac is not installed, &lt;code&gt;mas&lt;/code&gt; handles that too:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install mas
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mas account
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mas install &lt;span class="m"&gt;869223134&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="key-commands"&gt;Key Commands
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Verify permissions and DB access first&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kakaocli status
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kakaocli auth
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# List recent conversations&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kakaocli chats --limit &lt;span class="m"&gt;10&lt;/span&gt; --json
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Read recent messages from a specific chat&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kakaocli messages --chat &lt;span class="s2"&gt;&amp;#34;Jisoo&amp;#34;&lt;/span&gt; --since 1d --json
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Search across all conversations&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kakaocli search &lt;span class="s2"&gt;&amp;#34;meeting&amp;#34;&lt;/span&gt; --json
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Test send to yourself (safe)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kakaocli send --me _ &lt;span class="s2"&gt;&amp;#34;test message&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Dry-run to preview without sending&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kakaocli send --dry-run &lt;span class="s2"&gt;&amp;#34;Team Announcements&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Meeting at 3pm today&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The safety design is worth noting. The skill workflow mandates a &lt;code&gt;--dry-run&lt;/code&gt; preview before sending to anyone other than yourself, and actual dispatch requires explicit user confirmation. This prevents the AI agent from autonomously firing off messages — a sound default for any messaging automation.&lt;/p&gt;
&lt;h2 id="installation-flow"&gt;Installation Flow
&lt;/h2&gt;&lt;p&gt;The standard setup follows three steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Follow &lt;code&gt;docs/install.md&lt;/code&gt; to install all skills (Node.js and Python packages are both involved; global install is the default)&lt;/li&gt;
&lt;li&gt;Run the &lt;code&gt;k-skill-setup&lt;/code&gt; skill to verify credentials and environment variables&lt;/li&gt;
&lt;li&gt;Read each feature doc to understand expected inputs, examples, and limitations&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Skills that require authentication (SRT, KTX, Toss Securities) follow a documented credential resolution order defined in &lt;code&gt;docs/setup.md&lt;/code&gt;. Secret storage rules and prohibited patterns are captured in &lt;code&gt;docs/security-and-secrets.md&lt;/code&gt;, with standardized environment variable names to avoid conflicts.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;k-skill-proxy&lt;/code&gt; is a self-hostable proxy server for skills that need to reach public APIs (Seoul subway, fine dust, Coupang, Korean law). The proxy removes the need to configure API keys on the client side for those services.&lt;/p&gt;
&lt;h2 id="why-k-skill-matters"&gt;Why k-skill Matters
&lt;/h2&gt;&lt;p&gt;The core problem k-skill addresses is straightforward: Korea&amp;rsquo;s internet ecosystem runs on a parallel set of platforms — KakaoTalk instead of iMessage or Slack, Korail and SRT instead of Amtrak, HWP files instead of Word or Google Docs, Coupang instead of Amazon. Global AI tooling is built around global services. None of these Korean platforms get first-class support out of the box.&lt;/p&gt;
&lt;p&gt;k-skill fills that gap by packaging the knowledge of how to interact with each of these Korean-specific surfaces into reusable Claude Code skills. The approach is deliberately pragmatic: where a reliable MCP server exists (like &lt;code&gt;coupang-mcp&lt;/code&gt; or &lt;code&gt;korean-law-mcp&lt;/code&gt;), k-skill routes through it. Where it does not, the skill talks to official public interfaces directly or through a proxy.&lt;/p&gt;
&lt;p&gt;The project itself is a solid piece of open-source engineering — multi-runtime (JavaScript + Python + Shell), versioned with npm Changesets, CI/CD on GitHub Actions, and a clear separation between skill logic and secret management. For Korean developers working with Claude Code, it is the most practical starting point for automating the parts of daily life that generic AI agents simply cannot reach.&lt;/p&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a class="link" href="https://github.com/NomaDamas/k-skill" target="_blank" rel="noopener"
 &gt;NomaDamas/k-skill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Stars: 1,371 | Forks: 113&lt;/li&gt;
&lt;li&gt;Primary language: JavaScript (Python and Shell also present)&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>