plugins/google-workspace-cli/skills/gmail/SKILL.md
Use this skill when the user asks about reading, sending, searching, or managing emails via the Google Workspace CLI. Trigger on Gmail-related tasks like composing emails, searching inbox, managing labels, archiving, or working with drafts.
npx skillsauth add nsheaps/ai-mktpl gmailInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use gws gmail to interact with Gmail from the command line.
# List recent emails
gws gmail list
# List unread emails
gws gmail list --unread --limit 20
# Search emails (uses Gmail search syntax)
gws gmail search "from:[email protected]"
gws gmail search "subject:meeting is:unread"
gws gmail search "has:attachment newer_than:7d"
gws gmail search "label:important in:inbox"
# Read a specific message
gws gmail read <message-id>
# Read with full headers
gws gmail read <message-id> --full
# Read as JSON for parsing
gws gmail read <message-id> --format json
# Send a new email
gws gmail send --to "[email protected]" --subject "Hello" --body "Message body"
# Send with CC/BCC
gws gmail send --to "[email protected]" --cc "[email protected]" --subject "Hello" --body "Body"
# Reply to a message
gws gmail reply <message-id> --body "Thanks for the update"
# Forward a message
gws gmail forward <message-id> --to "[email protected]"
# Create a draft
gws gmail draft create --to "[email protected]" --subject "Draft" --body "Content"
# List drafts
gws gmail draft list
# Send a draft
gws gmail draft send <draft-id>
# Archive a message
gws gmail archive <message-id>
# Mark as read/unread
gws gmail mark-read <message-id>
gws gmail mark-unread <message-id>
# Add/remove labels
gws gmail label add <message-id> "MyLabel"
gws gmail label remove <message-id> "MyLabel"
# Move to trash
gws gmail trash <message-id>
# List all labels
gws gmail labels list
# Create a label
gws gmail labels create "MyNewLabel"
Gmail supports powerful search operators:
| Operator | Example | Description |
| ------------- | ------------------------- | ---------------- |
| from: | from:[email protected] | Sender |
| to: | to:[email protected] | Recipient |
| subject: | subject:meeting | Subject line |
| is: | is:unread, is:starred | Message state |
| has: | has:attachment | Has attachments |
| in: | in:inbox, in:sent | Mailbox location |
| label: | label:important | Has label |
| newer_than: | newer_than:7d | Date range |
| older_than: | older_than:30d | Date range |
| filename: | filename:pdf | Attachment type |
All commands support --format json for machine-readable output:
gws gmail list --format json | jq '.[].subject'
tools
Reference material for Claude Code internals — the on-disk layout under ~/.claude and project-scope .claude, the plugin cache, session-env propagation, and the full hook lifecycle. Auto-recall when working on Claude-Code-related tasks: writing or debugging hooks, authoring plugins, inspecting session state, troubleshooting why an env var is or isn't visible to a Bash tool call, or when paths under ~/.claude or ~/.claude/plugins/ come up.
development
Manage GitHub App installation tokens in Claude Code sessions. Use when tokens expire, auth errors occur in long-running sessions, or when setting up GitHub App credentials for agent teams. <example>my github token expired</example> <example>refresh the github app token</example> <example>check token status</example> <example>set up github app authentication for this session</example>
tools
Auto-detect project formatting tools and configure edit-utils settings
tools
Use this skill when the user asks about 1Password, secrets management, retrieving credentials, using op CLI, service accounts, secret references, vault operations, or any task involving the 1Password CLI (op). Also use when needing to inject secrets into environment variables, read passwords or API keys from 1Password, or manage 1Password items from the command line.