We will record locally, then transcribe after the meeting stops.
Open Meeting Notebook
Local-first meeting memory for recording, transcribing, diarizing, summarizing, and exporting meetings from a desktop app without inviting a bot to the call.
The runtime status should show model cache, Python path, and ffmpeg.
Export a summary bundle with transcript, redaction, and audio only when requested.
Production readiness at a glance
The website documents what is implemented, what still needs operational polish, and how to run the desktop app safely on a target Mac.
The product surface
The app is built around the real meeting workflow: calendar context, durable recording, transcript correction, AI outputs, and local export paths.
Local capture, no meeting bot
Records microphone, system audio, or a mixed review track from the desktop app without joining the meeting as another participant.
Transcription runtime control
Uses NVIDIA Parakeet TDT 0.6B v3 from an app-managed Python runtime, with optional pyannote diarization and explicit model cache actions.
Summary provider choice
Generates meeting outputs through Ollama, OpenRouter, OpenAI-compatible endpoints, Claude, Codex CLI, or the offline fallback path.
Vault-backed exports
Stores recordings and metadata locally, then exports Markdown, HTML, PDF, captions, text, clipboard payloads, Slack-ready drafts, and bundles.
Record to reusable notes
Each production step has an owner, a runtime dependency, and a visible user state so failures can be diagnosed instead of hidden.
Record
Start from a calendar event or quick recording, capture local microphone and available system audio, and persist audio chunks to the vault.
Audio source mode supports microphone, system, or both. The app keeps track-level paths and statistics for review.Transcribe
After recording stops, the managed transcription job prepares audio, invokes Parakeet, and saves partial status updates.
Job phases include queued, preparing, transcribing, diarizing, aligning, saving, complete, failed, and cancelled.Diarize
Optional pyannote diarization improves speaker labels and records alignment quality, confidence, roles, and warnings.
When pyannote is unavailable, heuristic speaker labels remain visible and non-blocking.Summarize
Summary generation uses the selected provider, detail level, and template after transcript segments exist.
Supported templates include general, sales, interview, standup, and planning.Export
Create reusable outputs with optional redaction, speaker labels, and audio bundle inclusion.
Current backend formats include Markdown, HTML, PDF, clipboard, email draft, Slack-ready text, SRT, VTT, TXT, DOCX-named text, and bundle.Local-first architecture
The desktop shell keeps browser-facing code narrow while main-process services own filesystem, provider, runtime, and export work.
Renderer workspace
React desktop UIThree-column agenda, recorder/transcript, and AI summary panel with local controls for capture, playback, transcription, provider selection, and export.
Secure preload IPC
Typed bridgeContext isolation, renderer sandboxing, channel validation, and explicit request schemas keep browser-facing calls narrow.
Main-process services
App orchestrationServices own calendar normalization, recording sessions, transcription jobs, provider adapters, summary creation, exports, permissions, settings, and vault access.
Local persistence
SQLite plus vaultMetadata lives in SQLite while audio, transcripts, summaries, model cache references, and export artifacts stay under local filesystem control.
External runtimes
Optional dependenciesPython, ffmpeg, Parakeet, pyannote, Ollama, and cloud model endpoints are detected and diagnosed before user workflows depend on them.
Find production documentation
Search the install, runtime, provider, export, storage, permissions, and QA notes that ship with this documentation site.
Security and permissions
The public docs call out the local-first guarantees, credential boundaries, and macOS permission requirements that matter in production.
Narrow IPC surface
Renderer calls pass through typed preload APIs and zod-validated request schemas before main-process services perform filesystem or provider work.
Local vault ownership
Audio, transcript, summary, and export artifacts stay under local filesystem control, with guardrails for path handling and selective deletion.
Credential checks
Provider credentials can be stored in app settings or supplied by environment variables, and the UI reports saved and environment status separately.
Permission diagnostics
The app surfaces microphone, system audio, and calendar permission status, plus direct paths to macOS settings when repair is needed.
Move the website folder when you are ready
The site is self-contained under the Next.js folder, with copied brand assets and no dependency on the Electron build pipeline.