
Keepr
WhatsApp-native memory · 2026You save links, notes and screenshots in a dozen places and never find them again. Keepr is one WhatsApp number: send it anything to save, then ask for it back in plain words. Text it, forward it, or just talk: voice notes become searchable text.
# numbers
HF calls per recall
1
down from 2, rules route
shorthand recall
+0.244
avg cosine · wfh, eod, pto
tests
319
network blocked in tests
media stored
0
voice → text, audio dropped
# how it works
WhatsAppwebhook
Dedupeclaim message ID
routerRouterrules, no model call
save
Transcribevoice notes only
Embed + storeAtlas, offers reminders
recall
Vector searchper-user pre-filter
Extract answerrules, quotes source
commands
remind · recaplist · export
delete + undosoft delete, 10 min
One number, three paths. Only the paths that need understanding call a model.rule-based routing
# in chat
What it looks like. No app, no commands to learn. Just WhatsApp.
Office wifi password is sunflower4210:42
Saved ✅10:42
Text, links, photos, forwards. Send it and it's kept.
what's the wifi password?18:05
↪︎ Office wifi password is sunflower42👉 sunflower4218:05
Pulls out exactly what you asked for (a password, link, date or place) and quotes where it came from.
🎙️ voice note 0:0809:14
Saved ✅ 🎙️ "call the plumber on monday about the leak"09:14
laterwhat did I say about the plumber20:31
↪︎ 🎙️ voice noteCall the plumber on Monday about the leak20:31
Talk instead of typing. The words are saved, and the recording is never stored.
dentist moved to 4pm thursday13:02
Saved ✅ Want a reminder Thu, Nov 5, 4:00 PM? Reply yes.13:02
yes13:02
Got it! I'll remind you Thu, Nov 5, 4:00 PM: dentist moved to 4pm thursday13:03
Mention a date and Keepr offers to remind you.
# decisions
Rules, not a model, for routingA classifier cost a model call on every message. Rules are free, and the bot keeps working when credits run out.
Extract the answer, don't generate itRecall pulls the exact password, link or date out of the saved message and quotes it. No made-up answers.
Claim before processingWhatsApp retries webhooks. Claiming each message ID first means a retry never costs a second reply.
Pre-filter by userVector search only looks inside one user's memories, so results stay private and fast.
# stack
NestJSTypeScriptMongoDB AtlasAtlas Vector SearchWhatsApp Cloud APIHugging Face (embeddings, summaries, Whisper)chrono-nodeJestGitHub ActionsVercel