Meeting notes that stay on your own server.
Minutd is an open source bot that joins your Google Meet and Microsoft Teams meetings, records them, works out who said what, and writes the transcript. You run it with Docker Compose and bring your own keys, or none.
Pre-release. AGPL-3.0. No telemetry.
- Priya
Let's start with the migration. Where are we on the billing export?
- Tom
The staging run finished last night. Two accounts failed on currency rounding, and I have a fix in review.
- Jonas
Do we need to freeze invoices while that rolls out?
- Priya
Only for the EU entity, for about an hour. I'll post the window in the channel.
Summary (optional)
- Billing export migration is on track. Two accounts need the rounding fix.
- Invoices freeze for the EU entity for about an hour during rollout.
- Priya posts the freeze window in the channel.
What it does
- Joins on its own
- Reads your Google and Outlook calendars and joins Meet and Teams meetings at start time. Or paste a link to join now. Rules per calendar: every meeting, only ones you organise, only with external guests, or never.
- Knows who said what
- The participant list and active speaker are read from the meeting page about four times a second and matched to the transcript by timestamp, so segments carry real names.
- Transcribes with what you choose
- Local faster-whisper needs no key and no account. Or use OpenAI, Groq, Deepgram or AssemblyAI with your own key.
- Summaries are optional
- Off by default. Point it at any OpenAI-compatible endpoint (Ollama, DeepSeek, OpenRouter and others) or at Anthropic, and edit the prompts.
- Everything in one place
- One Postgres and one volume, or S3-compatible storage. Download Markdown, JSON or audio. Delete audio after a set number of days.
- Plain about its limits
- Teams tenants can block anonymous guests, and Meet hosts have to admit the bot. Minutd shows the reason in the meeting status instead of failing quietly.
How a meeting goes
-
Discover
Calendar sync finds events with a Meet or Teams link. Or you paste one.
-
Schedule
A join job is queued for one minute before the start, if your rules allow it.
-
Join
The bot opens the link as a guest, mic and camera off, and waits in the lobby to be admitted.
-
Record
Audio is saved as Opus segments while speakers and participants are logged with timestamps.
-
Leave
It leaves when it is alone, when the host removes it, or at the maximum duration.
-
Process
Audio is merged and transcribed, speakers are aligned, and a summary runs if you set one up.
Install
Minutd runs as a handful of containers. You need Docker with Compose, a machine with room for the meetings you want to record at once, and one secret value for encrypting stored keys.
curl -O https://raw.githubusercontent.com/dennisklappe/minutd/main/compose.yaml
docker compose pull
docker compose up -d Images are not published yet. Until the first release, build from source as described in CONTRIBUTING.md. The getting started guide covers the setup wizard.
| Container | Role |
|---|---|
web | API and UI: setup wizard, settings, meeting list and detail pages. |
worker | Calendar sync, scheduling, transcription and summary jobs. No browser. |
bot | Chromium with Playwright, one browser context per meeting. |
db | Postgres. The job queue lives here too, so there is no Redis. |
whisper | Optional faster-whisper service, only in the local image variant. |
The supporter unlock
Everything works for free. The only thing a supporter key changes is how the bot presents itself in your meetings.
The code is AGPL-3.0, and so is the check. The key is a signed token verified offline with a public key built into the app, so there is no licence server and nothing phones home. You can remove the check. Paying $10 once is optional and appreciated. This is a way to support the project, not DRM.
| Setting | Free | Supporter |
|---|---|---|
| Bot name | Minutd Notetaker | Your own |
| Camera tile | Minutd branded | Your image |
| Join message | Mentions Minutd | Your text |
| Branding | Shown | Removed |
Questions
Does it work with Zoom?
No. Version 1 covers Google Meet and Microsoft Teams. Zoom and Webex are not planned for v1.
Is it ready to use?
Not yet. Minutd is pre-release: there is no tagged version and no published image. The status page lists what exists and what is next.
Does it send data anywhere?
Only where you point it. Audio and transcripts go to the transcription or summary provider you configure, or nowhere if you use local transcription and no summary. Minutd itself has no telemetry and no licence server.
Will the other participants know?
Yes. The bot joins under its own name and can post a message in the meeting chat. You are responsible for the consent rules that apply to your meetings, and the docs say what to look at.
What does it cost to run?
Plan for about 1 vCPU and 1.5 GB of RAM for each meeting recorded at the same time, plus a small base for the web, worker and database containers. There is a setting to cap concurrency.
Do I need my own Google and Microsoft apps?
Yes. Calendar access goes through an OAuth client and an Azure app registration that you create. The docs walk through both step by step.
Is the supporter key DRM?
No. The code is AGPL, the check is a small module you may remove, and paying is optional. See the section above for exactly what it changes.