“I see you haven’t sent Sarah the Tokyo itinerary you promised in iMessage Tuesday. The folder hasn’t opened since. She emailed yesterday asking.”
~/Trips/Tokyo last modified mon 4:02pmThe apps on your Mac know more about your relationships than you do. LSTN is the Mac app that finally tells you.
i see you haven’t replied to sarah in six days. the file you promised her hasn’t opened since tuesday. she’s emailed twice — the second one was shorter.
”— your Mac, which already knew.
↳ why you keep missing things
You forgot. You ghosted. You missed it. It wasn’t your fault — the signals were scattered across apps that can’t see each other.
knows what you said.
can’t see what you did about it.
knows what you owe.
can’t see what you’ve been doing instead.
knows where you’ll be.
can’t see what you should know before you get there.
knows what you’ve touched.
can’t see who’s waiting on the result.
knows what you swore.
can’t see if the world has moved on.
One fact — “you said you’d send Sarah the deck Friday” — lives in three different apps. And no single app on your Mac will ever connect them for you.
she said yes eleven days ago.
you haven’t said anything since.
— overheard, last tuesday.
↳ the raw material
You already see all of these every day. Familiar artifacts in familiar apps. Each one a little piece of the same story — and not one of them aware of the others.
Day 1 · Mon — arrive Narita 4pm. Train to Shibuya. Dinner at the place Sarah found.
Day 2 · Tue — Tsukiji morning (early!!). Ginza in the afternoon, walk the back streets.
Day 3 · Wed — Hakone overnight? still need to book the ryokan
Day 4 · Thu — depart NRT — pick a flight
unplayed · transcribed: “hi sweetheart, just calling to…”
Four apps. Four artifacts. Four halves of the same story.
LSTN is the part that finally puts them in one room.
↳ what LSTN actually says
LSTN reads each source continuously, links events to the right person via your Contacts, and surfaces the things that only become visible when you can see across them. These aren’t recaps. They’re the moments worth knowing about, in plain language.
~/Trips/Tokyo last modified mon 4:02pmfundraise-deck-v2.key untouched 9d↳ how it builds the picture
The fundamental object in LSTN is not a message or an email or a meeting. It’s a person — with hundreds of incoming events from every channel they’ve ever touched you in. Here’s how we get there.
LSTN reads Contacts.app once and builds a map: every
email address, every phone number, every alias, every nickname
— all linked back to one Person. Phone numbers are
digit-normalized so +1 (415) 555-1234,
4155551234, and (415) 555.1234
all collapse into the same node.
why it matters: without an identity bridge, your dad’s cell, your dad’s gmail, and the “Dad <3” in your iMessage are three different people to your computer. Contacts is how they become one.
As each source streams in, LSTN attributes the event to the right humans. A message: sender + recipients. An email: from + to + cc, with all your alias addresses recognized as you. A calendar event: organizer + attendees. A file: any name in the path that matches a contact.
why it matters: a person stops being a phone number or a Slack handle and becomes a node with a stream of attributed events flowing into them — sortable, queryable, summarizable.
Periodically — debounced, never on demand — the insight engine asks: “what’s true about this person right now?” It feeds a window of their recent events (across every source, in chronological order) to Claude and gets back a tight profile: current state, sentiment, intensity 0–10, the one sentence about what changed since last regeneration.
why it matters: the picture is always fresh because it’s rebuilt from raw events every time. Nothing is cached as “true,” so as new context arrives, the picture quietly updates.
You don’t browse 400 person-profiles. The home view shows the small set of people who have meaningful change or pending action. Cards rebuild themselves silently as new context arrives. There is no refresh button anywhere in the app.
why it matters: attention is a budget. LSTN’s job is to tell you the three things that matter today, not show you a feed.
↳ watch it happen, in real time
Here’s exactly what happens, in order, when one promise gets made in iMessage, touched once on disk, then asked about by email. Each event flows into LSTN tagged with the same person. Watch the picture form.
“You promised her the itinerary by Friday in iMessage. The file hasn’t opened since Tuesday. She’s emailed twice. The second email was shorter — it’s getting tense.”
Three apps. One person. One picture. That’s the entire product.
you keep saying you’ll…
and the file keeps sitting there.
— said with love, by your laptop.
↳ what LSTN actually shows you
This is what shows up when you open LSTN. A single card per person who needs your attention — built fresh from raw events across every source you’ve connected, every time something changes.
“You promised her the itinerary by Friday. The file hasn’t opened since Tuesday. She’s emailed twice — the second one was shorter.”
“Each signal is small, but stacked together — two missed calls, an unread voice memo, three forwards, and a doctor appt she added to the shared calendar — something’s going on.”
“She’s emailed twice about the bridge round. Last text ended with ‘we’ll talk.’ The deck you said you’d update for her hasn’t been touched in 9 days. Tomorrow is the conversation.”
No feed. No badge count. No notifications begging for attention. Just the three things you should know today.
↳ each connection
Each one answers a question about the people in your life that no other can. Here’s the breakdown.
the truest read on every relationship
What it does: reads every text on your Mac — iMessage, group chats, SMS — going as far back as your Mac has them. New messages show up the second they land.
Why we listen: texts are the most honest thing you write all day. Tone, how often, who reaches out first, who reacts. Email is performative. iMessage is real.
the running tab of what you owe
What it does: reads every inbox you have set up on your Mac — Gmail (via OAuth), iCloud, work email, the rest — three years deep and keeps up with new mail as it arrives.
Why we listen: nobody types “I owe Sarah a reply.” They have an email from her sitting nine days unanswered. Mail is the receipt for what you promised, what’s overdue, and what you haven’t gotten to.
the receipts on who gets your time
What it does: watches your calendar in real time — past meetings, future ones, who’s invited, who cancelled, who actually showed up. Updates the second something gets moved.
Why we listen: the calendar isn’t just what’s coming up — it’s the receipts on who you actually spend time with. A standing 1:1 that quietly disappeared is a relationship in trouble. A meeting tomorrow with no prep is a problem about to happen.
where your promises live as files
What it does: watches the folders you point it at — your Desktop, project folders, that one screenshot dump — and notices what you’ve opened, edited, renamed, or left cold.
Why we listen: every promise eventually has a file behind it. The deck you owe a partner. The brief stuck in Drafts. The folder that’s been “in progress” since March. Folders turn “I should do that” into “the file is cold and someone’s waiting.”
the gap between intention and action
What it does: reads your Reminders list and lines each one up against the actual person it’s about. “Remind me to call mom” lives next to your real text history with mom — not floating in a vacuum.
Why we listen: reminders are the honest gap between what you meant to do and what you actually did. Was the thing you swore you’d remember actually done? Or is it snoozed for the fourth time while the person it’s about has been calling you?
where you actually think
What it does: reads everything you’ve written in Apple Notes — meeting notes, half-formed lists, the idea you jotted at 11pm, the plan you sketched in a hurry — and connects each one to the people it’s about.
Why we listen: your notes are where you actually think. A name in a Tuesday meeting note that hasn’t come up since. A “follow up with…” you wrote and forgot. Notes is where intent lives before it becomes action — or doesn’t.
↳ the vault
Local-first isn’t marketing language. Your messages, your mail,
your calendar — they never leave the machine they’re
already on. LSTN reads them in place and stores derived events in a
tiny SQLite file at ~/.story_layer/ you could delete
with one drag.
↳ things people whisper at us