Skip to main content
skill CX Codex

gmail — Claude Code skill: what it does, how to install

Searches, reads, and sends emails through Gmail directly from the agent interface. Helpful for triaging the inbox, managing drafts, and organizing labels.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add sanjay3290/ai-skills --skill gmail -a claude-code
Open on GitHub

What gmail does

This skill connects the agent directly to Gmail without requiring a full MCP server. All actions run through scripts/gmail.py, covering email search with Gmail query syntax, reading messages by ID, sending emails, and managing drafts. The tool also updates labels to archive threads, mark items as unread, or star messages.

Authentication relies on standalone OAuth handled by scripts/auth.py. It opens a browser during login and saves credentials into the system keyring. Tokens refresh automatically through a cloud function. Personal Gmail accounts are completely unsupported, so a Google Workspace account is strictly mandatory.

What it helps with

  • search emails using native Gmail query syntax
  • retrieve full message bodies or metadata by ID
  • compose drafts and send plain text or HTML emails
  • archive messages and organize labels in the inbox

Example prompts for the agent

  • Find all unread emails from colleagues received this week
  • Show the full content of the email with MESSAGE_ID
  • Create a draft to [email protected] with the subject Team Update

How to install gmail

1Skills CLI (Vercel)

npx skills add sanjay3290/ai-skills --skill gmail -a claude-code

2Manually: put the files in place

~/.claude/skills/gmail/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/gmail/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about gmail

How do I install gmail in Claude Code?

Install the skill by running npx skills add sanjay3290/ai-skills --skill gmail -a claude-code. The configuration is saved to ~/.claude/skills/gmail/SKILL.md.

What does the gmail skill do?

It allows agents to search, read, send emails, and manage drafts or labels in Gmail without running a dedicated MCP server.

Does this skill support personal Gmail accounts?

No, it only supports Google Workspace accounts. Personal accounts cannot be used with this skill.

Source text

SKILL.md · Apache-2.0
---
name: gmail
description: |
  Interact with Gmail - search emails, read messages, send emails, create drafts, and manage labels.
  Use when user asks to: search email, read email, send email, create email draft, mark as read,
  archive email, star email, or manage Gmail labels. Lightweight alternative to full Google
  Workspace MCP server with standalone OAuth authentication.
license: Apache-2.0
metadata:
  author: sanjay3290
  version: "1.0"
---

# Gmail

Lightweight Gmail integration with standalone OAuth authentication. No MCP server required.

> **⚠️ Requires Google Workspace account.** Personal Gmail accounts are not supported.

## First-Time Setup

Authenticate with Google (opens browser):
```bash
python scripts/auth.py login
```

Check authentication status:
```bash
python scripts/auth.py status
```

Logout when needed:
```bash
python scripts/auth.py logout
```

## Commands

All operations via `scripts/gmail.py`. Auto-authenticates on first use if not logged in.

### Search Emails

```bash
# Search with Gmail query syntax
python scripts/gmail.py search "from:[email protected] is:unread"

# Search recent emails (no query returns all)
python scripts/gmail.py search --limit 20

# Filter by label
python scripts/gmail.py search --label INBOX --limit 10

# Include spam and trash
python scripts/gmail.py search "subject:important" --include-spam-trash
```

### Read Email Content

```bash
# Get full message content
python scripts/gmail.py get MESSAGE_ID

# Get just metadata (headers)
python scripts/gmail.py get MESSAGE_ID --format metadata

# Get minimal response (IDs only)
python scripts/gmail.py get MESSAGE_ID --format minimal
```

### Send Emails

```bash
# Send a simple email
python scripts/gmail.py send --to "[email protected]" --subject "Hello" --body "Message body"

# Send with CC and BCC
python scripts/gmail.py send --to "[email protected]" --cc "[email protected]" --bcc "[email protected]" \
  --subject "Team Update" --body "Update message"

# Send from an alias (must be configured in Gmail settings)
python scripts/gmail.py send --to "[email protected]" --subject "Hello" --body "Message" \
  --from "Mile9 Accounts <[email protected]>"

# Send HTML email
python scripts/gmail.py send --to "[email protected]" --subject "HTML Email" \
  --body "<h1>Hello</h1><p>HTML content</p>" --html
```

### Draft Management

```bash
# Create a draft
python scripts/gmail.py create-draft --to "[email protected]" --subject "Draft Subject" \
  --body "Draft content"

# Send an existing draft
python scripts/gmail.py send-draft DRAFT_ID
```

### Modify Messages (Labels)

```bash
# Mark as read (remove UNREAD label)
python scripts/gmail.py modify MESSAGE_ID --remove-label UNREAD

# Mark as unread
python scripts/gmail.py modify MESSAGE_ID --add-label UNREAD

# Archive (remove from INBOX)
python scripts/gmail.py modify MESSAGE_ID --remove-label INBOX

# Star a message
python scripts/gmail.py modify MESSAGE_ID --add-label STARRED

# Unstar a message
python scripts/gmail.py modify MESSAGE_ID --remove-label STARRED

# Mark as important
python scripts/gmail.py modify MESSAGE_ID --add-label IMPORTANT

# Multiple label changes at once
python scripts/gmail.py modify MESSAGE_ID --remove-label UNREAD --add-label STARRED
```

### List Labels

```bash
# List all Gmail labels (system and user-created)
python scripts/gmail.py list-labels
```

## Gmail Query Syntax

Gmail supports powerful search operators:

| Query | Description |
|-------|-------------|
| `from:[email protected]` | Emails from a specific sender |
| `to:[email protected]` | Emails to a specific recipient |
| `subject:meeting` | Emails with "meeting" in subject |
| `is:unread` | Unread emails |
| `is:starred` | Starred emails |
| `is:important` | Important emails |
| `has:attachment` | Emails with attachments |
| `after:2024/01/01` | Emails after a date |
| `before:2024/12/31` | Emails before a date |
| `newer_than:7d` | Emails from last 7 days |
| `older_than:1m` | Emails older than 1 month |
| `label:work` | Emails with a specific label |
| `in:inbox` | Emails in inbox |
| `in:sent` | Sent emails |
| `in:trash` | Trashed emails |

Combine with AND (space), OR, or - (NOT):
```bash
python scripts/gmail.py search "from:[email protected] is:unread newer_than:1d"
python scripts/gmail.py search "subject:urgent OR subject:important"
python scripts/gmail.py search "from:[email protected] -is:starred"
```

## Common Label IDs

| Label | ID |
|-------|-----|
| Inbox | `INBOX` |
| Sent | `SENT` |
| Drafts | `DRAFT` |
| Spam | `SPAM` |
| Trash | `TRASH` |
| Starred | `STARRED` |
| Important | `IMPORTANT` |
| Unread | `UNREAD` |

## Token Management

Tokens stored securely using the system keyring:
- **macOS**: Keychain
- **Windows**: Windows Credential Locker
- **Linux**: Secret Service API (GNOME Keyring, KDE Wallet, etc.)

Service name: `gmail-skill-oauth`

Tokens automatically refresh when expired using Google's cloud function.

© sanjay3290 · Apache-2.0 · sanjay3290/ai-skills

Similar skills

All skills for Notes, tasks and projects →

From the same set18

postgres Runs safe read-only SQL queries against PostgreSQL databases. Helpful for inspecting schemas, running SELECT queries, and analyzing data without write risks. CX Codex +1 620installs google-docs Creates Google Docs, locates them by title, pulls out text and edits content straight from an agent chat. Needs a Google Workspace account. CX Codex +1 552installs mssql Runs read-only SQL queries against Microsoft SQL Server databases. Useful for exploring schemas and analyzing data without the risk of mutating records. CX Codex +1 537installs google-calendar This skill lets your agent read Google Calendar, create and edit events, and find free slots. OAuth only, no MCP server involved. CX Codex +1 536installs google-sheets This skill gives your agent read and write access to Google Sheets: pull ranges, append rows, search for files by name. Handy when the data lives in a spreadsheet, not in code. CX Codex +1 465installs mysql This skill runs SELECT queries against several MySQL databases and blocks every write. Handy when you want to inspect a schema or pull data without touching production. CX Codex +1 420installs google-slides A skill for searching, reading, creating, and editing Google Slides presentations directly from agent commands. Uses Python scripts with standalone OAuth. CX Codex +1 407installs jules Delegates coding tasks to Google Jules for background execution. Handy when you want an agent to write tests, refactor code, or review pull requests. CX Codex +1 398installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor