All projects

Diktafone

Talk for two minutes about someone you just met. The phone transcribes it, extracts a structured profile, and never sends a byte anywhere for inference.

2.4 GB

Of model weights running on the phone

0

Fields the AI can write without my approval

105

Jest cases, run on every push

Why I built it

I meet a lot of people through college, freelance work and student organisations, and I remember faces. What I lose is the detail. Clay.earth solves that by ingesting your email and calendar into someone else's cloud, which defeats the point when the notes are candid ones about friends.

Diktafone - Why I built it
Home: recent people, who's gone stale, and the record button.

One loop, two minutes

Tap record, talk, walk away. Whisper transcribes on the handset and Qwen3-1.7B turns the transcript into structured fields. Capture writes to disk before it touches the network, so it works with no signal at all.

Diktafone - One loop, two minutes
Capture writes to disk first and syncs whenever a connection turns up.

The AI proposes, I dispose

The model is never allowed to write to the database. Every field arrives as a draft carrying its confidence and the sentence of transcript it came from, and I approve, edit or reject one field at a time.

Diktafone - The AI proposes, I dispose
Every AI-derived field arrives with a confidence and the sentence it came from.

One queue for everything

Pending drafts, tier-change nudges, stale-relationship prompts, duplicate suggestions and unresolved conflicts all land in one inbox. Dismissing a nudge snoozes it and never deletes what it pointed at.

Everything runs on the phone

2.4 GB of weights, CPU only, one model context resident at a time. The pipeline is a serialized chain, so Whisper is freed before Qwen loads. That is what stops an 8 GB handset from OOM-killing the app mid-run.

More screens

5 captures
Person page
The canonical page. (The tier chip in the header is tappable.)
Inbox
Nudges, approvals, and duplicate suggestions in one queue.
Search
Search
Contacts import
Contacts import
Model management
Settings shows model state and download progress. 2.4 GB of weights is worth being explicit about.

The long version

Read the technical write-up

The architecture, every decision behind Diktafone and what was rejected instead, and what still isn't verified - the project's own documentation, in full.

21 min read