An intelligent meeting assistant for macOS that listens to live meetings and provides real-time insights, suggestions, and conversation tracking.
Quick Start: See QUICKSTART.md for the fastest way to get started.
AI Models: Optimized for speed and cost. See AI_MODEL_GUIDE.md for configuration options.
- Live Meeting Audio Capture: Listens to meetings on macOS in real-time
- Intelligent Talking Points: AI-powered suggestions for relevant talking points during the conversation
- Question Detection: Automatically highlights questions from the conversation
- Urgent Question Flagging: Identifies and flags questions directed specifically at you as urgent
- Full Transcript Recording: Maintains a complete record of the entire conversation
- Action Item Extraction: Proposes todos and action items from the discussion
- Live Summary: Keeps an updated conversation summary with high-level bullet points
- AI Integration: Leverages AI for intelligent summarization and analysis
- UI Framework: Textual - Python TUI framework for building rich terminal applications
- Platform: macOS
- AI Integration: For summarization and natural language processing
- Python 3.10 or higher
- macOS 14.4+ (Sonoma or later) for native system audio capture
- Older macOS versions will work in mic-only mode
- Anthropic API key
- Clone the repository:
git clone <repository-url>
cd meeting-assist- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On macOS/Linux- Install dependencies:
pip install -e .- Set up your environment variables:
cp .env.example .env
# Edit .env and add your ANTHROPIC_API_KEY-
On first run, faster-whisper will download the Whisper model (base model ~150MB)
-
First-time permission: Grant Screen Recording permission when prompted
- Required for native system audio capture (Core Audio Taps)
- One-time setup - macOS will prompt automatically
- Or manually enable: System Settings > Privacy & Security > Screen Recording
Easiest method - Use the start script:
./start.shThe start script automatically:
- Creates virtual environment if needed
- Installs dependencies if needed
- Checks for API key configuration
- Loads environment variables from .env
- Runs the application
Try it with mock data (no API key needed):
./start.sh --mockThis populates the UI with sample meeting data so you can explore the interface without setting up API keys or recording audio.
Manual method:
# Activate virtual environment
source venv/bin/activate
# Set your API key
export ANTHROPIC_API_KEY=your_key_here
# Run the application
meeting-assistOr use the Python module directly:
python -m meeting_assist.main- Start Recording: Click "Start Recording" button or press
r - Stop Recording: Click "Stop Recording" button or press
ragain - Clear All: Press
cto clear all panels - Quit: Press
q
./start.sh --mock # Run with mock data (no API key needed)
./start.sh --clear # Clear stored data before starting
./start.sh --help # Show all optionsOnce recording starts:
- Live Transcript: See real-time transcription in the left panel
- Questions: Detected questions appear in the top-right panel
- Questions directed at you are marked as URGENT with 🚨
- Talking Points: AI-suggested conversation points appear below questions
- Action Items: Extracted todos appear in the action items panel
- Summary: Live-updated conversation summary with key bullet points
The application uses sensible defaults optimized for speed and cost:
- Audio: 16kHz sample rate, mono channel
- Transcription: Base Whisper model (good balance, ~16x realtime speed)
- Free (local processing)
- Can use "tiny" model for maximum speed if needed
- AI: Claude 3.5 Haiku (fastest + cheapest Claude model)
- ~$0.25 per million input tokens
- ~$1.25 per million output tokens
- Sub-second response times
- Analysis: Every 15 seconds during recording
Model Selection Priority:
- Speed (fast enough for real-time processing)
- Cost (affordable for 1+ hour meetings)
To customize, edit the parameters in src/meeting_assist/ui/app.py
The transcript shows conversation in a chat-style interface:
- Others' speech: Left-aligned, white text
- Your speech: Right-aligned, cyan text
This requires capturing both:
- Microphone input (your speech) - works immediately
- System audio output (others' speech) - uses native Core Audio Taps (macOS 14.4+)
Native System Audio (macOS 14.4+):
- Uses Core Audio Taps - Apple's native API for system audio capture
- Zero third-party dependencies (no BlackHole or Loopback needed!)
- One-time Screen Recording permission grant
- Automatically captures audio from all apps (Zoom, Teams, Chrome, etc.)
- See CORE_AUDIO_TAPS.md for technical details
Toggle Controls:
- 🎤 Microphone: Enable/disable your microphone (captured as YOU)
- 🔊 System Audio: Enable/disable system audio (captured as OTHERS)
- Mix and match: test with mic-only, system-only, or both
Older macOS Versions (< 14.4):
- Falls back to mic-only mode automatically
- All audio appears as "you" (right-aligned, cyan)
- For dual-stream on older macOS, see SYSTEM_AUDIO_SETUP.md (BlackHole setup)
See LICENSE file for details.