← Projects

Multi-AI Note Taker

A local-first meeting recorder, transcriber, and summarizer for macOS. No bots join your calls, and your audio never leaves your Mac unless you choose to.

Purpose

Why this exists

Most meeting-note tools work by having a bot join your call, or by integrating with a specific platform's API — which means per-platform maintenance and a bot visibly sitting in your meeting. This works at the operating-system audio layer instead, so it works identically whether you're in Microsoft Teams, Google Meet, Zoom, FaceTime, or anything else that plays audio through your Mac.

How it works

01 — Capture

Records your selected mic input and your Mac's system/output audio at the same time, so the transcript captures both sides of the conversation — however everyone else is joining.

02 — Transcribe, locally

Audio is transcribed on-device with MLX Whisper, Apple's MLX framework running Whisper natively on Apple Silicon. Nothing is uploaded for this step — it's free, fast, and private.

03 — Summarize, with your agent

The small, text-only transcript is handed to a summarization backend you configure: Anthropic, AWS Bedrock, OpenAI, OpenRouter, a local Ollama model, or a custom command. This is the only step that can leave your machine, and only if you choose a cloud backend.

Design principles

Local-first

Recording and transcription never touch the network. Your meeting audio never leaves your Mac.

Meeting-software-agnostic

Capturing at the OS audio layer instead of integrating with each platform's API means it works identically across Teams, Meet, Zoom, or anything else — no bot needs to join, no per-platform maintenance.

Bring your own agent

The summarization step is a pluggable interface, not a hardcoded call to one vendor. Use whichever AI agent you already trust and pay for — including a fully local model via Ollama, for an end-to-end zero-cloud setup.

How to use it

Requirements & setup

Requires macOS on Apple Silicon (MLX requires it), uv for Python/dependency management, and ffmpeg on your PATH (brew install ffmpeg). To capture other participants' audio (not just your own voice) you'll also need BlackHole to route system audio in — the repo has a step-by-step guide for that setup.

# install dependencies
uv sync --all-extras

# one-time interactive setup
# (pick device, agent, API key, summary style)