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

Installs 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.
239 chars✓ has a “when” trigger
Beginner

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

You give it
Email recipient and communication context
You get back
Sent email thread with documented context

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.yaml is missing or empty → Read references/setup-guide.md for 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:

StepTaskKey Action
1Gather contextRun Explore SubAgents in parallel: recipient info, related projects, background context
2Check previous conversationsSearch --query "to:recipient OR from:recipient newer_than:90d" → AskUserQuestion for thread selection
3Draft emailCompose draft → AskUserQuestion for feedback
4Test sendSend [TEST] email to user's own address → Open in Gmail web → Request confirmation
5Actual sendSend 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.md Search 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/0 is the first logged-in account, u/1 is 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

SituationResolution
accounts.yaml missingRead references/setup-guide.md for initial setup
Token missingGuide user to run setup_auth.py --account <name>
Token expiredAuto-refresh; if failed, guide re-authentication

When not to use it

  • Sending sensitive or non-work-related personal messages
  • High-frequency automated spamming

Prerequisites

Gmail API accessAccounts.yaml configuration

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.

SkillInstallsUpdatedSafetyDifficulty
gmail (this skill)166moReviewBeginner
himalaya502moReviewIntermediate
officeemail-management88moNo flagsIntermediate
sendgrid-automation14moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by team-attention

View all by team-attention

agent-council

team-attention

Collect and synthesize opinions from multiple AI agents. Use when users say "summon the council", "ask other AIs", or want multiple AI perspectives on a question.

29

session-analyzer

team-attention

This skill should be used when the user asks to "analyze session", "세션 분석", "evaluate skill execution", "스킬 실행 검증", "check session logs", "로그 분석", provides a session ID with a skill path, or wants to verify that a skill executed correctly in a past session. Post-hoc analysis of Claude Code sessions to validate skill/agent/hook behavior against SKILL.md specifications.

24

youtube-digest

team-attention

This skill should be used when the user asks to "유튜브 정리", "영상 요약", "transcript 번역", "YouTube digest", "영상 퀴즈", or provides a YouTube URL for analysis. Extracts transcript, generates summary/insights/Korean translation, and tests comprehension with 9 quiz questions across 3 difficulty levels. Optional Deep Research for web-based follow-up.

23

dev-scan

team-attention

개발 커뮤니티에서 기술 주제에 대한 다양한 의견 수집. "개발자 반응", "커뮤니티 의견", "developer reactions" 요청에 사용. Reddit, HN, Dev.to, Lobsters 등 종합.

10

google-calendar

team-attention

Google 캘린더 일정 조회/생성/수정/삭제. "오늘 일정", "이번 주 일정", "미팅 추가해줘" 요청에 사용. 여러 계정(work, personal) 통합 조회 지원.

11

kakaotalk

team-attention

This skill should be used when the user asks to "카톡 보내줘", "카카오톡 메시지", "KakaoTalk message", "채팅 읽어줘", "~에게 메시지 보내줘", or needs to send/read messages via KakaoTalk on macOS.

19

Search skills

Search the agent skills registry