Back to docs
Mnueron Meet

Build a local-first meeting memory app with Mnueron.

Mnueron Meet turns meeting transcripts into durable AI memory: searchable transcript chunks, decisions, action items, project context, and recall hooks for every connected agent.

Local-first capture

Manual upload, desktop capture, or connector polling starts locally. Hosted sync is optional, not required for the core memory workflow.

MeetingSource plugins

Each connector implements onUpload, onPoll, onWebhook, or onEmail and emits a normalized MeetingEnvelope.

Mnueron memory pipeline

The pipeline chunks transcripts, extracts decisions and action items, writes memories, and makes everything recallable by agents.

Enterprise controls

Tenant-scoped rows, source dedupe, audit-friendly records, and clear local-vs-hosted boundaries are part of the first version.

What we are building

Not a Granola clone. Granola is a meeting note product. Mnueron Meet is a meeting memory layer: it can ingest Granola, uploads, email recaps, and future desktop capture, then makes the facts available to Mnueron MCP tools and your AI workflow.

Step-by-step build

Follow this exact path to install, create, recall, and update the app.

1. Apply the Meet schema

Run the migrations that create meeting_sources, meetings, decisions, action_items, project rules, and duplicate-source guards.

supabase db push

# or run these in order in hosted SQL:
# 050_meetings.sql
# 053_meeting_sources_auth_jsonb.sql
# 054_projects.sql
# 055_meeting_sources_dedupe.sql

2. Create your first meeting memory

Open Mnueron Meet and upload a transcript. The upload plugin normalizes the file and hands it to the core ingestion pipeline.

Open /dashboard/meet
Click "Upload transcript"
Choose .txt, .vtt, .srt, or .json
Open the created meeting detail page

3. Connect a source

Use the connector page for Granola now, then add Fathom, Zoom, Teams, or custom tools using the same MeetingSource contract.

Open /dashboard/integrations/meet
Paste the Granola API key
Click "Sync now"
Confirm meetings appear in /dashboard/meet

4. Recall the meeting from an AI tool

Once ingested, the meeting is not just a note. Claude, Codex, Cursor, and other MCP clients can recall decisions and transcript context.

Ask your AI tool:
"Use meet_recall. What decisions did we make about the pricing page?"

Or:
"Search Mnueron memory for action items from yesterday's Granola sync."

5. Update the app safely

Add a migration, update a plugin or page, run focused checks, save what changed to Mnueron memory, then commit and push.

npm run build

git add src supabase/migrations
git commit -m "Extend Mnueron Meet"
git push origin main

Connector hook contract

Every meeting source implements the same shape. That keeps the hosted app, local desktop app, and future enterprise plugin marketplace compatible from the beginning.

HookUseOutput
onUploadManual files and customer exportsReturns one MeetingEnvelope from .txt, .vtt, .srt, or .json.
onPollGranola-style API syncUses plugin storage for cursors and returns new MeetingEnvelope records.
onWebhookRealtime vendor eventsVerifies signatures and converts vendor payloads into meetings.
onEmailForwarded recapsParses email text or attachments from tools that do not expose APIs.

How to update Mnueron Meet with Mnueron memory

  1. Ask your AI tool to recall previous Mnueron Meet decisions before planning a change.
  2. Make the code or migration change in the web app.
  3. Run a focused parser/build check for the touched files.
  4. Save the shipped change to Mnueron memory with tags like meet, shipped, and the connector name.
  5. If the change is repeatable, save it as a Mnueron runbook so future agents can execute the same workflow.
# Example agent workflow
memory_recall("Mnueron Meet source dedupe and Granola sync")
edit files
npm run build
memory_save("Shipped Mnueron Meet connector update ...", tags=["meet","shipped"])
git add .
git commit -m "Extend Mnueron Meet"
git push origin main