Files
meetingnotes/README.md
T
2026-09-09 23:49:37 +02:00

100 lines
3.6 KiB
Markdown

<div align="center">
<!-- REMOVE THIS IF YOU DON'T HAVE A LOGO -->
<img src="https://github.com/user-attachments/assets/309577e8-94db-431f-b8df-a53a763b4c87" alt="Logo" width="80" height="80">
<h3 align="center">Meetingnotes</h3>
<p align="center">
The Free, Open-Source AI Notetaker for Busy Engineers
</p>
</div>
## 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](https://git.jamesbone.net/coder/meetingnotes/releases), and signed for Sparkle auto-updates.
### Release Process
1. **Update the version number:**
```bash
# 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 repository-scoped `mac-mini-meetingnotes` runner uses the
`macos-arm64` label. Smoke tests use a separate CI bundle identifier and temporary
launch preferences. 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.