Jelly keeps one memory of every conversation you're already in — what you owe people, what they owe you, and what was actually said. Then it closes things by itself, the moment they're genuinely done.
A loop opened in a meeting, closed by a reply that arrived in Slack. Only possible if one thing remembers both.
Everything you owe and are owed, from every app, in one list — off it when the reply proves it, not when you remember to tick.
Prepared before you join, quietly helpful while you talk, notes already written when you leave. No bot in the participant list.
Type it or hold a key and talk. Ask about anything that happened, work through your week, or have it forget a whole project.
A contract, a dashboard, a thread you've been dropped into — answered in the context of everything Jelly already knows about you.
A reply grounded in the real thread, a nudge to whoever's waiting, a start on the thing you've been avoiding. You always send it.
Every other tool waits for you to tick a box. Jelly watches for the thing that settles it, and keeps that message attached, so you can always check why.
“booked it, all confirmed ✌️”
Sofia · iMessage · 9:41 PMNothing joins the participant list. One card at a time, bottom-right, only when it has something worth saying.
An agenda built from your real history with that person, what's still open between you, and what they'll probably raise — with the message it came from.
A date, a number, what you told them last time. Pulled from the actual call it was said in, with the day attached.
No other notetaker does this. When you're about to over-commit, it checks your claim against your own open commitments and offers a line you could say instead.
Half an hour in, the reason you called hasn't come up yet. It tells you once, and never nags again.
Decisions, who agreed to what, and anything you committed to lands in Open Loops before you've closed the laptop.
Walking him through the migration plan. You owe him a date, and you may still owe him the revised invoice.
You told him Q1 — first week of February, if the migration lands.
You already owe Elena the pricing deck on Thursday, and that one has been open six weeks.
The budget hasn't come up. You wrote it down as the reason for this call.
Two commitments moved to Open Loops.
No typing. Nothing to file.The date, the number, the thing you said last time.
Their idea, reasoned against what you already know.
One, when you're visibly stuck.
Your own claim, checked against your own commitments.
The thing you meant to bring up, still hasn't.
Not a chatbot you have to brief first. Hold a key and talk, or type it. Every answer comes back with where it came from.
No context to paste, no thread to find. It already sat through the same week you did — and it tells you which message the answer came from.
When one search isn't enough it searches again in different words, looks the person up, and checks what's still open with them — then answers.
Put something on your list by saying it. Get a first draft of the reply you've been avoiding. Or remove a person or a project from memory entirely.
A contract, a dashboard, a thread you've just been added to. Answered against what Jelly already knows about you, not in a vacuum.
Most assistants get one search and have to live with it.
Recording everything is easy and nearly useless. Deciding what matters, what it means, and when something is finished is the hard part.
In a group, a message is only yours if it names you. Deterministic, on every message, before any model runs.
One piece of work across an editor, a terminal and a docs tab is one episode, not three.
Search again, look a person up, list what's open — then answer with what it found.
Candidates narrowed in code first, then one careful judgement on what the messages actually show.
Near-identical captures are one thing, so recall isn't ranking forty copies of a page.
Repeated observations become preferences; last week's news becomes this week's noise.
Your memory lives on your Mac in an encrypted database, with the key in the macOS Keychain. Some things do leave, because reasoning and transcription happen in the cloud. Here is exactly what.
We hold a zero-data-retention agreement with our model provider: the text of a request is processed and discarded, never stored on their side and never used to train any model. Nothing you say to Jelly, and nothing Jelly reads for you, becomes training data for anyone.
Jelly needs a few macOS permissions — accessibility, screen and audio recording, and the microphone — and each is explained before it's asked for. Secrets, API keys and card numbers are stripped before anything is written, and most of what's captured is dropped as not about you before it reaches any model.
Most of what you owe people was never said in a meeting. It was a line in a thread at eleven at night.
| Jelly | Granola | Otter · Fireflies | Fathom | |
|---|---|---|---|---|
| Joins your call as a visible bot | No | No | Yes by default; bot-free desktop mode added | Yes; bot-free Mac mode in beta |
| Meeting notes and summaries | Yes | Yes | Yes | Yes |
| Helps you during the call | Recall, verify, push back | Notes only | Notes only | Notes only |
| Briefs you before it starts | From your whole history together | No | Limited | No |
| Reads your chats and email too | Yes | Meetings only | Meetings only | Meetings only |
| Tracks what you owe people | Across every app, as one list | Action items per meeting | Action items per meeting | Action items per meeting |
| Closes a task on real evidence | Yes, with the reply attached | You tick it | You tick it | You tick it |
| Where your history is stored | Your Mac, encrypted | Cloud | Cloud | Cloud |
Compiled from publicly documented behaviour, September 2026. These products ship fast — check their own sites before you decide.
No. Nothing appears in the participant list and nothing announces itself to the people you're talking to. Jelly runs on your Mac and follows the call the same way you do.
It reads the accessibility layer that apps already expose for screen readers, which is also how it knows who said what and in which direction. For personal messaging there's often no API at all, which is why tools built on integrations structurally cannot see those conversations. Coverage varies by app: native desktop apps read cleanly, and some browser-hosted ones are still work in progress.
In an encrypted database on your Mac, with the key in the macOS Keychain. Capture, cleaning and the relevance filter all run on-device. Two things go out: the text a given question needs for that one request, and text sent to be turned into search vectors when it's indexed. Both are covered by our zero-data-retention agreement — processed, then discarded.
No. Our zero-data-retention agreement means requests are not stored and not used for training. On our side we record how many requests your account made and how large they were, for billing and limits. We never record what was in them.
Accessibility, so it can read what's on screen the way a screen reader does. Screen and audio recording, for meetings. The microphone, for your side of a call and for talking to it. Each is explained before it's asked for, and you can run with only some granted.
Every closed loop shows the exact message that closed it, so you can check the reasoning rather than trust it. Reopening is one click, and the correction is kept — it learns that kind of mistake, not just that one instance.
No. It drafts, and you send. It never sends anything as you, anywhere.
Yes, and properly. Remove a person, a project, a meeting or a stretch of work and it comes out of every layer in one transaction — the messages, the derived facts, the links and the search index together, not just the row you were looking at.
Free while it's in private beta. When pricing lands, anyone already using it hears about it well before anything changes.
Jelly is in private beta on macOS. Put your name down and we will write when there is a build to send you.
macOS 14 and later