Rewisp - See it once. Ask forever.
by•
Rewisp gives your Mac a memory. It reads your screen text on-device and remembers it for you. Catches promises like "I'll send it Friday" and reminds you until it's done. Ask "what changed since Tuesday?" and see exactly what's new. Search by meaning, not just words. Tracks numbers like weight or grades over time. Fills forms from your saved details — never passwords. One quiet 9 PM summary each day. Fully private: screenshots never saved, only text stays on your Mac.


Replies
Rewisp
Rewisp
@tihomiropacic Great question, thanks for asking!
Rewisp stores everything locally on your Mac. Your screen data never leaves your device by default. Only you can see it.
A few privacy controls built in:
You can pause capture any time with a shortcut.
There's a "nuke" option that deletes the last 10 minutes instantly.
Sensitive apps (messaging apps, banking apps, and other personal sites) are hard-coded to never be tracked. You can check this yourself in the code.
You can also manually add any app or website you want excluded.
For the AI reasoning layer, by default it runs locally using Apple's on-device model, so nothing leaves your Mac. If a question needs more power, it can use an engine you pick (Claude, ChatGPT, or Gemini) — but even then, it only sends your question and a few text snippets, never screenshots or your full history.
I built it this way because privacy matters to me too. Happy to answer more questions!
The promise-catching feature is probably the most useful detail here. small commitments like "I'll send it Friday" are exactly the kind of thing that disappears between chats, tabs, and notes, even though they often matter more than the tasks we formally write down.
I also like the privacy model: extracting text, immediately discarding screenshots, and keeping everything in one local SQLite file feels much easier to trust. Curious how Rewisp distinguishes a real commitment from casual language or quoted text without creating too many false reminders :)
Rewisp
@andrasczeizel Thank you for the kind words! Rewisp only listens on surfaces where you're actually writing (Notes, Mail, Slack, never AI chats or ads or random web pages), rejects questions, negations, hedges and marketing-speak, and nothing ever reminds you until you tap to confirm it, so a false positive costs one dismissal rather than a bad reminder.
the promise-catching and "what changed since Tuesday" bits are the sell for me over a plain screenshot recorder. one solo-dev question: months of full screen text in one SQLite file, does that stay fast to search, or do you end up needing to prune/summarize older entries once it's been running a while?
Rewisp
@galdayan Great question, glad the hook landed :)
Short answer: it stays fast, and it's bounded by design so you're not babysitting it.
Why it stays small: text-only + deduped (near-identical frames get dropped before insert), so growth is a few MB/day. Months of use = tens to low-hundreds of MB, not gigabytes.
Keyword search uses FTS5 + bm25 (inverted index) — sub-millisecond no matter how big the DB gets. Never the bottleneck.
Semantic search is brute-force cosine over embeddings right now, but at the retention cap that's ~20-35k rows, so it's still just a few ms. If I ever let history grow unbounded, that's the one piece that'd need a real ANN index (sqlite-vec/HNSW) — but I haven't needed it yet.
And there's built-in pruning: 6-month retention (importance-based, not just clock-based) plus nightly consolidation that folds old sessions into compact summaries. So the DB actually gets leaner and higher-signal over time, not bigger.
Storage math for the curious: text only, ~0.3 MB of screen text a day (a novel every few days). With the search index and semantic vectors it's under 1 MB/day — roughly 150 MB after six months, where it levels off. Old raw captures auto-expire at six months and fold into compact nightly summaries, so it never balloons. No screenshots, ever.
Caught me the moment I told someone I'd send a draft Friday. Searched by meaning and actually found that Slack thread from last week. Quiet little tool, feels right at home on the menu bar.
The on-device text parsing with no screenshot storage is such a thoughtful privacy choice. Love that they figured out how to make it genuinely useful without crossing that line.
Rewisp
@zgurbuzogl23098 Thank you for the kind words :)
Love that it stays on-device and never saves screenshots. One thing I'd really appreciate is a way to exclude specific apps or windows from being read, like when I'm in a video call or working on something sensitive but unrelated to what I want tracked. That kind of granular control would make this feel truly mine.
The semantic search feels surprisingly accurate for just text matching, and catching commitments like "I'll send it Friday" actually held up across a few days. The nightly summary at 9 PM is a nice touch without being noisy.
Rewisp
@yorgan47831 Thank you for the kind words :)
Would love a way to mark something as "do not track" when I'm working on sensitive stuff like medical forms or legal docs. A quick keyboard shortcut to pause Rewisp for 15 or 30 minutes would feel really natural and keep the privacy promise even stronger.
Rewisp
@yasinerhalg3oh Thank you for the kind words!
Pazi
Really exciting to see Rewisp — an ambient memory for your Mac live today. Big congratulations to everyone behind it! 🚀🚀
Rewisp
@zvonimir_sabljic1 Thank you!
Screenshots-never-saved plus everything staying local answers the privacy objection most people would raise first. Curious about the SQLite file itself though: is FileVault the only thing standing between it and a plaintext read, or is there another layer on top?
Rewisp
@vollos
Straight answer: FileVault is the encryption at rest. Rewisp doesn't encrypt the SQLite file itself yet, so a process running as you could read it. On top of that the data folder is chmod 0700 and the local API is token gated, so other accounts and other processes can't get at it.
The layer I lean on most is reduction rather than encryption. Messages, password managers, banking sites and incognito windows fully pause capture, credential shaped text is refused, screenshots are never written at all, and the text expires after about six months. App level encryption is the obvious next step.
@yashmitb Appreciate the straight answer on that, not everyone admits the gap that plainly. Reduction-first tracks with me, you can't leak what never gets captured. Out of curiosity on the app-level step: closer to SQLCipher on the same file, or would that mean rethinking how rows get stored?
Rewisp
@vollos SQLCipher on the same file. Field level encryption is the tempting version but it breaks FTS5, and full text search is the whole retrieval engine, so encrypting the values would mean rebuilding how search works. SQLCipher encrypts at the page level, so the index keeps working and nothing above the storage layer changes.
The real problem is key custody, not storage. A key in the Keychain that unlocks automatically protects a copied file or a backup, but not a process running as you, which is what you were actually asking about. Closing that means gating it behind Touch ID per session, and then deciding what the capture daemon does while the session is locked. That part I have not settled.
@yashmitb Doesn't your reduction rule already answer the locked-session case? Messages and incognito pause capture, so a locked session pausing too is the same move, and the timeline just gets a hole where the lock was. The other shape I've seen for it is making the daemon write-only: each capture gets encrypted with a public key whose private half only exists inside an unlocked Touch ID session, so the daemon keeps capturing but can never read back what it wrote. Costs you indexing until the next unlock, since FTS5 can't see into the sealed rows, which is probably why nobody loves that one either.