macOS menu-bar app that turns meeting recordings into structured Markdown notes via your own WhisperX + Ollama servers
  • Swift 95.7%
  • Python 1.7%
  • HTML 1.5%
  • Shell 0.7%
  • CSS 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Joan Marc Riera Duocastella 16003f8028 feat(capture): opt-in browser (Google Meet) call detection and activeCalls in MeetingDetector (#4002)
meeting_detection.browser_detection (default off) watches Chrome, Safari, Arc,
Edge, Firefox, Brave, Vivaldi and Opera: a browser holding the mic for the
debounce yields offerBrowserCall, naming a calendar event when the caller has
one. activeCalls exposes call-still-active for the stop policy. No tab titles,
no Accessibility or Screen Recording. Manual check 11 rewritten for Meet.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TAeEcqUa4QsgnJfRk3HvyA
2026-10-23 22:42:20 +01:00
.claude/skills docs(release): release docs and skill match the manual-dispatch CI 2026-10-16 22:09:50 +01:00
.github docs(ci): workflow headers say GitHub is primary and Forgejo a read-only mirror 2026-10-16 22:09:50 +01:00
apple feat(capture): opt-in browser (Google Meet) call detection and activeCalls in MeetingDetector (#4002) 2026-10-23 22:42:20 +01:00
docs feat(capture): opt-in browser (Google Meet) call detection and activeCalls in MeetingDetector (#4002) 2026-10-23 22:42:20 +01:00
ops fix(ops): compare the published appcast byte for byte; refresh RELEASE.md merge state; note that the site is deployed by hand (#4071) 2026-10-23 21:53:29 +01:00
scripts feat(pricing): set Distavo to $29 one-time and state it on every channel 2026-09-06 01:07:11 +01:00
tools feat(packs): Norwegian (Bokmål + Nynorsk) pack on NbAiLab/nb-whisper-large-verbatim (#2129) 2026-09-17 12:27:17 +01:00
.gitattributes chore(repo): union-merge the shared manual-checks file 2026-10-05 11:54:25 +01:00
.gitignore chore: ignore .secrets-local/ (local deploy key material) 2026-10-02 10:24:45 +01:00
.vikunja chore: record the Vikunja project this folder belongs to 2026-09-18 11:58:09 +01:00
CHANGELOG.md chore(release): bump version to 1.1.0 2026-06-29 17:30:14 +01:00
CLAUDE.md feat(notes): "Summarise Together…" action, title sheet and cited project note (#3199) 2026-10-17 08:58:09 +01:00
CODE_OF_CONDUCT.md Initial release: Scribed — meeting recordings to Markdown notes 2026-06-24 10:59:19 +01:00
CONTRIBUTING.md chore: rename product Seshat → Distavo 2026-06-27 11:50:58 +01:00
DECISIONS.md chore(tracker): reconcile plans with vikunja 2026-09-24 22:04:28 +01:00
HANDOFF-2026-09-05.md docs(distavo): refresh CLAUDE.md for v1.10.0 and append docs-pass note 2026-09-06 00:08:01 +01:00
HANDOFF-2026-09-06.md docs(handoff): record the 2026-09-06 review-fixes and 1.10.1 session 2026-09-06 14:46:34 +01:00
LICENSE Initial release: Scribed — meeting recordings to Markdown notes 2026-06-24 10:59:19 +01:00
NOTICES.md feat(embedded): download, verify and route the local Gemma summary model 2026-10-04 19:45:11 +01:00
PRIVACY.md chore: rename product Seshat → Distavo 2026-06-27 11:50:58 +01:00
PROJECT_STATE.md docs: refresh PROJECT_STATE for 1.20.0 2026-10-21 22:01:03 +01:00
README.md chore: record the Vikunja project this folder belongs to 2026-09-18 11:58:09 +01:00
RELEASE.md fix(ops): compare the published appcast byte for byte; refresh RELEASE.md merge state; note that the site is deployed by hand (#4071) 2026-10-23 21:53:29 +01:00
ROADMAP.md chore(tracker): reconcile plans with vikunja 2026-09-24 22:04:28 +01:00
TASKS.md chore(tracker): reconcile plans with vikunja 2026-09-24 22:04:28 +01:00

Distavo

Website: distavo.com

CI License: MIT macOS

Drop a recording in a folder, get a tidy Markdown meeting note back.

Distavo is a native macOS menu-bar app that watches a folder for audio/video recordings and automatically turns each new one into a structured Markdown meeting note. It converts the file locally with AVFoundation, transcribes it with a built-in on-device engine (Whisper, a Fast engine for 25 European languages, two Catalan/Spanish models from the Barcelona Supercomputing Center, or an opt-in language pack — community Whisper fine-tunes for Hebrew, Thai, Tamil, Welsh and Norwegian) — or on your own WhisperX server if you prefer — summarises the transcript with your own Ollama server, validates the result, and writes a note to your notes folder.

Distavo does not require any cloud service: the built-in transcription engines run entirely on-device, and for anything else you point Distavo at WhisperX or Ollama endpoints that you run and trust. macOS only.

Screenshots

The native menu and settings window:

Distavo settings

Requirements / Prerequisites

  • macOS 14+ (this is a menu-bar app — macOS only; this is Distavo's deployment target).
  • Apple Silicon Mac for the built-in transcription engines — Intel Macs use a WhisperX server instead (see below). The two Catalan/Spanish models and the large-v3-based language packs (Thai, Tamil, Welsh, Norwegian) additionally need 16 GB of memory or more; the Hebrew pack runs on any Apple Silicon Mac.
  • Ollama for summaries — a reachable Ollama HTTP endpoint with a model pulled (for example llama3.1:8b), see Ollama.
  • Optional: a reachable WhisperX HTTP endpoint that you run — see WhisperX — if you'd rather transcribe on your own server than use the built-in engines.

An opt-in preview of Apple's on-device Foundation Models summariser (macOS 26) can be enabled with summarise.embedded_enabled in the settings file; Ollama remains the default.

Any server you configure (WhisperX, Ollama) can be on localhost, on another machine on your network, or anywhere you can reach — Distavo never starts it for you, and only ever talks to the URLs you configure.

Install

Distavo is heading to the Mac App Store and Setapp; a notarized direct-download build is published on GitHub Releases.

To build from source you need XcodeGen (brew install xcodegen):

cd apple
xcodegen generate
xcodebuild -project Distavo.xcodeproj -scheme Distavo -configuration Release \
  -derivedDataPath build CODE_SIGNING_ALLOWED=NO build
# the app is written under apple/build/Build/Products/Release/Distavo.app

Distavo launches as a menu-bar agent (no Dock icon) and can start at login from its own settings.

Configure

Open Settings… from the menu bar and fill in:

  • your transcription backend — built-in (choose Automatic, or a specific engine and language) or your own WhisperX URL,
  • your Ollama URL and model for summarisation,
  • the watch / notes / work folders if you want non-default locations.

Use the Test connection button to confirm Distavo can reach WhisperX and Ollama before you drop in a recording.

How it works

  1. Distavo watches the recordings folder (default ~/Documents/Distavo/recordings) on a configurable interval.
  2. When a new recording appears, AVFoundation converts it locally to WAV.
  3. The WAV is transcribed by a built-in on-device engine — or uploaded to your configured WhisperX server, if you use one instead.
  4. The cleaned transcript is sent to your configured Ollama model for summarisation.
  5. The summary is validated and written as Markdown to the notes folder (default ~/Documents/Distavo/notes/<name>.md).

Config and the work/cache directory live under ~/Library/Application Support/Distavo/, and logs are written to ~/Library/Logs/Distavo/distavo.log.

Supported input formats include .wav, .m4a, .mp3, .opus, .ogg, .flac, .aac, .mov, .mp4, and .m4v (anything AVFoundation can decode).

Privacy

Distavo is built to keep your data on machines you control:

  • Audio is converted to WAV locally with AVFoundation.
  • With the built-in engines, transcription happens entirely on-device and nothing is uploaded. If you configure a WhisperX server instead, the WAV is uploaded only to that server; the transcript is sent only to the Ollama server you configured. These may be remote, so point Distavo only at servers you trust.
  • Notes and transcripts are written in cleartext under your home directory.
  • There is no telemetry and no phone-home. Nothing is sent anywhere except the WhisperX/Ollama endpoints you configure — and downloading a built-in model the first time it's needed, from Distavo's own Hugging Face repo.

See PRIVACY.md for the full statement.

Contributing

Contributions are welcome — see CONTRIBUTING.md and the Code of Conduct.

Roadmap

Planned direction (direct download → Setapp → Mac App Store) is described in ROADMAP.md.

License

MIT — see LICENSE.

Support

Distavo costs $29 on the Mac App Store — a one-time purchase, no subscription, all future updates included. That is the convenient way to buy it: sandboxed, auto-updating, and it funds the work.

The app is also MIT-licensed, so the notarized direct DMG on GitHub Releases stays free, and you can always read or build the source yourself. Paying is for convenience and support, not for permission — the point of a tool that promises your meetings never leave your machines is that you can audit it.

If you use the free build and it saves you time, you can support its development:

Lemon Squeezy GitHub Sponsors Buy Me A Coffee Ko-fi

Tracking

Vikunja project 18 · Distavo — https://familia.riera.co.uk/projects/18