一键导入
gmail-skill
Manage Gmail - send, read, search emails, manage labels and drafts. Use when user wants to interact with their Gmail account for email operations.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Manage Gmail - send, read, search emails, manage labels and drafts. Use when user wants to interact with their Gmail account for email operations.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Analyzes UXR report PDFs and generates structured analysis documents with key findings, recommendations, and strategic connections. Use when given a UXR report to analyze.
Render a video clip with captions overlaid, using the Remotion captioner at `/Users/jvincent/Projects/remotion-captioner/`. Use when user provides a video file and wants to add captions/subtitles, mentions "caption this video", "add captions", "burn in subtitles", or provides a video + SRT file pair.
Create and iterate on MARP Markdown slide decks with HubSpot styling (two themes available — Trellis product palette and HubSpot brand-identity palette), AI-generated images via LiteLLM/Gemini, and slidegauge linting. Use when the user wants to create a presentation, build slides, make a slide deck, or work on a talk.
Generate a self-improving "autoresearch" loop for any Claude skill. Given a skill to improve and 3-5 quality constraints, scaffolds a standalone project (modeled on karpathy/autoresearch) that iterates on the skill's prompt by generating N samples per cycle, evaluating them against the constraints, and editing the skill to fix recurring failures — up to 30 cycles or until results are consistently perfect. Use when the user says something like "make an autoresearcher for my X skill" or "build a self-improving loop for skill Y".
Manage Google Calendar - search, create, update events and answer calendar questions. Use when user wants to interact with their Google Calendar for scheduling and calendar operations.
Analyze Readwise source documents (books, articles, podcasts) to generate thematic insights, extract key patterns, and update synthesis documents. Use after importing content with readwise-skill.
| name | gmail-skill |
| description | Manage Gmail - send, read, search emails, manage labels and drafts. Use when user wants to interact with their Gmail account for email operations. |
| version | 1.0.0 |
| allowed-tools | ["Bash","Read","Write"] |
This skill provides comprehensive Gmail integration through lightweight CLI scripts. All operations are token-efficient and composable.
Before using this skill, you must set up OAuth authentication:
Install dependencies:
cd ~/.claude/skills/gmail-skill && npm install
Set up Google Cloud credentials:
docs/google-cloud-setup.mdcredentials.json and save to scripts/auth/credentials.jsonAuthenticate:
cd ~/.claude/skills/gmail-skill && npm run setup
This will open a browser for Google OAuth and save your token locally.
The Gmail skill supports multiple accounts (e.g., personal and work email):
# Add a second account (from skill directory)
npm run setup -- --account work
# Add a third account
npm run setup -- --account personal
Each account needs separate OAuth authentication.
# List all configured accounts
node scripts/manage-accounts.js --list
# Set default account (used when --account is not specified)
node scripts/manage-accounts.js --set-default work
# Remove an account
node scripts/manage-accounts.js --remove old-account
All Gmail operations support the --account parameter:
# Send email from work account
node gmail-send.js --account work --to "user@example.com" --subject "..." --body "..."
# Send from personal (or omit --account to use default)
node gmail-send.js --account personal --to "friend@example.com" --subject "..." --body "..."
# Search work emails
node gmail-search.js --account work --query "is:unread"
If --account is not specified, the default account is used.
When first using Gmail operations, read the comprehensive README:
cat ~/.claude/skills/gmail-skill/README.md
This provides detailed usage examples for all operations.
All scripts are in the scripts/ directory and output JSON for easy parsing:
cd ~/.claude/skills/gmail-skill/scripts
All scripts return JSON. Parse the output and present relevant information to the user in a friendly format.
Save intermediate results to files when chaining operations:
# Search for emails
node gmail-search.js --query "from:user@example.com" > /tmp/search-results.json
# Read first message from results
MESSAGE_ID=$(cat /tmp/search-results.json | jq -r '.messages[0].id')
node gmail-read.js --id "$MESSAGE_ID"
node gmail-send.js --to "user@example.com" --subject "Subject" --body "Body text"
Email Formatting: The --body parameter accepts markdown and automatically converts it to styled HTML for email rendering. Use markdown headers (##), bold (**text**), lists (- item), and paragraphs (double newlines) for well-formatted emails. If you need raw HTML, use --html instead.
IMPORTANT: When sending long-form content (analyses, reports, briefings), ALWAYS use markdown formatting:
## headers to create visual sections**bold** for emphasis and key terms- bullet lists for structured points--- for horizontal rule separators between major sectionsFor long emails, use --body-file /path/to/file.md instead of --body. Write the markdown content to a temp file first, then pass the path. This avoids shell argument length limits.
node gmail-search.js --query "is:unread" --limit 10
node gmail-read.js --id "MESSAGE_ID"
# List all labels
node gmail-labels.js --action list
# Add label to message
node gmail-labels.js --action add --id "MESSAGE_ID" --label "Important"
# Create draft
node gmail-drafts.js --action create --to "user@example.com" --subject "Subject" --body "Draft body"
# Send draft
node gmail-drafts.js --action send --id "DRAFT_ID"
If scripts fail:
token.json exists in scripts/auth/npm run setup againThis skill is designed for minimal token usage: