Recording a meeting usually means signing up for a third-party service, installing a desktop app, and hoping the bot joins on time. If you want the transcript programmatically — for feeding into an LLM, building meeting summaries, or logging action items — you're looking at another API integration.
Nylas CLI has a built-in notetaker that joins Zoom, Google Meet, and Microsoft Teams calls, records them, and returns the transcript from the command line. One command to send the bot, one command to get the recording back.
Install
# macOS / Linux
brew install nylas/nylas-cli/nylas
# Windows PowerShell
irm https://cli.nylas.com/install.ps1 | iex
New to the CLI? The getting started guide takes under a minute.
Send a notetaker to a meeting
nylas notetaker send --meeting-link "https://zoom.us/j/123456789"
# => Notetaker bot joining meeting...
# => Notetaker ID: nt_abc123
That's it. A bot joins the Zoom call, records audio and video, and generates a transcript when the meeting ends.
Works with all three major platforms:
# Zoom
nylas notetaker send --meeting-link "https://zoom.us/j/123456789"
# Google Meet
nylas notetaker send --meeting-link "https://meet.google.com/abc-defg-hij"
# Microsoft Teams
nylas notetaker send --meeting-link "https://teams.microsoft.com/l/meetup-join/..."
Get the recording and transcript
After the meeting ends, retrieve the results:
# Check status
nylas notetaker status nt_abc123
# Get the transcript
nylas notetaker transcript nt_abc123
# => [00:01:23] Alice: Let's discuss the Q2 roadmap.
# => [00:01:45] Bob: I think we should prioritize the API redesign...
# Get transcript as JSON for processing
nylas notetaker transcript nt_abc123 --json
The JSON output includes timestamps, speaker labels, and confidence scores — ready for piping into jq, Python, or an LLM.
Auto-record from your calendar
Combine the notetaker with calendar management to auto-record upcoming meetings:
# List today's events with meeting links
nylas calendar list --from "today" --to "tomorrow" --json | \
jq -r '.[] | select(.conferencing != null) | .conferencing.details.url'
# Record all meetings on your calendar today
nylas calendar list --from "today" --to "tomorrow" --json | \
jq -r '.[] | select(.conferencing != null) | .conferencing.details.url' | \
while read url; do
nylas notetaker send --meeting-link "$url"
done
Provider-specific calendar guides:
- Manage Google Calendar from the CLI
- Manage Outlook Calendar from the CLI
- Manage Exchange Calendar from the CLI
Feed transcripts to an LLM
The real power is combining recordings with AI. Extract the transcript and pipe it into any LLM for summaries, action items, or follow-up drafts:
import subprocess
import json
# Get transcript
result = subprocess.run(
["nylas", "notetaker", "transcript", "nt_abc123", "--json"],
capture_output=True, text=True
)
transcript = json.loads(result.stdout)
# Feed to LLM for action items
# (use your preferred LLM client here)
prompt = f"Extract action items from this meeting transcript:\n\n"
for segment in transcript:
prompt += f"[{segment['speaker']}]: {segment['text']}\n"
For a full example of building AI agents that process email and meeting data, see Build an LLM Agent with Email Tools.
Send meeting follow-ups automatically
After recording, use the CLI to email the transcript to attendees:
# Get attendee emails from the calendar event
ATTENDEES=$(nylas calendar get evt_xyz --json | jq -r '.participants[].email' | tr '\n' ',')
# Email the transcript
nylas email send \
--to "$ATTENDEES" \
--subject "Meeting notes: Q2 Roadmap" \
--body "$(nylas notetaker transcript nt_abc123)" \
--yes
Full email sending guide: Send Email from the Command Line
Give AI agents meeting access via MCP
AI coding agents can use the notetaker through MCP. One command gives Claude Code, Cursor, or Codex access to recordings and transcripts alongside email and calendar:
nylas mcp install --assistant claude-code
Your agent can then record meetings, retrieve transcripts, and send follow-ups — all autonomously. Full setup: Give Your AI Agent an Email Address
For more on connecting agents to communication tools: Give AI Agents Email Access via MCP
Compared to alternatives
| Feature | Otter.ai | Fireflies.ai | Nylas CLI |
|---|---|---|---|
| CLI interface | No | No | Yes |
| JSON output | No | API only | Built-in |
| Calendar integration | Separate | Separate | Same tool |
| Email follow-ups | No | No | Same tool |
| AI agent (MCP) | No | No | Built-in |
| Self-hosted option | No | No | Yes |
| Zoom + Meet + Teams | Yes | Yes | Yes |
For a broader comparison: Nylas CLI vs Recall.ai for AI Agent Email
Use with voice agents
Building a voice agent that needs meeting context? The notetaker pairs with voice frameworks like LiveKit and Vapi:
# Voice agent retrieves last meeting transcript for context
transcript = subprocess.run(
["nylas", "notetaker", "transcript", "nt_abc123", "--json"],
capture_output=True, text=True
)
Full guide: Connect Voice Agents to Email and Calendar
Full guide with scheduling, speaker identification, and storage options: Record Zoom, Meet, and Teams from the CLI
Related guides:
- Manage Calendar from the Terminal
- Build an AI Email Triage Agent
- AI Agent Audit Logs
- Why AI Agents Need Email
- Email as Memory for AI Agents
- Best CLI Email Tools Compared
All guides: cli.nylas.com/guides
Top comments (0)