Files
meeting-assistant/README.md
T
codex 250d3b7a1e
PR and Push Build/Test / build-and-test (push) Successful in 16m43s
Generalize settings and logs assistant
2026-05-30 12:57:51 +02:00

4.5 KiB

Meeting Assistant

Meeting Assistant is a .NET 10 server application for capturing and enriching meetings.

Its core purpose is to work with any kind of meeting, including in-person meetings. Integrations with platforms such as Teams, Zoom, or similar tools may augment the experience later, but the system must not depend on those product APIs for its primary meeting flow.

The application is intended to:

  • create an Obsidian markdown note before transcription starts
  • keep meeting metadata, user notes, detected context, and links to generated output in that note
  • toggle recording/transcription mode through a configurable global hotkey
  • switch the active transcription profile during a meeting with a profile-specific toggle hotkey
  • abort and discard an active recording through a configurable global hotkey
  • show a Windows taskbar notification icon with state-aware recording controls
  • capture active-window screenshots through a configurable global hotkey
  • capture microphone input and computer output into one transcription stream
  • transcribe meetings with speaker attribution
  • use a configurable speech recognition pipeline, with local Whisper as the first version 1 fallback
  • use FunASR or local Whisper plus pyannote as configurable speaker-attribution paths
  • write transcript markdown files into the configured vault folder
  • generate summaries, decisions, and next steps
  • build and maintain a project knowledge base from meetings and future context sources
  • use Microsoft Agent Framework-based agents to reason over meeting and project context
  • give agents tools for project lookup, keyword lookup, retrieval-augmented generation, and project file updates in existing projects

Repository Status

This repository currently contains the initial .NET 10 application skeleton, a health endpoint, and the first OpenSpec change for version 1.

Local Development

Restore, build, and test:

dotnet restore MeetingAssistant.slnx
dotnet build MeetingAssistant.slnx
dotnet test MeetingAssistant.slnx

Run the server:

dotnet run --project MeetingAssistant

Local Autostart and Restart

For the local Windows workstation, use the snippets restart helper instead of running the app directly when you want a durable background instance:

powershell -ExecutionPolicy Bypass -File C:\Manuel\snippets\restart-meeting-assistant.ps1

The restart helper publishes MeetingAssistant\MeetingAssistant.csproj as net10.0-windows into a fresh temp folder under C:\Manuel\meeting-assistant\tmp\meeting-assistant-runtime. Only after that publish succeeds does it stop any active Meeting Assistant instance on port 5090 and start the newly published executable detached from the script.

The detached starter writes logs and the last process id to:

%LOCALAPPDATA%\MeetingAssistant\Logs\meeting-assistant.out.log
%LOCALAPPDATA%\MeetingAssistant\Logs\meeting-assistant.err.log
%LOCALAPPDATA%\MeetingAssistant\Logs\meeting-assistant.pid

This script is also the intended autostart target. Add a Windows Startup shortcut to C:\Manuel\snippets\restart-meeting-assistant.ps1 when the app should rebuild and restart automatically after login.

The initial endpoints are:

GET /health
GET /recording/status
POST /recording/toggle
POST /recording/start
POST /recording/stop
POST /recording/abort
POST /asr/transcribe-file
POST /asr/diarize-file
POST /diagnostics/workflow/reload
POST /diagnostics/settings-and-logs/show
POST /meetings/current/summary/run
POST /meetings/summary/retry
GET /meetings/summary/retry?summaryPath=...

Configuration

Meeting Assistant uses normal .NET configuration under the MeetingAssistant section. The repository appsettings.json stores local paths, endpoint URLs, model names, and environment variable names; secret values should stay in environment variables referenced by KeyEnv settings.

See docs/meeting-assistant-configuration.md for the detailed configuration reference, including recording providers, FunASR, Whisper, Azure Speech, speaker identification, automation rules, screenshots, summary agents, and the settings/logs assistant.

Spec Workflow

This repository is OpenSpec-driven. Before changing behavior, read:

  1. README.md
  2. openspec/config.yaml
  3. existing specs in openspec/specs
  4. active change specs in openspec/changes/*/specs

The initial active change is:

openspec/changes/define-meeting-assistant-v1

Validate it with:

openspec validate define-meeting-assistant-v1 --strict