〰️ Zettel · for your Messages archive · macOS
Mark a decision with an emoji you already send. Zettel turns years of texts into a searchable ledger of every decision you two ever made — on your own Mac, nothing leaves.
a synthetic archive of invented people · nothing sends · runs in your browser
source on GitHub · macOS app reads your own archive in place, read-only
Send 📌, 🔥, or ❓ in your messages like you already do — Zettel turns each into a glowing marker on your timeline and a row in a living decision ledger. Declare a fresh decision and it writes back into the real thread; you both see it. Then copy the minutes — the whole ledger drops out as clean markdown, ready for the doc.
Everything Apple's search forgets: "exact phrase" · from:them · after:2024-01-01 · has:link · in:all — across one thread or every conversation you've ever had. Even words that were only spoken: voice memos transcribe on your own machine.
Your whole thread as a track — your voice above the line, theirs below. Scrub years in a second, name the chapters, press space and it plays itself. The instrument your most important conversation never had.
By default, nothing leaves your Mac — no account, no server of ours, and the archive is read-only. Your margins stay private on your machine. Turn the wifi off — everything still works.
Three exceptions exist, each a door only you can open.
Your wifi: --share serves your archive
to a device on your own network, over plain HTTP — a wifi you
trust, never one you share with strangers.
Your folder: if you and one other person choose to
co-annotate a thread, only the notes you each explicitly promote
sync — through a folder in a cloud you choose and control; those
bytes pass through that company's servers, not ours, and revoking
the folder ends it.
Your summons: when you call on an outside mind — a
question to Claude, a parcel tracker, a forecast — exactly what you
selected travels to that one service, and the summons shows you the
payload before it goes. Nothing is scanned, watched, or sent
without your two taps.
Every exception is a loan, not an amendment: as capability comes home to your Mac, the crossings retire.
Zettel isn't in the App Store — it can't be; Apple sandboxes App Store apps away from your Messages archive, which is the whole point. So it's a small, open, notarization-pending download. Four steps:
wavelength.zip.Wavelength.command →
Open → Open. (Right-click, not
double-click — macOS blocks unsigned apps opened the normal way. This
is the one awkward step until we notarize.)