“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:02pm
a new inbox.
of everything
your apps
can’t see alone.
chris sent the revised contract. you skimmed it. your notes say "looks good—send back tomorrow." but in your email from two weeks ago, you asked about the indemnification clause. chris removed it. you need to tell him.
”what LSTN puts in your inbox.
your top engineer sent her promotion case last tuesday. you told her ‘tonight.’ the file’s been cold ever since. she stopped following up three days ago. she’s already updating her resume.
”also what LSTN puts in your inbox.
↳ 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.
knows what you wrote.
can’t see if it ever became real.
One fact, “you said you’d send Sarah the deck Friday,” lives in three different apps. No single app on your Mac will ever connect them for you. What you’re missing is an inbox that does.
maya was emailing you three times a day. now she’s one line every other day. her sign-off changed from "thanks so much!" to nothing. she’s already talking to your competitor. reach out now.
”– an actual LSTN insight.
↳ 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. Pieces of the same story.
LSTN is the inbox that gathers them and tells you what they mean together.
↳ what LSTN looks like
One window. One list of signals. One story per situation — drawn from every channel, with context and a clear next step.
PEOPLE
The board deck hasn’t moved in 9 days. Marcus is still working from v2 from August, Elena flagged the missing forecast slide twice this week, and the agenda email goes out Thursday. The deck is the only thing blocking — everything else is polish.
Pull Marcus and Elena into a 30-minute sync tomorrow morning to lock the forecast slide. Once that’s in, the rest is one editing pass.
One window. Five real signals from across your channels — each one stitched, named, and ready to act on.
↳ what we’re really doing
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. Not recaps. The full story, captured and delivered to your inbox.
~/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. Your LSTN inbox 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. An inbox of what matters across your apps is different from a feed of everything that happened.
↳ 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 full story, in your inbox. That’s the entire product.
you keep saying you’ll…
and the file keeps sitting there.
– said with love, by your laptop.
↳ your new inbox
This is what shows up when you open LSTN. One card per person who needs your attention. Context, sentiment, and a clear action, built fresh from every source you’ve connected.
“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.
↳ what feeds the inbox
Each app on its own answers one question about the people in your life. Together, they answer the ones that matter. Here’s what each one brings to your inbox.
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, including Gmail via OAuth, iCloud, and work email. 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. 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 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. 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.
↳ privacy
To find what you’d miss, LSTN has to read your stuff. We know that’s a lot to ask. So here’s exactly what happens to it, in plain English, not legalese.
↳ the architecture
Most apps say “trust us.” We didn’t want to ship that promise. Three architectural decisions make this verifiable instead.
The Apple frameworks for Mail, Messages, Calendar, Notes, and your folders all hand data to apps locally. That’s how we read them. We don’t ingest anything to a server because there is no server. Cancel your wifi and ingestion still works.
The signals LSTN builds (the “Sarah is waiting on you” cards, the cross-channel context) live in a small SQLite file. Subject lines, message bodies, extracted document text: all encrypted with AES-256, using a key macOS Keychain keeps behind your login password. Stolen laptop, powered off? The file is bytes. We literally can’t read it either.
LSTN uses Claude to write the actual stories. That’s the one network call. It goes through a small proxy we run so the API key never sits inside your app, and so we can swap models without shipping app updates.
Settings → What we sent to Claude shows every snippet that ever left your Mac: timestamp, size, and the prompt itself. You decide whether we’re sending too much. If we are, you can flip Local-only mode and shut the call off entirely.
A cloud version of LSTN would ship faster. But it would also mean your messages live on our servers, which means breaches, “trust us” asks, and a slow drift toward turning your relationships into training data. Your life isn’t our database.
↳ common questions