〰️ Zettel · for your Messages archive · macOS

Your most important thread,
as a decision ledger.

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.

Zettel
📌 THE LEDGER · decisions
📌 We ship Friday, no new scope.
🔥 The waveform is the hero.
Do we need a logo? answered
# the minutes 📌 We ship Friday, no new scope. 🔥 The waveform is the hero. ✓ copied to clipboard
▴ this is a live mock — the real app runs on your Mac
Try the live demo →

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

what it does

📌 The pin becomes a ledger

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.

🔎 Search that actually works

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.

〰️ A decade as one waveform

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.

getting it onto your Mac

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:

  1. Download and unzip wavelength.zip.
  2. Right-click Wavelength.commandOpenOpen. (Right-click, not double-click — macOS blocks unsigned apps opened the normal way. This is the one awkward step until we notarize.)
  3. Grant Terminal Full Disk Access when asked (System Settings → Privacy & Security → Full Disk Access → add Terminal), then run it once more. This is macOS asking your permission to read your messages — nothing is sent anywhere.
  4. Needs Python 3 (most Macs have it; if not, the launcher tells you where to get it).