{"slug": "show-hn-whatskept-searchable-agent-queryable-whatsapp-history-from-ios-backup", "title": "Show HN: WhatsKept – Searchable,agent-queryable WhatsApp history from iOS backup", "summary": "WhatsKept, a new open-source tool, extracts and decrypts WhatsApp history from iOS backups into a searchable local database that AI coding agents can query directly. The Go-based binary handles backup decryption, message extraction, and optional cloud enrichment for images and voice notes, keeping all data on the user's machine.", "body_md": "Agent-queryable WhatsApp history from an iOS backup, in Go.\n\nA single self-contained binary. Drives iOS backups, decrypts WhatsApp's ChatStorage.sqlite, and feeds it — messages, images, voice notes, and PDF documents — into a searchable SQLite + FTS5 workspace that an agent can query directly.\n\n[What you can ask](#what-you-can-ask)[What this is (and what it isn't)](#what-this-is-and-what-it-isnt)[Screenshots](#screenshots)[Pipeline](#pipeline)[Download](#download)[How this was built](#how-this-was-built)[Privacy](#privacy)\n\nOnce the workspace is built, point an LLM coding agent at the folder (Windsurf, Claude Code, Cursor, VS Code + Copilot,etc …) and ask. A few examples of what becomes possible:\n\n| Use case | Example prompt |\n|---|---|\nFind a photo or voice note you only vaguely remember |\n\"Find the photo Sara sent of a handwritten recipe — I think it had cardamom in it.\" |\nRecover decisions from a busy group chat |\n\"Pull every message in the House Reno group about the kitchen budget and tell me what we landed on.\" |\nRecall a specific fact someone sent you |\n\"What dosage did Dr. Patel say for the antibiotic, and how many days?\" |\nTrack receipts, orders, and tracking numbers |\n\"List every tracking number anyone sent me in the last 6 months and flag the ones I never confirmed.\" |\nSummarize a relationship or thread |\n\"Summarize what my brother and I have talked about this year — what's been on his mind?\" |\nReconstruct a timeline |\n\"Build a timeline of my 2023 — major events, trips, life changes — using only what's in WhatsApp.\" |\nIndex recommendations friends have sent |\n\"List every restaurant, book, and movie friends have recommended in the last 2 years, grouped by category.\" |\n\nWhatsKept is a **data pipeline**, not an AI assistant. Its entire job\nis to take an encrypted iOS backup and turn it into a clean, local,\nagent-friendly workspace on disk.\n\n**What it does**\n\nIt pulls a fresh backup off your iPhone, decrypts WhatsApp's messages, and turns it into one searchable folder on disk — ready for a coding agent to read. Optionally, with your own OpenRouter's API key, it can describe images, transcribe voice notes, and extract text from PDFs so the agent can query them too.\n\n**What it does not do**\n\nIt doesn't chat, summarize, or answer questions on its own — that's the agent's job. Nothing leaves your machine unless you opt in to cloud enrichment, and your iPhone backup is never modified.\n\nThink of it as the **plumbing between your iPhone and your AI agent**\n\nThree tabs, in the order you walk through them:\n\nThe whole idea in one line: WhatsKept turns your encrypted iPhone backup into a plain, local database — then gets out of the way so your agent can read it.\n\n```\nflowchart LR\n    classDef src   fill:#fff7ed,stroke:#fb923c,color:#7c2d12\n    classDef proc  fill:#fef3c7,stroke:#f59e0b,color:#78350f\n    classDef data  fill:#ecfdf5,stroke:#10b981,color:#064e3b\n    classDef agent fill:#f5f3ff,stroke:#8b5cf6,color:#4c1d95\n\n    BK[\"📱 iOS backup\"]:::src --> WK[\"WhatsKept\"]:::proc --> DB[(\"💾 Local database\")]:::data\n    AGENT[\"🤖 Your AI agent\"]:::agent --> DB\n```\n\nEverything stays on your own computer, and the agent you already use does the asking.\n\n**macOS** (Apple Silicon) — recommended, one Terminal command:\n\n```\n/bin/bash -c \"$(curl -fsSL https://github.com/alkait/WhatsKept/releases/latest/download/install.sh)\"\n```\n\nOr [download the app](https://github.com/alkait/WhatsKept/releases/latest/download/WhatsKept-darwin-arm64.app.zip), unzip, and double-click `Install WhatsKept.command`\n\n.\n\n**Windows** (10/11, x64) — [download the app](https://github.com/alkait/WhatsKept/releases/latest/download/WhatsKept-windows-amd64.zip), unzip, and run `whatskept.exe`\n\n.\n\nBuilt in a weekend with\n\nClaude Opus 4.7, burning millions of tokens so you don't have to. Practically every line of code in this repo is AI-generated. I won't pretend I read it line by line — I didn't — but I stood behindevery architecture decision: how the backup is decrypted, where secrets live, what crosses a network boundary, how the workspace is laid out, why the binary ships self-contained. The agent wrote the code; the design, the trade-offs, and the privacy posture are mine.\n\n**The good**\n\n**No telemetry, no analytics, no accounts.** WhatsKept sends none of your data anywhere — the only automatic call is a version check to GitHub when the app opens. Cloud enrichment is the one exception, and it's opt-in (below).**Enrichment is opt-in and cloud-only.** Image*descriptions*, voice*transcription*, and PDF*text extraction*run through cloud AI models (OpenRouter) — they're the features that send the images / voice notes / documents you choose to run off the device.\n\n**What to be cautious about**\n\n**You're keeping a decrypted copy of your entire WhatsApp on your computer.** Even though it stays local, that plaintext database of every message, photo, and voice note is a risk — anyone with access to your machine can read all of it. You own that risk.**Opting in to image, voice, and PDF enrichment sends that content to public AI models.** Every image, voice message, and PDF you run through enrichment is uploaded to a third-party AI provider to be described, transcribed, or read.**Everyday querying also sends your messages to public AI providers.** When you ask your agent a question, it sends the relevant chunks of your WhatsApp history to whatever LLM provider that agent uses.", "url": "https://wpnews.pro/news/show-hn-whatskept-searchable-agent-queryable-whatsapp-history-from-ios-backup", "canonical_source": "https://github.com/alkait/whatskept", "published_at": "2026-06-20 09:20:20+00:00", "updated_at": "2026-06-20 09:37:38.015908+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "ai-tools"], "entities": ["WhatsKept", "OpenRouter", "Claude Opus 4.7", "Windsurf", "Claude Code", "Cursor", "VS Code", "Copilot"], "alternates": {"html": "https://wpnews.pro/news/show-hn-whatskept-searchable-agent-queryable-whatsapp-history-from-ios-backup", "markdown": "https://wpnews.pro/news/show-hn-whatskept-searchable-agent-queryable-whatsapp-history-from-ios-backup.md", "text": "https://wpnews.pro/news/show-hn-whatskept-searchable-agent-queryable-whatsapp-history-from-ios-backup.txt", "jsonld": "https://wpnews.pro/news/show-hn-whatskept-searchable-agent-queryable-whatsapp-history-from-ios-backup.jsonld"}}