-
-
Nothing you promised slips. Freshflo remembers every promise made in your meetings and helps you keep it.
-
a private meeting memory for Mac. Ask your meetings anything and track every commitment, powered by NVIDIA Nemotron.
-
Every meeting ends with promises: “I’ll send the quote by Friday.” Then the notes go into a folder and half of them quietly slip.
-
Commitment tracking is checked against labelled meetings: 7 scenarios, including tricky ones like declined tasks and changed deadlines.
-
Privacy by design: audio is recorded and transcribed on your Mac. Only the text needed reaches Nemotron on Nebius Token Factory.
-
Hermes Agent, running Nemotron 3 Ultra, checks your commitments daily over Freshflo’s MCP server. Nothing happens until you approve it.
-
One provider for the whole AI stack: Nemotron 3 Super and Ultra on Nebius Token Factory, with 460 automated checks in CI on every push.
-
Next step: Nemotron 3 Ultra picks a tool to draft an email, add a reminder or research a task. You approve, edit or dismiss the result.
-
One provider for the whole AI stack: Nemotron 3 Super and Ultra on Nebius Token Factory, with 460 automated checks in CI on every push.
Inspiration
Every meeting ends with promises. "I'll send the quote by Friday." "Can you scope SSO?" "Let's revisit pricing next week." Then the notes go into a folder nobody opens, and half of those promises quietly slip.
Meeting tools already record and summarise. What they don't do is remember across meetings: that the quote you promised on Monday came up again on Thursday, or that Priya mentioned in standup that the pricing page already shipped. They also don't help you keep the promise. And most of them upload your raw audio to someone else's server.
We wanted a meeting memory that is private by design, keeps track of what you owe, and drafts the next step for you, with your approval, powered by an open model you can see and trust.
What it does
Freshflo is a native macOS app. You record a meeting (or dictate anywhere on your Mac), and:
- Your audio never leaves the Mac. Transcription runs on-device.
- NVIDIA Nemotron on Nebius Token Factory writes the notes: decisions, action items with owners, open questions.
- Chat with your meetings. Ask "What do I owe Acme?", then "and is it late?". Answers stream in, keep the conversation's context, and cite the meeting every fact came from.
- Open commitments. Every action item from every meeting in one list: Overdue, Due this week, Later, Done. Nemotron merges the same promise restated in a later meeting and marks items done when a later meeting says they shipped.
- Next step. One click on a commitment and Nemotron chooses what moves it forward by tool calling: draft the follow-up email, add a reminder, or research the open question. The draft waits under "Waiting for your approval"; approving it opens it in Mail or adds it to Reminders. Nothing is sent without you.
- Research with Tavily. When a commitment needs outside facts, Tavily searches the web (only the question leaves the Mac) and Nemotron writes a short brief citing its sources.
- Your agent keeps your promises. Freshflo's MCP server lets a Hermes Agent on Nemotron 3 Ultra read your commitments every morning and queue drafts into the same approval list. It can run inside an NVIDIA NemoClaw / OpenShell sandbox. It can propose, but it can never send.
- It shows its work. Every note, answer, list and draft carries a "NVIDIA Nemotron on Nebius Token Factory" badge with the exact model id.
How we built it
- Native Swift / SwiftUI macOS app.
- Nebius Token Factory as an OpenAI-compatible provider. One new provider case moved the whole AI stack onto Token Factory.
- NVIDIA Nemotron, tiered the way Nebius recommends:
- Nemotron 3 Super for the fast, everyday calls (dictation cleanup, grammar, tone).
- Nemotron 3 Ultra for judgment: meeting chat, cross-meeting commitments, choosing the next step.
- A model resolver that keeps us on NVIDIA. If a model id is retired, the app reads Token Factory's live
/modelslist and picks a Nemotron of the same tier, matching ids case-insensitively. - Tool calling that works with any endpoint setup. We send OpenAI-style
toolsand readtool_calls, and also parse Nemotron's own<TOOLCALL>[…]</TOOLCALL>text when an endpoint doesn't parse calls. - Approval by design. Drafts from the app and from agents share one proposal type and one approval list; only an approved draft reaches Mail or Reminders.
- An agent-ready MCP server. New tools
list_commitmentsandpropose_action, over stdio for Hermes on the Mac, and over HTTP with a bearer token for a NemoClaw sandbox. - Local retrieval. Keyword search with a recency boost and transcript excerpts, so the model only sees what's relevant.
- Hybrid reasoning. Deadlines like "by next Wednesday" are dated by deterministic code on the Mac; Nemotron makes the judgment calls. A model reply can merge items or mark them done, but can never drop one.
- Measured. A labelled eval (7 scenarios, one failure mode each) scores merge precision and recall, done detection, due dates and latency, so Super and Ultra can be compared. 460 automated checks run in CI on every push.
Built during the hackathon: Freshflo existed before the submission period as a voice-dictation app. During the hackathon we added the Nebius Token Factory provider and moved every AI feature onto NVIDIA Nemotron; built Chat with your meetings, Open commitments, Next step (tool calling + Tavily) and the approval list; added the agent integration (MCP tools, HTTP transport, a Hermes / NemoClaw kit); and added the model badge, sample meetings and the commitments eval.
Challenges we ran into
- Token Factory serves LLMs, not audio. We split the pipeline: on-device speech recognition, then text-only calls to Nemotron. That limitation became our best feature: your audio never leaves the machine.
- Agents that act need limits. Letting an agent email people is risky, so "propose" is its only write, dictation history is filtered out, and a human click is always the last step.
- Sandboxes can't reach the Mac. NemoClaw only connects to MCP over authenticated HTTPS, so we added an HTTP transport with a bearer token.
- A fallback can silently downgrade. We found that a missing Ultra could be replaced by a smaller model and saved over the fast model; the resolver now keeps the tier and the right setting.
- LLMs are bad at calendar math. Dates are resolved locally; the model only handles meaning.
Accomplishments that we're proud of
- A real, shipping app re-platformed onto NVIDIA Nemotron and Nebius, with new features that are useful on day one.
- An assistant that goes from remembering a promise to drafting the email that keeps it, without ever sending anything on its own.
- The same approval flow for Nemotron in the app and for a Hermes agent.
What we learned
- Super for speed, Ultra for judgment keeps the app instant while still making good calls, and stretches credits.
- Let deterministic code do what it's good at (dates, parsing, retrieval) and save the model for meaning.
- Agents earn trust through limits: one write tool, least-privilege data, and a human approval at the end.
What's next for Freshflo: Private Meeting Memory That Keeps Your Promises
- A weekly digest of open commitments.
- More approved actions: calendar holds and Slack messages from the same approval list.
- Running the agent on Nebius Serverless for people who don't want it on their Mac.
Built With
- appkit
- apple-foundation-models
- apple-speech
- avfoundation
- coreaudio
- cryptokit
- css
- eventkit
- github-actions
- hermes-agent
- html
- javascript
- macos
- model-context-protocol
- nebius-token-factory
- nvidia-nemoclaw
- nvidia-nemotron
- openai-api
- screencapturekit
- server-sent-events
- swift
- swiftui
- tavily
- vercel
- whisperkit
Log in or sign up for Devpost to join the conversation.