Local-first · Gemini-powered

Your screen becomes
structured memory.

Recall watches your Mac, OCRs every frame in memory, and proposes tasks before you ask. No screenshots written to disk. Cloud AI only when you opt in with your own Gemini key.

100%
On-device OCR
0
Screenshots written
1
API key — yours
AGPL
Source license

The pipeline

Capture, read,
remember.

A small Swift daemon samples every display, deduplicates with perceptual hashes, runs Apple Vision OCR in-memory, and only then hands the extracted text to Gemini. Your Mac stays the source of truth.

  • Perceptual-hash dedup — only changed frames flow downstream
  • Apple Vision on-device OCR — pixels never leave the Mac
  • Gemini structured extraction — JSON tasks, not chat blobs
  • Local SQLite vault — replayable, exportable, deletable
pipeline.swift
// runs every 4s, headless
capture(displays)
  .dedup(pHash) // drop ~92%
  .ocr(VNRecognizeText)
  .extract(Gemini)
  .into(Inbox)

// nothing written to disk except
// the extracted text vault.
Daemon idle — 24 MB RSS · 0.4% CPU avg

Built for focus

Everything you missed,
already filed.

Screen capture pipeline

Samples every display, deduplicates with perceptual hashes, OCRs in memory, proposes structured tasks via Gemini.

daemon runningpid 3841
captureall displays sampled4s
deduppHash diff — 92% droppedfast
ocrApple Vision in-memoryon-device
extractGemini → structured JSONcloud
vaultSQLite — text only, no pixelslocal
24 frames/min~0.4% CPU0 files written

Recently proposed

Spec the token refresh endpoint

Recall v2

Fix playwright selector on results page

Ontracker

Add export to markdown command

Recall v2

Smart inbox

AI-proposed tasks surface here. Approve or dismiss in bulk.

Finish OCR pipeline tests
Update README with daemon flags
Review PR #12 — vault schema
Add Gemini retry on 429

Kanban board

Linear-style board with status columns and focus pins.

Todo
Vault export
Token refresh
In Progress
OCR pipeline
Done
Daemon API
Auth layer

Local OCR

Apple Vision on-device. Pixels never leave your Mac.

conf98.4%
words312 extracted
tasks3 proposed

Memory engine

Gemini builds a living profile — facts, patterns, context.

Projectrecall-hackathon
Peak hours9 am – 1 pm
Main langsSwift · TypeScript
Last activeOCR pipeline

Gemini assistant

Chat with your vault directly. Bring your own API key.

gemini · recall-vault
What did I work on today?
3h on the OCR pipeline, 2 PRs reviewed, and you opened a vault export issue.
Any blockers?
Gemini 429 on burst — retry with backoff is next.

Run it locally

The daemon lives on
your machine.

This site is the landing page — Recall itself is open source and runs locally. Clone the repo, start the daemon, and connect the tracker.

github.com/Clupai8o0/recall-hackathon
01Clone

Pull the monorepo

$ git clone
  https://github.com/Clupai8o0/
  recall-hackathon.git
$ cd  recall-hackathon
02Start the daemon

Swift, headless

$ cd daemon
$ export GEMINI_API_KEY=...
$ swift run RecallDaemon

# copy the rk_… token printed
03Connect the UI

Open the tracker

$ cd apps/web
$ npm install
$ npm run dev

# open localhost:3000/app
# paste the token to connect

Ready to recall?

Start the daemon on your Mac, paste the token, and let the web tracker do the rest.