| name | kakaotalk-mac |
| description | Search local KakaoTalk archives on Apple Silicon macOS through the katok CLI. |
| license | MIT |
| metadata | {"category":"messaging","locale":"ko-KR","phase":"v2"} |
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์ด๋ค.