Turn meetings into live agent loops. Record, transcribe, and analyze meetings with real-time AI intelligence — before, during, and after calls.
Explore the docs »
View Demo
·
Install
·
Report Bug
call.md.mp4
macOS (Apple Silicon & Intel):
curl -fsSL https://artifacts.videodb.io/call.md/install | bashCurrently available for macOS — Windows and Linux support coming soon
After installation:
- Launch Call.md from Applications or Spotlight
- Grant system permissions when prompted (Microphone and Screen Recording required)
- Register with your VideoDB API key (get one free)
Call.md turns meetings into live agent loops. It records locally, transcribes in real-time (you vs them), and provides live intelligence during calls. When the meeting ends, it generates summaries with action items and can send data to your workflow automation platforms.
- Dual-Channel Transcription - Separate transcription for you (mic) vs them (system audio), powered by VideoDB
- Live Assist - AI generates contextual suggestions: things to say, questions to ask
- Conversation Metrics - Real-time monitoring of talk ratio, speaking pace (WPM), questions asked, monologue detection
- Coaching Nudges - Gentle rate-limited alerts when conversation needs steering
- MCP Auto-Triggering - Detects information needs from conversation and calls your MCP tools automatically
- MCP Results Panel - Inline display of tool outputs (markdown, links, structured data) during meetings
- Bookmarking - Mark important moments for easy reference later
- AI-Generated Summaries - Three parallel extractions:
- Short overview (narrative summary)
- Key points by topic (attributed to participants)
- Action items (concrete next steps)
- Structured Export - Markdown export with full transcript, summary, and metrics
- Workflow Webhooks - Auto-send meeting data to n8n, Zapier, or CRMs when meeting ends
- Meeting Setup Wizard - AI-generated probing questions based on meeting description
- Dynamic Checklist - AI creates discussion checklist from meeting context
- Google Calendar Integration - Sync upcoming meetings
- Local-First - SQLite database, all data stored on your machine
- Screen & Audio Recording - Capture screen, microphone, and system audio simultaneously
- Recording History - Browse and review past recordings with full transcripts
- VideoDB Integration - Transcription and AI features require internet connectivity
During Recording:
- Captures dual-channel audio (you vs them) and sends to VideoDB for real-time transcription via WebSocket
- Runs live intelligence: metrics tracking, coaching nudges, and AI-generated assists
- MCP agent automatically detects information needs and triggers relevant tools
After Recording:
- Generates three-part summary: narrative overview, key points, and action items
- Sends meeting data to workflow automation platforms (n8n, Zapier, CRMs)
- Exports to markdown with full transcript and intelligence
- Electron 34 - Desktop application framework
- TypeScript 5.8 - Full type safety across main and renderer processes
- React 19 - Modern UI framework with concurrent features
- Tailwind CSS + shadcn/ui - Utility-first styling with high-quality component primitives
- tRPC 11 - End-to-end type-safe API layer between main and renderer
- Hono - Fast HTTP server for tRPC API endpoints
- Drizzle ORM + SQLite - Type-safe database operations with local storage
- Zustand - Lightweight state management
- VideoDB SDK (0.2.4) - Screen recording, transcription, and video processing
- MCP SDK (1.0.0) - Model Context Protocol for tool integrations
- OpenAI SDK (6.19.0) - LLM calls via VideoDB's OpenAI-compatible API
- Vite - Fast frontend bundling and hot module replacement
- macOS 12+ (Monterey or later)
- VideoDB API Key (console.videodb.io)
- System permissions: Microphone and Screen Recording
For development: Node.js 18+ and npm 10+
-
Install:
curl -fsSL https://artifacts.videodb.io/call.md/install | bash -
Launch the app and enter your VideoDB API key (get one free)
-
Grant permissions when prompted (Microphone and Screen Recording)
-
Start Recording - Click "New Meeting" and begin your first session
The app will transcribe in real-time, show live assists, and generate a summary when you're done.
-
Clone the repository:
git clone https://github.com/video-db/call.md.git cd call-md -
Install dependencies:
npm install
-
Rebuild native modules for Electron:
npm run rebuild
-
Start development mode:
npm run dev
-
Register with your VideoDB API key when the app opens
| Command | Description |
|---|---|
npm run dev |
Start development mode (main + renderer with hot reload) |
npm run build |
Build TypeScript and React for production |
npm run dist:mac |
Build macOS distributable DMG |
npm run typecheck |
Run TypeScript type checking |
npm run lint |
Run ESLint |
npm run rebuild |
Rebuild native modules for Electron |
npm run db:generate |
Generate database migration files |
npm run db:migrate |
Apply database migrations |
Connect MCP servers in Settings → MCP Servers:
- Click Add Server
- Choose transport: stdio (local) or http (remote)
- Configure and click Connect
The MCP agent runs automatically during meetings, detects information needs from conversation, and triggers relevant tools. Results appear inline in the MCP Results panel.
src/
├── main/ # Electron Main Process
│ ├── db/ # Database layer (Drizzle + SQLite)
│ ├── ipc/ # IPC handlers
│ ├── lib/ # Utilities (logger, paths, permissions)
│ ├── server/ # HTTP server (Hono + tRPC)
│ │ └── trpc/ # tRPC router and procedures
│ └── services/ # Business logic
│ ├── copilot/ # Meeting intelligence services
│ │ ├── context-manager.service.ts
│ │ ├── conversation-metrics.service.ts
│ │ ├── nudge-engine.service.ts
│ │ ├── sales-copilot.service.ts # Core orchestrator
│ │ ├── summary-generator.service.ts
│ │ └── transcript-buffer.service.ts
│ ├── mcp/ # MCP orchestration and tool execution
│ │ ├── connection-orchestrator.service.ts
│ │ ├── intent-detector.service.ts
│ │ ├── mcp-agent.service.ts
│ │ ├── tool-aggregator.service.ts
│ │ └── result-handler.service.ts
│ ├── live-assist.service.ts
│ ├── mcp-inference.service.ts
│ ├── llm.service.ts
│ └── videodb.service.ts
├── preload/ # Preload scripts (IPC bridge)
├── renderer/ # React Frontend
│ ├── api/ # tRPC client
│ ├── components/ # UI components
│ │ ├── auth/ # Authentication modal
│ │ ├── calendar/ # Calendar integration UI
│ │ ├── copilot/ # Meeting intelligence UI
│ │ ├── history/ # Recording history views
│ │ ├── home/ # Home screen
│ │ ├── icons/ # Icon components
│ │ ├── layout/ # App layout (sidebar, titlebar)
│ │ ├── mcp/ # MCP results/status components
│ │ ├── meeting-setup/ # Meeting prep wizard
│ │ ├── recording/ # Recording controls & live assist
│ │ ├── settings/ # Settings editors
│ │ ├── transcription/ # Live transcription panel
│ │ └── ui/ # shadcn/ui components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utilities
│ └── stores/ # Zustand state stores (session, copilot, mcp)
└── shared/ # Shared types & schemas
├── schemas/ # Zod validation schemas
└── types/ # TypeScript types
The app exposes IPC APIs through the preload script:
window.electronAPI.mcp.*- MCP server and tool operationswindow.electronAPI.mcpOn.*- MCP event subscriptions
The app requires the following permissions:
- Microphone - For voice recording
- Screen Recording - For screen capture
Grant these in System Preferences > Privacy & Security.
Recording not starting:
- Check microphone and screen recording permissions in System Settings
- Verify VideoDB API key is valid
Transcription not appearing:
- Ensure mic and system audio are enabled in settings
- Wait 5-10 seconds for first transcripts
- Check internet connectivity
Development issues:
- Rebuild native modules:
npm run rebuild - Check Node.js version (requires 18+)
- Review logs:
~/Library/Application Support/call-md/logs/
Application data is stored in:
~/Library/Application Support/call-md/
├── data/
│ └── call-md.db # SQLite database
└── logs/
└── app-YYYY-MM-DD.log # Daily log files
- Documentation: docs.videodb.io
- Issues: GitHub Issues
- Discord: Join community
- API Key: VideoDB Console
Made with ❤️ by the VideoDB team