Gmail CLI for AI Agents

Use Composio Universal CLI with Gmail. Summarize unread emails from this morning, create draft replies to urgent messages, and more using natural language, with authentication handled for you.

Gmail logoGmail
Oauth2

Gmail is Google's email service with powerful spam protection, search, and G Suite integration. It keeps your inbox organized and makes communication fast and reliable.

61 Tools2 Triggers

Introduction

CLIs are eating MCPs. The industry is converging on the very same idea. MCPs for all their merit can be token hungry, slow, and unreliable for complex tool chaining. However, coding agents have become incredibly good at working with CLIs, and in fact they are far more comfortable working with CLI tools than MCP.

With Composio's Universal CLI, your coding agents can talk to over 1500+ SaaS applications. With Gmail, agents can read emails, search your inbox, draft messages, manage labels, and organize threads, and more — all without worrying about authentication.

This guide walks you through Composio Universal CLI and explains how you can connect it with coding agents like Claude Code, Codex, OpenCode, etc, for end-to-end Gmail automation.

Also integrate Gmail with

What is Universal CLI and why use it?

The idea behind building the universal CLI is to give agents a single command interface to interact with all your external applications. Here's what you'll get with it:

  • Agent-friendly: Coding agents like Claude Code, Codex, and OpenCode can use CLI tools natively — no MCP setup required.
  • Authentication handled: Connect once via OAuth or API Key, and all CLI commands work with your credentials automatically.
  • Tool discovery: Search, inspect, and execute 20,000+ tools across 1500+ apps from one interface.
  • Trigger support: Use triggers to listen for events across your apps, powered by real-time webhooks or polling under the hood.
  • Type generation: Generate typed schemas for autocomplete and type safety in your projects.

Prerequisites

Install the Composio CLI, authenticate, and initialize your project:

bash
# Install the Composio CLI
curl -fsSL https://composio.dev/install | bash

# Authenticate with Composio
composio login

During login you'll be redirected to sign in page, finish the complete flow and you're all set.

Composio CLI authentication flow

Connecting Gmail to Coding Agents via Universal CLI

Once it is installed, it's essentially done. Claude Code, Codex, OpenCode, OpenClaw, or any other agent will be able to access the CLI. A few steps to give agents access to your apps.

  1. Launch your Coding Agent — Claude Code, Codex, OpenCode, anything you prefer.
  2. Prompt it to "Authenticate with Gmail"
  3. Complete the authentication and authorization flow and your Gmail integration is all set.
  4. Start asking anything you want.

Universal CLI Commands for Gmail

You can also manually execute CLI commands to interact with your Gmail.

Connect your Gmail account

Link your Gmail account and verify the connection:

bash
# Connect your Gmail account (opens OAuth flow)
composio connected-accounts link gmail

# Verify the connection
composio connected-accounts list --toolkits gmail

Discover Gmail tools

Search and inspect available Gmail tools:

bash
# List all available Gmail tools
composio tools list --toolkit gmail

# Search for Gmail tools by action
composio tools search "gmail"

# Inspect a tool's input schema
composio tools info GMAIL_ADD_LABEL_TO_EMAIL

Common Gmail Actions

Modify email labels — Adds and/or removes specified gmail labels for a message; ensure `message id` and all `label ids` are valid (use 'listlabels' for custom label ids)

bash
composio tools execute GMAIL_ADD_LABEL_TO_EMAIL \
  --message_id "17f1b2b9c1b2a3d4"

Create email draft — Creates a gmail email draft, supporting to/cc/bcc, subject, plain/html body (ensure `is html=true` for html), attachments, and threading

bash
composio tools execute GMAIL_CREATE_EMAIL_DRAFT \
  --body "Hello Team,  Please find the attached report for your review.  Best regards, Your Name" \
  --subject "Project Update Q3" \
  --recipient_email "john.doe@example.com"

Create label — Creates a new label with a unique name in the specified user's gmail account

bash
composio tools execute GMAIL_CREATE_LABEL \
  --label_name "Work"

Delete Draft — Permanently deletes a specific gmail draft using its id; ensure the draft exists and the user has necessary permissions for the given `user id`

bash
composio tools execute GMAIL_DELETE_DRAFT \
  --draft_id "r-8388446164079304564"

Set up Gmail Triggers

Listen for events in real time using triggers:

Email Sent — Triggers when a Gmail message is sent by the authenticated user

bash
# Find your connected account ID
composio connected-accounts list --toolkits gmail

# Create a trigger
composio triggers create GMAIL_EMAIL_SENT_TRIGGER \
  --connected-account-id <your-connected-account-id> \
  --trigger-config '{
  "query": "to:someone@example.com",
  "userId": "me",
  "interval": 2
}'

# Listen for trigger events in real time
composio triggers listen --toolkits gmail --table

New Gmail Message Received Trigger — Triggers when a new message is received in Gmail

bash
# Find your connected account ID
composio connected-accounts list --toolkits gmail

# Create a trigger
composio triggers create GMAIL_NEW_GMAIL_MESSAGE \
  --connected-account-id <your-connected-account-id> \
  --trigger-config '{
  "query": "label:inbox OR label:sent",
  "interval": 2,
  "labelIds": "INBOX"
}'

# Listen for trigger events in real time
composio triggers listen --toolkits gmail --table

Generate Type Definitions

Generate typed schemas for Gmail tools to get autocomplete and type safety in your project:

bash
# Auto-detect language
composio generate --toolkits gmail

# TypeScript
composio ts generate --toolkits gmail

# Python
composio py generate --toolkits gmail

Tips & Tricks

  • Always inspect a tool's input schema before executing: composio tools info <TOOL_NAME>
  • Pipe output with jq for better readability: composio tools execute TOOL_NAME -d '{}' | jq
  • Set COMPOSIO_API_KEY as an environment variable for CI/CD pipelines
  • Use composio dev logs tools to inspect execution logs and debug issues

Next Steps

  • Try asking your coding agent to perform various Gmail operations
  • Explore cross-app workflows by connecting more toolkits
  • Set up triggers for real-time automation
  • Use composio generate for typed schemas in your projects
TOOLS & TRIGGERS

Supported Tools and Triggers

Every Gmail action and event your agent gets out of the box.

Modify email labels

Adds and/or removes specified Gmail labels for a message; ensure `message_id` and all `label_ids` are valid (use 'listLabels' for custom label IDs).

Batch delete Gmail messages

Permanently deletes multiple Gmail messages by ID, bypassing Trash.

Batch modify Gmail messages

Adds or removes labels on up to 1,000 Gmail messages in one request, supporting operations such as archiving and marking messages read or unread.

Create email draft

Creates a Gmail draft with optional recipients, subject, plain or HTML body, attachments, and threading.

Create Gmail filter

Tool to create a new Gmail filter with specified criteria and actions.

Create label

Creates a Gmail label and returns its label ID.

Delete Draft

Permanently deletes a specific Gmail draft using its ID with no recovery possible; verify the correct `draft_id` and obtain explicit user confirmation before calling.

Delete Gmail filter

Tool to permanently delete a Gmail filter by its ID.

Delete label from account (permanent)

Permanently DELETES a user-created Gmail label from the account (not from a message).

Delete message

Permanently deletes a specific email message by its ID from a Gmail mailbox; for `user_id`, use 'me' for the authenticated user or an email address to which the authenticated user has delegated access.

Delete thread

Tool to immediately and permanently delete a specified thread and all its messages.

Fetch emails

Lists Gmail messages with query and label filtering, pagination, and optional message details.

Fetch message by message ID

Fetches a Gmail message by its message ID in the requested format and returns formatted message details.

Fetch Message by Thread ID

Retrieves messages from an accessible Gmail thread by thread ID, returning thread details and a messages array.

Forward email message

Forwards an existing Gmail message to specified recipients, with optional additional text.

Get Gmail attachment

Retrieves a Gmail message attachment by message and attachment IDs and returns a downloadable file using the supplied filename.

Get Auto-Forwarding Settings

Tool to get the auto-forwarding setting for the specified account.

Get contacts

Lists saved Google contacts with selectable fields and pagination, optionally including Other Contacts.

Get Draft

Retrieves a single Gmail draft by its ID.

Get Gmail filter

Tool to retrieve a specific Gmail filter by its ID.

Get label details

Gets details for a specified Gmail label.

Get Language Settings

Tool to retrieve the language settings for a Gmail user.

Get People

Retrieves a person's details by resource name or lists the authenticated user's Other Contacts, using a field mask to select the information returned.

Get Profile

Retrieves Gmail profile information (email address, aggregate messagesTotal/threadsTotal, historyId) for a user.

Get Vacation Settings

Tool to retrieve vacation responder settings for a Gmail user.

Import message

Tool to import a message into the user's mailbox with standard email delivery scanning and classification.

Insert message into mailbox

Tool to insert a message into the user's mailbox similar to IMAP APPEND.

List CSE identities

Lists a page of client-side encrypted identities and their key-pair associations.

List CSE key pairs

Lists a page of client-side encryption key pairs, including public keys and enablement states.

List Drafts

Retrieves a paginated list of email drafts from a user's Gmail account.

List Gmail filters

Tool to list all Gmail filters (rules) in the mailbox.

List forwarding addresses

Tool to list all forwarding addresses for the specified Gmail account.

List Gmail history

Lists Gmail mailbox change history since a known history ID for incremental sync, with optional label and history-type filters and pagination.

List Gmail labels

Retrieves all system and user-created labels for a Gmail account in a single unpaginated response.

List send-as aliases

Lists the send-as aliases for a Gmail account, including the primary address and custom 'from' aliases.

List S/MIME configs

Lists S/MIME certificate configurations for a specified Gmail send-as alias.

List threads

Retrieves a list of email threads from a Gmail account, identified by `user_id` (email address or 'me'), supporting filtering and pagination.

Modify thread labels

Adds or removes specified existing label IDs from a Gmail thread, affecting all its messages; ensure the thread ID is valid.

Trash thread

Moves the specified thread to the trash.

Move to Trash

Moves an existing, non-deleted email message to the trash for the specified user.

Patch Label

Patches the specified user-created label.

Patch send-as alias

Patches a Gmail send-as alias, including its display name, reply-to address, signature, default status, or SMTP configuration.

Reply to email thread

Sends a reply to a Gmail thread using its original subject and quoting the last returned message.

Search People

Searches saved contacts and optionally Other Contacts by query, returning matching person records.

Send Draft

Sends an existing Gmail draft immediately to the recipients already in its To, Cc, and Bcc headers.

Send Email

Sends an email immediately through Gmail to specified To, Cc, or Bcc recipients, with a subject or body and optional attachments.

Get IMAP Settings

Retrieves the IMAP settings for a Gmail user account, including whether IMAP is enabled, auto-expunge behavior, expunge behavior, and maximum folder size.

Get POP settings

Tool to retrieve POP settings for a Gmail account.

Get send-as alias

Tool to retrieve a specific send-as alias configuration for a Gmail user.

Stop watch notifications

Tool to stop receiving push notifications for a Gmail mailbox.

Untrash Message

Tool to remove a message from trash in Gmail.

Untrash thread

Tool to remove a thread from trash in Gmail.

Update Google Contact

Replace selected fields on an existing saved Google contact.

Update draft

Updates a Gmail draft by ID by replacing its message.

Update IMAP settings

Tool to update IMAP settings for a Gmail account.

Update Label

Updates an existing Gmail label's name, visibility settings, or color to help organize the mailbox.

Update Language Settings

Tool to update the language settings for a Gmail user.

Update POP settings

Tool to update POP settings for a Gmail account.

Update send-as alias

Updates a Gmail send-as alias, including its display name, signature, reply-to address, or SMTP settings; Gmail sanitizes HTML signatures before saving.

Update Vacation Settings

Tool to update vacation responder settings for a Gmail user.

Who Am I

Return the identity (email, name) of the connected Gmail account.

FAQ

Frequently asked questions

The Composio Universal CLI is a single command-line interface that lets coding agents and developers interact with 1500+ SaaS applications. It handles authentication, tool discovery, action execution, and trigger setup — all from the terminal, without needing to configure MCP servers.

Any coding agent that can run shell commands works with the Composio CLI — including Claude Code, Codex, OpenCode, OpenClaw, and others. Once the CLI is installed, agents automatically discover and use the composio commands to interact with Gmail and other connected apps.

MCP servers require configuration and can be token-heavy for complex workflows. The CLI gives agents a direct, lightweight interface — no server setup needed. Agents simply call composio commands like any other shell tool. It's faster to set up, more reliable for multi-step tool chaining, and works natively with how coding agents already operate.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Gmail data and credentials are handled as safely as possible. You can also bring your own OAuth credentials for full control.

Start with Gmail.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Gmail tool your agent needs.Free to start.

Start building