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

Published: (April 2, 2026 at 01:04 PM EDT)
4 min read
Source: Dev.to

Source: Dev.to

Installation

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.

Sending a Notetaker Bot

nylas notetaker send --meeting-link "https://zoom.us/j/123456789"
# => Notetaker bot joining meeting...
# => Notetaker ID: nt_abc123

A bot joins the call, records audio/video, and generates a transcript when the meeting ends.

Supported 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/..."

Retrieving 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

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.

Calendar Integration

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

Using Transcripts with AI

import subprocess, json

# Get transcript as JSON
result = subprocess.run(
    ["nylas", "notetaker", "transcript", "nt_abc123", "--json"],
    capture_output=True, text=True
)
transcript = json.loads(result.stdout)

# Build a prompt for an LLM
prompt = "Extract action items from this meeting transcript:\n\n"
for segment in transcript:
    prompt += f"[{segment['speaker']}]: {segment['text']}\n"

# Send `prompt` to your preferred LLM client

For a full example of building AI agents that process email and meeting data, see Build an LLM Agent with Email Tools.

Emailing the Transcript

# 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.

AI Agents via MCP

nylas mcp install --assistant claude-code

Your agent can then record meetings, retrieve transcripts, and send follow‑ups—autonomously. See Give Your AI Agent an Email Address for full setup.

Feature Comparison

FeatureOtter.aiFireflies.aiNylas CLI
CLI interfaceNoNoYes
JSON outputNoAPI onlyBuilt‑in
Calendar integrationSeparateSeparateSame tool
Email follow‑upsNoNoSame tool
AI agent (MCP)NoNoBuilt‑in
Self‑hosted optionNoNoYes
Zoom + Meet + Teams supportYesYesYes

For a broader comparison: Nylas CLI vs Recall.ai for AI Agent Email.

Additional Guides

  • Connect Voice Agents to Email and Calendar (the notetaker pairs with voice frameworks like LiveKit and Vapi)
  • Record Zoom, Meet, and Teams from the CLI (full guide with scheduling, speaker identification, and storage options)
  • 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:

0 views
Back to Blog

Related posts

Read more »

New Rentgen Release v1.20.0 🚀

Release v1.20.0 🚀 - Project export / import main feature No accounts. No cloud. No data leaving your machine. Export your project → get a file → put it anywhe...

Why 'Optimize Your Images' Is Bad Advice

I think a lot of founders hear “optimize your images” and still don’t know what that means in practice. Usually it’s a mix of wrong format, wrong dimensions, du...