kakaotalk-mac

kakaotalk-mac

熱門

在 Apple Silicon macOS 上透過 katok CLI 搜尋本地的 KakaoTalk 對話封存紀錄。

6422星標
735分支
更新於 2026/7/21
SKILL.md
唯讀
名稱
kakaotalk-mac
描述

在 Apple Silicon macOS 上透過 katok CLI 搜尋本地的 KakaoTalk 對話封存紀錄。

KakaoTalk katok 搜尋

此 Skill 的作用

katok CLI 作為唯一的執行介面,將 macOS KakaoTalk 對話紀錄同步至本地封存庫與搜尋索引中,並支援關鍵字 (keyword)、BM25、語意 (semantic) 搜尋以及 chunk 查詢。

本 Skill 雖然保留了既有的 kakaotalk-mac 安裝路徑,但內部運作完全基於 katok。傳送/刪除訊息、UI 自動化、直接讀取 DB、處理驗證快取或解密素材(material)均不屬於本 Skill 的範疇。

隱私規則

  • 請勿透過本 Skill 檢查本地資料庫的內部結構。
  • 請勿直接讀取 KakaoTalk 的 DB 檔案。
  • 請勿處理驗證快取(auth cache)或解密素材(decryption material)。
  • 如需擷取 macOS 實時 KakaoTalk 資料,請使用 katok sync --source macos --json
  • 搜尋命令應優先回傳摘要片段(snippets)與 chunk ID。
  • 僅在使用者明確要求開啟搜尋結果或提供 chunk ID 時,才擷取完整的 chunk 內容。

適用時機

  • 「幫我在 KakaoTalk 裡面搜尋特定關鍵字」
  • 「幫我在 KakaoTalk 找出之前討論過的會議/合約/約定紀錄」
  • 「請幫我開啟這個搜尋結果的 chunk」
  • 「請確認最近的對話是否已同步,然後再進行搜尋」

不適用時機

  • 非 macOS 環境
  • 需要在 Intel Mac 上使用本地 EmbeddingGemma 語意索引時
  • 需要傳送或刪除 KakaoTalk 訊息時
  • 要求直接存取 KakaoTalk DB 檔案、驗證快取或解密素材時
  • 要求串接官方 Kakao 伺服器對伺服器(Server-to-Server)API 時

先決條件

  • Apple Silicon macOS
  • 已安裝 KakaoTalk for Mac
  • 已安裝 Homebrew 或 Cargo
  • 已安裝 katok CLI
  • 目前使用的終端機應用程式已獲取完全磁碟存取權限(Full Disk Access)

安裝 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

工作流程

1. 檢查就緒狀態(不觸發應用程式資料存取提示)

katok doctor --json

檢查 doctor --json 輸出結果中 freshness 區段的最新同步/索引狀態。預設的 doctor 檢查不會執行 macOS app-data 探測(probe),因此適合在不觸發系統權限提示的情況下確認就緒狀態。

2. 必要時開啟 macOS 權限設定

若需要設定完全磁碟存取權限(Full Disk Access),可開啟設定頁面以便使用者手動允許:

katok permissions macos

KakaoTalk UI 自動化並不屬於本 Skill 的範疇;僅在需要進行上游診斷且必須開啟輔助功能(Accessibility)設定頁面時,才執行以下命令:

katok permissions macos --accessibility

3. 僅在需要時執行明確的 macOS 環境診斷

僅在需要確認 KakaoTalk 應用程式安裝狀態、container 或 DB 檔案存取權等 macOS source adapter 狀態時,才執行探測。此命令可能會觸發 macOS 跳出應用程式資料存取權限提示。

katok doctor --macos-probe --json

4. 同步本地 KakaoTalk 對話封存

若最新對話內容至關重要,或者 freshness.recommendation.sync_before_search 數值為 true,請在搜尋前先執行同步:

katok sync --source macos --json

使用設定檔中預設的 source adapter 時:

katok sync --json

5. 建立或更新語意索引

執行語意搜尋(semantic search)前,若 freshness.recommendation.index_before_semantic_search 為 true,或需要將剛同步的內容反映至語意搜尋中,請建立/更新索引:

katok index --json

katok index 預設使用本地端的 embeddinggemma-300m-q4 嵌入模型(embedder)。不需要 Python、Jina、TEI 或額外架設 HTTP embedding 伺服器。

6. 使用最適切且精準的模式進行搜尋

搜尋精確字串、人名、帳號或專有名詞時,優先使用關鍵字搜尋(keyword search):

katok search keyword "搜尋詞" --json

包含多個詞彙的自然語言查詢,請使用 BM25:

katok search bm25 "上週會議資料" --json

記不清確切措辭、需根據文意搜尋時,請使用語意搜尋(semantic search):

katok search semantic "最近討論的報稅時程" --json

7. 僅在必要時擷取特定 chunk

搜尋結果應先以摘要片段(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:查詢同一聊天室中緊鄰前後的微型 chunk(micro chunk)
  • katok chunk parent <chunk-id> --json:查詢語意搜尋的父級視窗(parent window)

僅限合成 QA / 模擬測試

僅在未安裝實際 KakaoTalk、需使用上游 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 端點。

完成標準

  • 若為就緒狀態請求,已彙總 katok doctor --json 的執行結果與 freshness 建議事項。
  • 若為最新對話搜尋請求,已在必要時明確說明是否需要執行 katok sync --source macos --jsonkatok index --json
  • 若為搜尋請求,已說明在 keyword、BM25、semantic 中選擇該模式的原因,並提供 JSON 搜尋結果的摘要。
  • 若為 chunk 查詢請求,僅針對使用者指定之 chunk ID 彙總 katok chunk get/context/parent 的結果。

失敗模式

  • 未安裝 katok 或 Cargo binary PATH 未設定
  • 非 Apple Silicon macOS 環境
  • 未安裝 KakaoTalk for Mac
  • 未授予完全磁碟存取權限(Full Disk Access)
  • katok doctor --macos-probe --json 執行時無法存取 container 或 DB 檔案
  • 尚未執行同步,導致本地封存庫內容空白
  • 語意索引過期或尚未建立
  • 搜尋結果僅憑摘要片段 / chunk ID 不足以回答,需要進一步查詢完整的 chunk

備註

  • 本 Skill 僅供讀取 / 搜尋 / 檢索(read/search/retrieve)使用。
  • 不支援傳送或刪除訊息。
  • 不會直接存取 DB 內部結構、驗證快取(auth cache)或解密素材(decryption material)。
  • 雖然既有的 Skill 名稱為 kakaotalk-mac,但實際執行的 CLI 介面為 katok