What was promised on the call, chased in an email your AI drafts, and closed when the reply comes in.
“I’ll get you the numbers by Friday.” It is said warmly, at the end of a good call, and nobody writes it down. Friday comes and goes. The next call opens with ten minutes of working out who said they would do what, and the thing you were waiting on is still not done.
Listen was listening when it was said. It keeps every promise from your conversations on one page, in two columns, what you owe and what you are owed, with your own to-dos beside them. Each one is the sentence somebody actually said, with the line before it and the call it came from, dated the way it was said, and closed by the next conversation that says it happened.
Most promises are kept, or broken, somewhere Listen never hears: in an email, a message, a shared document. So your AI can do on the Promises page everything you can, and it can reach both your library and your email.
Ask the assistant you already use:
Chase Priya on everything still open from Tuesday's call.
It reads the open promises Priya made to you, with the sentence each was said in and when it was due, and drafts an email that quotes Priya rather than paraphrasing. You read it and press send.
Priya replied. Update the promises from the reply.
Your agent writes what the reply said under each promise, for example “Priya emailed 26 Sep: the numbers are in the shared folder”, and marks the kept ones done. That line stays under the promise on every screen, on your Mac and your iPhone, as the reason it was closed. Anything still outstanding stays open, now with the date Priya gave you.
Before a call, ask what you still owe the people coming. After you send what you promised, tell your agent it went out, and it is ticked with a note saying when.
Everything the card on the Promises page does, an agent can do too: say where a promise has got to, write what happened since, set or remove its due date, relabel it, delete it and bring it back, and accept or reject what a later conversation was read as saying about it.
It never rewrites the sentence that was said. A state an agent sets is marked as the agent’s, and one press on the card changes it back. It cannot rename a speaker, correct a transcript or delete a recording; those stay with you.
Your AI doesn’t know you yet; this is how it starts to. Setting it up is one line in Claude Code, and the same server works in any client that speaks MCP:
claude mcp add listen -- /usr/local/bin/listen mcp
The email half is whatever connection your agent already has to your mail. Listen never touches your inbox; the two meet only in the assistant you asked. Every tool the MCP server exposes →
A list of promises that pretends to be complete is worse than a shorter one that says where it stops.
Your recordings do not. Promises are read by TypeSafe’s decision model, with your own key: it is sent the transcript lines of one conversation at a time, who said them, the title, the date and the names of the people in it, never the audio. TypeSafe says it does not train on what you send, and its model answers with choices rather than text, so every promise on the page is a sentence somebody said.
When an agent reads your promises, it reads them through the MCP server on your own Mac, and what it does with them is between you and the assistant you chose. What else Listen connects to, and when →
Free to download and free to record, with no bot joining and nothing to sign up for. Apple silicon, macOS 14 or later.