DEV Community

Qasim Muhammad
Qasim Muhammad

Posted on • Originally published at cli.nylas.com

Record Zoom, Google Meet, and Teams Calls from the Command Line

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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/..."
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Provider-specific calendar guides:

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"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
)
Enter fullscreen mode Exit fullscreen mode

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:

All guides: cli.nylas.com/guides

Top comments (0)