gmail

Send, read, and manage emails via Gmail. Use when asked to send an email, check inbox, read messages, draft emails, or manage Gmail.

9 stars

Best use case

gmail is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Send, read, and manage emails via Gmail. Use when asked to send an email, check inbox, read messages, draft emails, or manage Gmail.

Teams using gmail should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/gmail/SKILL.md --create-dirs "https://raw.githubusercontent.com/orthogonal-sh/skills/main/skills/gmail/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/gmail/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How gmail Compares

Feature / AgentgmailStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Send, read, and manage emails via Gmail. Use when asked to send an email, check inbox, read messages, draft emails, or manage Gmail.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Gmail

Send, read, and manage emails through Gmail integration. Connect to your Gmail account to send emails, check your inbox, read messages, create drafts, and more.

## Requirements

- Install the `orth` CLI
- Connect your Gmail account at https://orthogonal.com/dashboard/integrations
- OAuth connection must be active (HTTP 428 response means not connected)

## Actions

### Send Email

Send an email with optional attachments and formatting.

```bash
orth run gmail /send-email --body '{
  "recipient_email": "user@example.com",
  "body": "Hello, this is a test email.",
  "subject": "Test Email"
}'
```

**Parameters:**
- `recipient_email` (required) - Primary recipient's email address
- `body` (required) - Email content/message
- `subject` - Email subject line
- `cc` - CC recipients (comma-separated emails)
- `bcc` - BCC recipients (comma-separated emails)  
- `is_html` - Send as HTML format (true/false)
- `attachment` - File attachment path
- `extra_recipients` - Additional recipients array
- `user_id` - Specific user ID to send as

### List Emails

Retrieve emails from your inbox or specific folders.

```bash
orth run gmail /list-emails --body '{
  "max_results": 10,
  "query": "is:unread"
}'
```

**Parameters:**
- `query` - Gmail search query (e.g., "is:unread", "from:user@example.com")
- `label_ids` - Specific Gmail label IDs to search
- `max_results` - Maximum number of emails to return
- `verbose` - Include detailed email data (true/false)
- `ids_only` - Return only message IDs (true/false)
- `include_payload` - Include full message content (true/false)
- `include_spam_trash` - Include spam and trash folders (true/false)
- `page_token` - Token for pagination
- `user_id` - Specific user ID to query

### Get Email

Retrieve a specific email by its message ID.

```bash
orth run gmail /get-email --body '{
  "message_id": "MESSAGE_ID_HERE"
}'
```

**Parameters:**
- `message_id` (required) - Gmail message ID to retrieve
- `format` - Response format (full, metadata, minimal)
- `user_id` - Specific user ID to query

### Create Draft

Create a draft email for later sending.

```bash
orth run gmail /create-draft --body '{
  "recipient_email": "user@example.com",
  "body": "Draft email content",
  "subject": "Draft Subject"
}'
```

**Parameters:**
- `recipient_email` (required) - Primary recipient's email address
- `body` (required) - Email content/message
- `subject` (required) - Email subject line
- `cc` - CC recipients (comma-separated emails)
- `bcc` - BCC recipients (comma-separated emails)
- `is_html` - Draft as HTML format (true/false)
- `thread_id` - Thread ID to reply within
- `attachment` - File attachment path
- `extra_recipients` - Additional recipients array
- `user_id` - Specific user ID to create draft as

## Usage Examples

**Send a quick email:**
```bash
orth run gmail /send-email -b '{"recipient_email":"colleague@company.com","body":"The report is ready for review.","subject":"Report Ready"}'
```

**Check unread emails:**
```bash
orth run gmail /list-emails -b '{"query":"is:unread","max_results":5}'
```

**Get a specific email:**
```bash
orth run gmail /get-email -b '{"message_id":"17a1b2c3d4e5f6g7"}'
```

**Create HTML draft:**
```bash
orth run gmail /create-draft -b '{"recipient_email":"team@company.com","subject":"Weekly Update","body":"<h1>Weekly Report</h1><p>All tasks completed.</p>","is_html":true}'
```

## Error Handling

- **HTTP 428** - Gmail integration not connected. Visit https://orthogonal.com/dashboard/integrations to connect your account
- **400 Bad Request** - Invalid email format or missing required parameters
- **403 Forbidden** - Insufficient permissions or quota exceeded
- **404 Not Found** - Message ID does not exist
- **429 Rate Limited** - Too many requests, wait before retrying

## Tips

- Use Gmail search syntax in `query` parameter (is:unread, from:email, has:attachment)
- Set `max_results` appropriately to avoid large responses
- Use `ids_only=true` for fast email counting
- HTML emails need `is_html=true` parameter
- Draft emails can be edited later in Gmail interface

Related Skills

yt-dlp-downloader

9
from orthogonal-sh/skills

Download videos from YouTube, Bilibili, Twitter, and thousands of other sites using yt-dlp. Use when the user provides a video URL and wants to download it, extract audio (MP3), download subtitles, or select video quality. Triggers on phrases like "下载视频", "download video", "yt-dlp", "YouTube", "B站", "抖音", "提取音频", "extract audio".

slack

9
from orthogonal-sh/skills

Send messages and manage Slack channels. Use when asked to send Slack messages, post to channels, list channels, or fetch message history.

yc-batch-evaluator

9
from orthogonal-sh/skills

Evaluate YC batch companies for investment — scrapes the YC directory, researches each company and its founders (work history, LinkedIn, website), assesses founder-company fit, and exports to Google Sheets with priority rankings. Use when asked to evaluate YC companies, research a YC batch, screen startups, or do due diligence on YC companies.

website-screenshot

9
from orthogonal-sh/skills

Take screenshots of websites and web pages

weather

9
from orthogonal-sh/skills

Get current weather and forecasts using free APIs (no API key required). Use when asked about weather, temperature, forecasts, or climate conditions for any location.

weather-forecast

9
from orthogonal-sh/skills

Get weather forecasts - temperature, precipitation, wind, and conditions

vhs-terminal-recordings

9
from orthogonal-sh/skills

Create polished terminal GIF recordings using VHS (Video Hardware Software) by Charmbracelet. Use when asked to create terminal demos, CLI gifs, command-line recordings, or animated terminal screenshots for documentation, READMEs, or marketing.

verify-email

9
from orthogonal-sh/skills

Verify if an email address is valid and deliverable

valyu

9
from orthogonal-sh/skills

Web search, AI answers, content extraction, and async deep research

uptime-monitor

9
from orthogonal-sh/skills

Monitor website uptime - check availability, response times, and status

twitter-profile-lookup

9
from orthogonal-sh/skills

Look up Twitter/X profiles - get bio, followers, tweets, and engagement

tomba

9
from orthogonal-sh/skills

Email finder and verifier - find emails from domains, LinkedIn, or company search