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.
- License 许可
- Apache-2.0
- 最近更新
- 2026-04-21
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- 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.
02 资源文件 17
- 其他.gitignore254 B
- 参考文档docs/google-cloud-setup.md5.6 KB
- 参考文档package.json421 B
- 参考文档README.md7.3 KB
- 脚本scripts/action-logger.js3.5 KB
- 脚本scripts/auth/auth-utils.js7.2 KB
- 脚本scripts/auth/setup-oauth.js4.5 KB
- 脚本scripts/gmail-drafts.js5.5 KB
- 脚本scripts/gmail-every-paywall-cleanup.js4.7 KB
- 脚本scripts/gmail-filters.js5.0 KB
- 脚本scripts/gmail-forward.js2.0 KB
- 脚本scripts/gmail-labels.js4.2 KB
- 脚本scripts/gmail-read.js3.3 KB
- 脚本scripts/gmail-search.js2.5 KB
- 脚本scripts/gmail-send.js2.4 KB
- 脚本scripts/manage-accounts.js3.2 KB
- 脚本scripts/migrate-tokens.js2.1 KB
03 SKILL.md 正文
Gmail Manager Skill
This skill provides comprehensive Gmail integration through lightweight CLI scripts. All operations are token-efficient and composable.
First-Time Setup
Before using this skill, you must set up OAuth authentication:
-
Install dependencies:
cd ~/.claude/skills/gmail-skill && npm install -
Set up Google Cloud credentials:
- Follow the guide in
docs/google-cloud-setup.md - Download
credentials.jsonand save toscripts/auth/credentials.json
- Follow the guide in
-
Authenticate:
cd ~/.claude/skills/gmail-skill && npm run setup
This will open a browser for Google OAuth and save your token locally.
Multi-Account Support
The Gmail skill supports multiple accounts (e.g., personal and work email):
Add Additional Accounts
# 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.
Manage Accounts
# 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
Using Specific Accounts
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.
Usage Guidelines
1. Read Documentation On-Demand
When first using Gmail operations, read the comprehensive README:
cat ~/.claude/skills/gmail-skill/README.md
This provides detailed usage examples for all operations.
2. Execute Scripts via Bash
All scripts are in the scripts/ directory and output JSON for easy parsing:
cd ~/.claude/skills/gmail-skill/scripts
3. Parse JSON Output
All scripts return JSON. Parse the output and present relevant information to the user in a friendly format.
4. Chain Operations
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"
Available Operations
Send Email
node gmail-send.js --to "user@example.com" --subject "Subject" --body "Body text"
Search Emails
node gmail-search.js --query "is:unread" --limit 10
Read Message
node gmail-read.js --id "MESSAGE_ID"
Manage Labels
# List all labels
node gmail-labels.js --action list
# Add label to message
node gmail-labels.js --action add --id "MESSAGE_ID" --label "Important"
Manage Drafts
# 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"
Error Handling
If scripts fail:
- Check that
token.jsonexists inscripts/auth/ - If token is expired, run
npm run setupagain - Verify the user granted all required Gmail API permissions
Best Practices
- Always change to the scripts directory first to ensure relative paths work
- Parse JSON output and present user-friendly summaries
- Validate user input before passing to scripts
- Handle errors gracefully and provide helpful error messages
- Use search operators for precise email filtering (see README.md)
Token Efficiency
This skill is designed for minimal token usage:
- Documentation loaded only when needed
- Scripts are small and focused
- JSON output is compact and parseable
- No persistent server overhead
04 同仓库更多 Skills
data-reconciliation
暂无简介
speech-to-text
Transcribe video to timestamped text using Whisper tiny model (pre-installed).
video-processor
Process videos by removing segments and concatenating remaining parts. Use when you need to remove detected pauses/openings from videos, create highlight reels, or batch process segment removals using ffmpeg filter_complex.
silence-detector
Detect initial silence segments in audio/video using energy-based analysis. Use when you need to find low-energy periods at the start of recordings (title slides, setup time, pre-roll silence).
segment-combiner
Combine multiple segment detection results into a unified list. Use when you need to merge segments from different detectors, prepare removal lists for video processing, or consolidate detection outputs.
report-generator
Generate compression reports for video processing. Use when you need to create structured JSON reports with duration statistics, compression ratios, and segment details after video processing.