Inspiration

Meeting someone is easy; remembering the detail that makes the next conversation thoughtful is harder. Names, projects, social handles and small promises disappear between events. I built Recall to bring that context back before a meeting, with the original quote beside every claim.

What it does

Recall is a standalone local web app built on real conversations recorded by my physical Bee device. It extracts people cards from explicit introductions, saves spoken social handles as tappable links, and detects promises with source quotes and due hints. Searching ‘who is [name]?’ returns a short sourced brief. Pre-meeting mode brings the same context into a meeting workflow. Ask searches Bee first and returns retrieved quotes, or says ‘I don’t have that.’

It never searches social platforms or guesses profiles from names. If someone only mentions LinkedIn without a handle, Recall saves the mention with no invented link. Possible identity matches require confirmation; generic speaker labels never silently merge people.

How I built it

The frontend uses React, Vite, TypeScript, Tailwind, Motion, Geist and Phosphor. A Node/Express backend and TypeScript ingest worker share a local SQLite database in data/private/. Rule-based extraction runs locally, with no third-party LLM receiving transcripts. The interface uses warm paper, large type, restrained gold accents and a pointer-reactive background, with static touch and reduced-motion fallbacks.

Bee is called at runtime: a long-running bee stream worker listens for updates, fetches full conversations and processed transcripts through the CLI, and stores sourced records. Startup and periodic paginated backfill recover missed events. Ask calls Bee search first. Facts and location endpoints were probed, but unattributed facts and private address/coordinate data are not attached to people cards. The local bee proxy supports the implemented todo POST/PUT path for confirmed ‘I owe’ promises.

What worked and what is still limited

Live Bee retrieval stored four real conversations. A self-recorded introduction produced a person card, a spoken handle, a sourced brief and an unresolved promise. Actual stream conversation updates and an utterance update arrived while the integrated worker ran; the new conversation appeared in SQLite and the UI. Live Ask returned a Bee-search source. All 34 automated tests and the production build pass. Public screenshots use explicitly labelled invented fixtures.

The observed real recordings used Unknown speaker labels. Recall refuses to infer which speaker is me, marks attribution as unconfirmed and leaves promise direction unresolved. Real Bee todo creation/completion is therefore not claimed; that path is covered by automated contract tests, while the live proxy read succeeded. The small sample is not an accuracy benchmark.

Challenges and what I learned

The live transcript nesting and spoken_at timestamps differed from initial assumptions. Stream delivery is at most once, so recovery and concurrent-update handling matter. Names can be mistranscribed, and useful memory must expose its evidence and accept corrections. Process shutdown also required terminating the owned Bee process group. These findings shaped conservative extraction, explicit wearer selection, source quotes, correction persistence and visible sync failures.

Privacy

Recall’s database stays on this computer: no analytics, cloud database or third-party LLM extraction. Bee still processes and stores its own upstream data. Forget person deletes containing local conversations and derived details, including shared records, and blocks re-ingestion; it does not delete Bee originals or Bee todos. Export downloads local JSON. No real transcripts, tokens, raw dumps or other people’s private details are committed. Only consenting people and agreed details belong in the demo. Bee supplies processed text, not raw audio; Recall performs no voice identification or audio analysis.

Accomplishments and next steps

A fresh standalone project created during this hackathon, a real Bee-to-local-memory path, sourced briefs, conservative promise tracking and a public MIT repository. The owner’s portfolio informed the visual direction; no pre-existing application snippet was reused.

Future work only: when someone asks a question and the wearer stays silent, a phone could vibrate with a suggested answer grounded in prior conversations. This is not implemented; Recall does not detect silence or send phone vibrations.

Open source and Bee feedback

MIT source and setup · Runtime verification · Product feedback · Feature requests · Friction log

Entering the Bee track and Open Source mini challenge. Bedrock and the AWS Builder mini challenge are not claimed.

Built With

Share this project:

Updates

Submission history