Claude-skill-registry 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.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/gmail-skill" ~/.claude/skills/majiayu000-claude-skill-registry-gmail-skill && rm -rf "$T"
skills/data/gmail-skill/SKILL.mdGmail 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
and save tocredentials.jsonscripts/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
exists intoken.jsonscripts/auth/ - If token is expired, run
againnpm run setup - 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