Manage your inbox, send emails, and search conversation history directly through AI.
Install
mkdir -p .claude/skills/gmail && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/3163" && unzip -o skill.zip -d .claude/skills/gmail && rm skill.zipInstalls to .claude/skills/gmail
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
This skill should be used when the user asks to "check email", "read emails", "send email", "reply to email", "search inbox", or manages Gmail. Supports multi-account Gmail integration for reading, searching, sending, and label management.Key capabilities
- →Manages multi-account email search and organization
- →Executes sequential multi-step communication flows
- →Drafts and validates email content before sending
- →Labels and categorizes threads based on project context
How it works
Follows a mandatory 5-step task sequence, including parallel information gathering and a user-verified testing phase, to automate email dispatch.
Inputs & outputs
When to use gmail
- →Search email threads for context
- →Draft and send project-related emails
- →Organize emails with labels
About this skill
Gmail Skill
Manage emails through Gmail API - read, search, send, and organize across multiple Google accounts.
Account Setup
Before running any command, read accounts.yaml to check registered accounts.
If
accounts.yamlis missing or empty → Readreferences/setup-guide.mdfor initial setup
# accounts.yaml example
accounts:
personal:
email: [email protected]
description: Personal Gmail
work:
email: [email protected]
description: Work account
Email Sending Workflow (5 Steps)
When sending emails, create 5 Tasks with TaskCreate and execute sequentially:
| Step | Task | Key Action |
|---|---|---|
| 1 | Gather context | Run Explore SubAgents in parallel: recipient info, related projects, background context |
| 2 | Check previous conversations | Search --query "to:recipient OR from:recipient newer_than:90d" → AskUserQuestion for thread selection |
| 3 | Draft email | Compose draft → AskUserQuestion for feedback |
| 4 | Test send | Send [TEST] email to user's own address → Open in Gmail web → Request confirmation |
| 5 | Actual send | Send to recipient → Report completion |
Signature: Append ---\nSent with Claude Code to all outgoing emails
Workflow Example: "Send a meeting email to John"
1. Create 5 Tasks
2. Step 1: Run parallel Explore SubAgents
- Search recipient (John) info (partners/, projects/, context.md, etc.)
- Search meeting context (calendar, recent meeting notes, etc.)
3. Step 2: Search "to:[email protected] OR from:[email protected]"
→ If previous conversation exists, AskUserQuestion (reply/new email)
4. Step 3: Draft email → AskUserQuestion (proceed/revise)
5. Step 4: Test send to my email → Open in Gmail web (`open "https://mail.google.com/mail/u/0/#inbox/{message_id}"`) → Request confirmation
6. Step 5: Actual send → Done
CLI Quick Reference
# List messages
uv run python scripts/list_messages.py --account work --query "is:unread" --max 10
# Send email
uv run python scripts/send_message.py --account work --to "[email protected]" --subject "Subject" --body "Content"
# Check profile
uv run python scripts/manage_labels.py --account work profile
Detailed CLI usage:
references/cli-usage.mdSearch query reference:references/search-queries.md
View Email in Web
After sending, use the returned Message ID to view directly in Gmail web:
# URL format
https://mail.google.com/mail/u/0/#inbox/{message_id}
# Example: Open in browser after test send
open "https://mail.google.com/mail/u/0/#inbox/19c145bbd47ddd01"
Note:
u/0is the first logged-in account,u/1is the second account
File Structure
skills/gmail/
├── SKILL.md
├── accounts.yaml # Account metadata
├── scripts/ # CLI scripts
├── references/
│ ├── setup-guide.md # Initial setup guide
│ ├── cli-usage.md # Detailed CLI usage
│ ├── search-queries.md # Search query reference
│ └── credentials.json # OAuth Client ID (gitignore)
├── assets/
│ ├── accounts.default.yaml # Account config template
│ ├── email-templates.md # Email body templates
│ └── signatures.md # Signature templates (Plain/HTML)
└── accounts/ # Per-account tokens (gitignore)
Error Handling
| Situation | Resolution |
|---|---|
| accounts.yaml missing | Read references/setup-guide.md for initial setup |
| Token missing | Guide user to run setup_auth.py --account <name> |
| Token expired | Auto-refresh; if failed, guide re-authentication |
When not to use it
- →Sending sensitive or non-work-related personal messages
- →High-frequency automated spamming
Prerequisites
Limitations
- →Requires manual confirmation at each step
- →Limited by Gmail API rate constraints
- →Context discovery is limited to indexed files
How it compares
It enforces a rigorous verification workflow that includes a mandatory test-send to the user, ensuring higher reliability than simple draft generation.
Compared to similar skills
gmail side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| gmail (this skill) | 16 | 6mo | Review | Beginner |
| himalaya | 50 | 2mo | Review | Intermediate |
| officeemail-management | 8 | 8mo | No flags | Intermediate |
| sendgrid-automation | 1 | 4mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by team-attention
View all by team-attention →You might also like
himalaya
openclaw
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
officeemail-management
harperreed
Handle email tasks (checking inbox, drafting replies, managing threads, adding events to calendar). Use when working with emails to prevent common mistakes like broken threading or missing recipients.
sendgrid-automation
sickn33
Automate SendGrid email operations including sending emails, managing contacts/lists, sender identities, templates, and analytics via Rube MCP (Composio). Always search tools first for current schemas.
klaviyo
alinaqi
Klaviyo email/SMS marketing - profiles, events, flows, segmentation
slack
motoya0118
Post a question to Slack and wait for a reply, or post a reply into a thread using scripts/slack.py.
funding-signal-outreach
gooseworks-ai
>