Skip to content
kakaotalk-mac logo

KakaoTalk katok Search

kakaotalk-mac

Search local KakaoTalk archives on Apple Silicon macOS through the katok CLI.

nomadamas/k-skill6.3Kinstalls7.8Kstars

SKILL.md

Full skill instructions

KakaoTalk katok Search

What this skill does

katok CLI๋ฅผ ์œ ์ผํ•œ ์‹คํ–‰ ํ‘œ๋ฉด์œผ๋กœ ์‚ฌ์šฉํ•ด macOS ์นด์นด์˜คํ†ก ๋Œ€ํ™”๋ฅผ ๋กœ์ปฌ ์•„์นด์ด๋ธŒ์™€ ๊ฒ€์ƒ‰ ์ธ๋ฑ์Šค๋กœ ๋™๊ธฐํ™”ํ•˜๊ณ , keyword/โ€‹BM25/โ€‹semantic ๊ฒ€์ƒ‰๊ณผ chunk ์กฐํšŒ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์ด ์Šคํ‚ฌ์€ ๊ธฐ์กด kakaotalk-mac ์„ค์น˜ ๊ฒฝ๋กœ๋ฅผ ์œ ์ง€ํ•˜์ง€๋งŒ ๋‚ด๋ถ€ ๋™์ž‘์€ katok ๊ธฐ๋ฐ˜์ด๋‹ค. ๋ฉ”์‹œ์ง€ ์ „์†ก, ์‚ญ์ œ, UI ์ž๋™ํ™”, ์ง์ ‘ DB ์ฝ๊ธฐ, ์ธ์ฆ ์บ์‹œ ์ฒ˜๋ฆฌ, ๋ณตํ˜ธํ™” material ์ฒ˜๋ฆฌ๋Š” ์ด ์Šคํ‚ฌ์˜ ๋ฒ”์œ„๊ฐ€ ์•„๋‹ˆ๋‹ค.

Privacy Rules

  • Do not inspect local database internals from this skill.
  • Do not directly read KakaoTalk DB files.
  • Do not handle auth caches or decryption material.
  • Use katok sync --source macos --json for live macOS KakaoTalk ingestion.
  • Search commands should return snippets and chunk ids first.
  • Retrieve full chunk content only when the user explicitly asks to open a result or provides a chunk id.

When to use

  • "์นด์นด์˜คํ†ก์—์„œ ํŠน์ • ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ํ•ด์ค˜"
  • "์นดํ†ก์—์„œ ์ง€๋‚œ ํšŒ์˜/๊ณ„์•ฝ/์•ฝ์† ์ด์•ผ๊ธฐ ์ฐพ์•„์ค˜"
  • "์ด ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ chunk๋ฅผ ์—ด์–ด์ค˜"
  • "์ตœ๊ทผ ๋Œ€ํ™”๊ฐ€ ๋ฐ˜์˜๋๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•ด์ค˜"

When not to use

  • macOS๊ฐ€ ์•„๋‹Œ ํ™˜๊ฒฝ
  • Intel Mac์—์„œ ๋กœ์ปฌ EmbeddingGemma semantic index๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ
  • ์นด์นด์˜คํ†ก ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ์‚ญ์ œํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
  • ์นด์นด์˜คํ†ก DB ํŒŒ์ผ, ์ธ์ฆ ์บ์‹œ, ๋ณตํ˜ธํ™” material์„ ์ง์ ‘ ๋‹ค๋ฃจ๋ผ๋Š” ์š”์ฒญ
  • ์„œ๋ฒ„-ํˆฌ-์„œ๋ฒ„ ๊ณต์‹ Kakao API ์—ฐ๋™ ์š”์ฒญ

Prerequisites

  • Apple Silicon macOS
  • KakaoTalk for Mac ์„ค์น˜
  • Homebrew ๋˜๋Š” Cargo
  • katok CLI ์„ค์น˜
  • ํ˜„์žฌ ํ„ฐ๋ฏธ๋„ ์•ฑ์— Full Disk Access ๊ถŒํ•œ

Install katok

Homebrew:

brew tap NomaDamas/โ€‹katok https://github.com/โ€‹NomaDamas/โ€‹katok.git
brew install katok

Cargo:

cargo install katok
export PATH="$HOME/โ€‹.cargo/โ€‹bin:$PATH"

์„ค์น˜ ํ›„ CLI๊ฐ€ ๋ณด์ด๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

katok --help
katok doctor --json

Workflow

1. Check readiness without prompting for app data

katok doctor --json

doctor --json์˜ freshness ์„น์…˜์—์„œ ๋งˆ์ง€๋ง‰ sync/โ€‹index ์ƒํƒœ๋ฅผ ํ™•์ธํ•œ๋‹ค. ์ด ๊ธฐ๋ณธ doctor๋Š” macOS app-data probe๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ถŒํ•œ prompt๋ฅผ ๋„์šฐ์ง€ ์•Š๋Š” ์ค€๋น„ ์ƒํƒœ ์ ๊ฒ€์— ์ ํ•ฉํ•˜๋‹ค.

2. Open macOS permission settings when needed

Full Disk Access ์„ค์ •์ด ํ•„์š”ํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ • ํ™”๋ฉด์„ ์—ฐ๋‹ค.

katok permissions macos

KakaoTalk UI ์ž๋™ํ™”๋Š” ์ด ์Šคํ‚ฌ ๋ฒ”์œ„๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ, upstream ์ง„๋‹จ์„ ์œ„ํ•ด Accessibility ์„ค์ • ํ™”๋ฉด๊นŒ์ง€ ์—ด์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์Œ ๋ช…๋ น์„ ์“ด๋‹ค.

katok permissions macos --accessibility

3. Run explicit macOS setup diagnostics only when needed

์นด์นด์˜คํ†ก ์•ฑ ์„ค์น˜, container, DB ํŒŒ์ผ ์ ‘๊ทผ ๊ฐ™์€ macOS source adapter ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•  ๋•Œ๋งŒ probe๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ์ด ๋ช…๋ น์€ macOS๊ฐ€ app-data ์ ‘๊ทผ prompt๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค.

katok doctor --macos-probe --json

4. Sync local KakaoTalk archives

์ตœ์‹  ๋Œ€ํ™”๊ฐ€ ์ค‘์š”ํ•˜๊ฑฐ๋‚˜ freshness.recommendation.sync_before_search๊ฐ€ true์ด๋ฉด ๊ฒ€์ƒ‰ ์ „์— syncํ•œ๋‹ค.

katok sync --source macos --json

์„ค์ • ํŒŒ์ผ์˜ ๊ธฐ๋ณธ source adapter๋ฅผ ์“ฐ๋Š” ๊ฒฝ์šฐ:

katok sync --json

5. Build or refresh the semantic index

semantic search ์ „ freshness.recommendation.index_before_semantic_search๊ฐ€ true์ด๊ฑฐ๋‚˜ ๋ฐฉ๊ธˆ syncํ•œ ๋‚ด์šฉ์„ semantic ๊ฒ€์ƒ‰์— ๋ฐ˜์˜ํ•ด์•ผ ํ•˜๋ฉด index๋ฅผ ๋งŒ๋“ ๋‹ค.

katok index --json

katok index๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ์ปฌ embeddinggemma-300m-q4 embedder๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Python, Jina, TEI, ๋ณ„๋„ HTTP embedding server๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

6. Search with the narrowest useful mode

์ •ํ™•ํ•œ ๋ฌธ์ž์—ด, ์ด๋ฆ„, ๊ณ„์ขŒ๋ฒˆํ˜ธ, ๊ณ ์œ ๋ช…์‚ฌ๋Š” keyword search๋ฅผ ๋จผ์ € ์“ด๋‹ค.

katok search keyword "๊ฒ€์ƒ‰์–ด" --json

์—ฌ๋Ÿฌ ๋‹จ์–ด๊ฐ€ ์„ž์ธ ์ผ๋ฐ˜ ์งˆ์˜๋Š” BM25๋ฅผ ์“ด๋‹ค.

katok search bm25 "์ง€๋‚œ์ฃผ ๋ฏธํŒ… ์ž๋ฃŒ" --json

ํ‘œํ˜„์ด ์ •ํ™•ํžˆ ๊ธฐ์–ต๋‚˜์ง€ ์•Š๋Š” ์˜๋ฏธ ๊ธฐ๋ฐ˜ ์งˆ์˜๋Š” semantic search๋ฅผ ์“ด๋‹ค.

katok search semantic "์ตœ๊ทผ์— ๋…ผ์˜ํ•œ ์„ธ๊ธˆ ์‹ ๊ณ  ์ผ์ •" --json

7. Retrieve explicit chunks only when needed

๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋Š” ๋จผ์ € snippet๊ณผ chunk id ์ค‘์‹ฌ์œผ๋กœ ์š”์•ฝํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ๊ฒฐ๊ณผ๋ฅผ ์—ด์–ด ๋‹ฌ๋ผ๊ณ  ํ•˜๊ฑฐ๋‚˜ chunk id๋ฅผ ์ œ๊ณตํ–ˆ์„ ๋•Œ๋งŒ ์›๋ฌธ chunk๋ฅผ ์กฐํšŒํ•œ๋‹ค.

katok chunk get <chunk-id> --json
katok chunk context <chunk-id> --json
katok chunk parent <chunk-id> --json
  • katok chunk get <chunk-id> --json: ํ•ด๋‹น chunk ์›๋ฌธ ์กฐํšŒ
  • katok chunk context <chunk-id> --json: ๊ฐ™์€ ์ฑ„ํŒ…๋ฐฉ์˜ ์ง์ „/์งํ›„ micro chunk ์กฐํšŒ
  • katok chunk parent <chunk-id> --json: semantic search parent window ์กฐํšŒ

Synthetic QA only

์‹ค์ œ ์นด์นด์˜คํ†ก ์„ค์น˜ ์—†์ด upstream fixture๋กœ ํ…Œ์ŠคํŠธํ•  ๋•Œ๋งŒ fixture source์™€ deterministic embedder๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

katok sync --source fixture tests/โ€‹fixtures/โ€‹kakao/โ€‹replies.jsonl --json
KATOK_EMBEDDER=local-test katok index --json
KATOK_EMBEDDER=mock katok index --json

์‹ค์‚ฌ์šฉ ๊ฒฝ๋กœ์—์„œ๋Š” fixture, mock embedder, ์›๊ฒฉ embedding endpoint๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

Done when

  • readiness ์š”์ฒญ์ด๋ฉด katok doctor --json ๊ฒฐ๊ณผ์™€ freshness ๊ถŒ์žฅ์‚ฌํ•ญ์„ ์š”์•ฝํ–ˆ๋‹ค.
  • ์ตœ์‹  ๊ฒ€์ƒ‰ ์š”์ฒญ์ด๋ฉด ํ•„์š”ํ•œ ๊ฒฝ์šฐ katok sync --source macos --json๊ณผ katok index --json ์‹คํ–‰ ์—ฌ๋ถ€๋ฅผ ๋ช…ํ™•ํžˆ ํ–ˆ๋‹ค.
  • ๊ฒ€์ƒ‰ ์š”์ฒญ์ด๋ฉด keyword/โ€‹BM25/โ€‹semantic ์ค‘ ์„ ํƒํ•œ ์ด์œ ์™€ JSON ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์š”์•ฝ์„ ์ œ๊ณตํ–ˆ๋‹ค.
  • chunk ์กฐํšŒ ์š”์ฒญ์ด๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ chunk id์— ๋Œ€ํ•ด์„œ๋งŒ katok chunk get/โ€‹context/โ€‹parent ๊ฒฐ๊ณผ๋ฅผ ์š”์•ฝํ–ˆ๋‹ค.

Failure modes

  • katok ๋ฏธ์„ค์น˜ ๋˜๋Š” Cargo binary PATH ๋ˆ„๋ฝ
  • Apple Silicon macOS๊ฐ€ ์•„๋‹˜
  • KakaoTalk for Mac ๋ฏธ์„ค์น˜
  • Full Disk Access ๋ฏธ๋ถ€์—ฌ
  • katok doctor --macos-probe --json์—์„œ container ๋˜๋Š” DB ํŒŒ์ผ ์ ‘๊ทผ ์‹คํŒจ
  • sync ์ „์ด๋ผ local archive๊ฐ€ ๋น„์–ด ์žˆ์Œ
  • semantic index๊ฐ€ ์˜ค๋ž˜๋˜์—ˆ๊ฑฐ๋‚˜ ์•„์ง ์ƒ์„ฑ๋˜์ง€ ์•Š์Œ
  • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ snippet/โ€‹chunk id๋งŒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•„ ๋ช…์‹œ์  chunk ์กฐํšŒ๊ฐ€ ํ•„์š”ํ•จ

Notes

  • ์ด ์Šคํ‚ฌ์€ read/โ€‹search/โ€‹retrieve ์ „์šฉ์ด๋‹ค.
  • ๋ฉ”์‹œ์ง€ ์ „์†ก๊ณผ ์‚ญ์ œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • DB ๋‚ด๋ถ€ ๊ตฌ์กฐ, auth cache, decryption material์€ ์ง์ ‘ ๋‹ค๋ฃจ์ง€ ์•Š๋Š”๋‹ค.
  • ๊ธฐ์กด ์„ค์น˜ ์ด๋ฆ„์€ kakaotalk-mac์ด์ง€๋งŒ ์‹คํ–‰ ํ‘œ๋ฉด์€ katok์ด๋‹ค.

More skills from nomadamas

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgรคnger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View