Logo

Meetingnotes

The Free, Open-Source AI Notetaker for Busy Engineers

Features

Implemented:

  • Recording mic & system audio
  • End-of-meeting transcription through your Coder service
  • Ability to also write down additional notes
  • AI generated enhanced notes
  • Copy functionality
  • Meeting deletion functionality
  • Meeting search functionality
  • Abilty to edit system prompt
  • Select any compatible Coder model for transcription and note generation
  • Automatic start and stop from MuteDeck through a compatible local API, with a 10-second reconnect grace period
  • Merge an automatically split continuation back into its previous meeting
  • Auto updates
  • Text formatting
  • Different note templates
  • Integrate with Posthog for anonymous analytics (installs, opens, meetings created)
  • Onboarding screen to enable settings and set API key

Todo:

  • improve provider balance and token validation errors
  • add padding to text inputs
  • add confirmation when clicking the copy button

Later:

  • Cool recording indicator (dancing bars)
  • Connecting to your Google calendar
  • AI chat for asking questions about a meeting
  • Integrations for email, Slack, Notion, etc.

Releasing a New Version

Production releases are Developer ID signed, notarized by Apple, published to Gitea Releases, and signed for Sparkle auto-updates.

Release Process

  1. Update the version number:

    # For bug fixes (1.0 → 1.0.1):
    ./scripts/update_version.sh patch
    
    # For new features (1.0 → 1.1):
    ./scripts/update_version.sh minor
    
    # For major changes (1.0 → 2.0):
    ./scripts/update_version.sh major
    
    # For custom version:
    ./scripts/update_version.sh custom 1.2.0
    
  2. Commit and push the version change to main.

  3. Run the Release workflow from Gitea Actions on main and enter the version without the v prefix. The workflow signs and notarizes the app, generates the signed appcast, creates the version tag, and publishes both release assets.

The app checks https://git.jamesbone.net/coder/meetingnotes/releases/download/latest/appcast.xml and installs later releases automatically through Sparkle.

Recovering Meetings

The first Developer ID signed build may not automatically inherit data from an older ad-hoc signed build. In Settings, use Import Meetings... and select the old Meetings folder. After this one-time transition, the stable signing identity keeps the same sandbox container across updates.

Build runner and GitHub transition

.gitea/workflows/build.yml builds universal macOS artifacts for pushes and pull requests to main. The shared account-scoped mac-mini runner uses the macos-arm64 label. Smoke tests use a separate CI bundle identifier and temporary launch preferences and an internal-volume staging directory. Keychain services follow the bundle identifier, so CI never reads production credentials; the smoke test removes its isolated API token before and after each launch. Release jobs import the original Developer ID certificate into a temporary keychain and keep the original Sparkle signing key in Gitea Actions secrets. They never publish from a development branch.

Version 1.1.33 moves the embedded update feed to Gitea. After its notarized archive is verified, replace the appcast.xml asset on the last GitHub release with the new appcast. Existing installations discover the Gitea download through that old GitHub feed; after installing it, they check Gitea directly. Keep the old GitHub repository and its release appcast available for installations that update later.

S
Description
The Free, Open-Source AI Notetaker for Busy Engineers
Readme
98 MiB
2026-09-09 23:58:48 +02:00
Languages
Swift 55.6%
TypeScript 37.8%
Shell 4.6%
Python 1.3%
CSS 0.6%