alkait/WhatsKept
GitHub: alkait/WhatsKept
一款用 Go 编写的单二进制工具,从 iOS 备份中解密 WhatsApp 聊天数据并构建本地可搜索的 SQLite + FTS5 工作区,供 AI Agent 直接查询。
Stars: 4 | Forks: 0
WhatsKept
使用 Go 语言开发的工具,可从 iOS 备份中提取供 Agent 查询的 WhatsApp 历史记录。 这是一个单一的自包含二进制文件。它会驱动 iOS 备份流程,解密 WhatsApp 的 ChatStorage.sqlite,并将其内容——包括消息、图片、语音备忘录和 PDF 文档——注入到一个可搜索的 SQLite + FTS5 工作区中,供 Agent 直接 查询。 ## 目录 - [你可以询问的内容](#what-you-can-ask) - [项目定位(是什么与不是什么)](#what-this-is-and-what-it-isnt) - [截图](#screenshots) - [处理流程](#pipeline) - [下载](#download) - [构建方式](#how-this-was-built) - [隐私](#privacy) ## 你可以询问的内容 工作区构建完成后,将 LLM 编程 Agent(如 Windsurf、Claude Code、Cursor、VS Code + Copilot 等……)指向该文件夹 并进行提问即可。以下是一些 现在可以实现的使用场景示例: | 使用场景 | 示例提示词 | | --- | --- | | **查找你只有模糊记忆的照片或语音备忘录** | *"找到 Sara 发的那张手写食谱照片——我记得里面好像有豆蔻。"* | | **从繁忙的群聊中恢复决策** | *"提取 House Reno 群里所有关于厨房预算的消息,并告诉我我们最终决定了什么。"* | | **回想别人发给你的某个具体事实** | *"Patel 医生说的抗生素剂量是多少,要吃几天?"* | | **追踪收据、订单和物流单号** | *"列出过去 6 个月内任何人发给我的所有物流单号,并标出我从未确认过的那些。"* | | **总结一段关系或对话线程** | *"总结一下我和我哥哥今年都聊了些什么——他一直在想什么?"* | | **重建时间线** | *"用 WhatsApp 里的内容,为我构建一个 2023 年的时间线——包括重大事件、旅行和生活变化。"* | | **索引朋友发送的推荐内容** | *"列出朋友过去 2 年推荐过的所有餐厅、书籍和电影,并按类别分组。"* | ## 项目定位(是什么与不是什么) WhatsKept 是一个**数据管道**,而不是 AI 助手。它的全部工作 是获取加密的 iOS 备份,并将其转化为磁盘上一个干净的、本地化的、 对 Agent 友好的工作区。 **它能做什么** 它从你的 iPhone 提取最新的备份,解密 WhatsApp 的消息,并将其转化为磁盘上一个可搜索的文件夹——已准备好供编程 Agent 读取。借助你自己的 OpenRouter API key,它还可以选择性地描述图片、转录语音备忘录,以及从 PDF 中提取文本,以便 Agent 也能对这些内容进行查询。 **它*不能*做什么** 它本身不能聊天、总结或回答问题——那是 Agent 的工作。除非你主动开启云端增强功能,否则任何数据都不会离开你的 机器,并且你的 iPhone 备份永远不会被修改。 你可以把它看作是**连接你的 iPhone 与 AI Agent 的管道设施** ## 截图 包含三个选项卡,按你的操作顺序排列如下: | 1. 备份 | 2. 数据库 | 3. Agent | | :---: | :---: | :---: | | [](docs/screenshots/backup_tab.png) | [](docs/screenshots/database_tab.png) | [](docs/screenshots/agent_tab.png) | | 通过 USB 驱动最新的 iOS 备份——无需离开应用。 | 解密 `ChatStorage.sqlite`,描述图片,转录语音备忘录,提取 PDF。每个阶段都是可选的,且支持恢复进度。 | 在 Windsurf、VS Code、Cursor、Claude Code 或 Terminal 中打开准备好的工作区。 | ## 处理流程 核心思想用一句话概括:WhatsKept 将你加密的 iPhone 备份转化为一个普通的本地数据库——然后退居幕后,让你的 Agent 可以读取它。 ``` flowchart LR classDef src fill:#fff7ed,stroke:#fb923c,color:#7c2d12 classDef proc fill:#fef3c7,stroke:#f59e0b,color:#78350f classDef data fill:#ecfdf5,stroke:#10b981,color:#064e3b classDef agent fill:#f5f3ff,stroke:#8b5cf6,color:#4c1d95 BK["📱 iOS backup"]:::src --> WK["WhatsKept"]:::proc --> DB[("💾 Local database")]:::data AGENT["🤖 Your AI agent"]:::agent --> DB ``` 一切数据都保留在你自己的计算机上,由你平时使用的 Agent 进行提问。 ## 下载 **macOS** (Apple Silicon) —— 推荐,只需一条 Terminal 命令: ``` /bin/bash -c "$(curl -fsSL https://github.com/alkait/WhatsKept/releases/latest/download/install.sh)" ``` 或者[下载应用程序](https://github.com/alkait/WhatsKept/releases/latest/download/WhatsKept-darwin-arm64.app.zip),解压后双击 `Install WhatsKept.command`。 **Windows** (10/11, x64) —— [下载应用程序](https://github.com/alkait/WhatsKept/releases/latest/download/WhatsKept-windows-amd64.zip),解压并运行 `whatskept.exe`。 ## 构建方式 ## 隐私 **优势** - **无遥测、无分析、无账户。** WhatsKept 不会将你的任何数据发送到任何地方——应用打开时唯一的自动调用是向 GitHub 检查版本更新。云端增强是唯一的 例外,且属于主动开启的选项(详见下文)。 - **数据增强是可选的且仅限云端。** 图片*描述*、语音 *转录*和 PDF *文本提取*通过云端 AI 模型 (OpenRouter) 运行——这些功能会将你选择处理的 图片 / 语音备忘录 / 文档发送到设备之外。 **需要注意的风险** - **你会在计算机上保留一份完整 WhatsApp 数据的解密副本。** 即使它完全保留在本地,这个包含所有 消息、照片和语音备忘录的明文数据库也是一种风险——任何 能访问你机器的人都可以读取其中的所有内容。你需要自己承担这种风险。 - **选择开启图片、语音和 PDF 增强功能,会将这些内容发送至 公共 AI 模型。** 你通过 增强功能处理的每一张图片、语音消息和 PDF 都会被上传到第三方 AI 提供商进行 描述、转录或读取。 - **日常查询也会将你的消息发送至公共 AI 提供商。** 当你向 Agent 提问时,它会将你 WhatsApp 历史记录中的相关片段 发送给该 Agent 使用的 LLM 提供商。标签:AI智能体, EVTX分析, Go语言, iOS备份, SQLite, WhatsApp, 代码示例, 信息检索, 数据分析, 数据提取, 日志审计, 程序破解