{"id":"8203f69d-3d07-438f-8d80-790f230eaad6","shortId":"rUDFDJ","kind":"skill","title":"gmail-automation","tagline":"Lightweight Gmail integration with standalone OAuth authentication. No MCP server required.","description":"# Gmail\n\nLightweight Gmail integration with standalone OAuth authentication. No MCP server required.\n\n> **⚠️ Requires Google Workspace account.** Personal Gmail accounts are not supported.\n\n## When to Use\n- You need to search, read, or send Gmail messages from the command line without an MCP server.\n- You are automating inbox workflows for a Google Workspace account.\n- You want a lightweight Gmail integration backed by standalone OAuth scripts.\n\n## First-Time Setup\n\nAuthenticate with Google (opens browser):\n```bash\npython scripts/auth.py login\n```\n\nCheck authentication status:\n```bash\npython scripts/auth.py status\n```\n\nLogout when needed:\n```bash\npython scripts/auth.py logout\n```\n\n## Commands\n\nAll operations via `scripts/gmail.py`. Auto-authenticates on first use if not logged in.\n\n### Search Emails\n\n```bash\n# Search with Gmail query syntax\npython scripts/gmail.py search \"from:someone@example.com is:unread\"\n\n# Search recent emails (no query returns all)\npython scripts/gmail.py search --limit 20\n\n# Filter by label\npython scripts/gmail.py search --label INBOX --limit 10\n\n# Include spam and trash\npython scripts/gmail.py search \"subject:important\" --include-spam-trash\n```\n\n### Read Email Content\n\n```bash\n# Get full message content\npython scripts/gmail.py get MESSAGE_ID\n\n# Get just metadata (headers)\npython scripts/gmail.py get MESSAGE_ID --format metadata\n\n# Get minimal response (IDs only)\npython scripts/gmail.py get MESSAGE_ID --format minimal\n```\n\n### Send Emails\n\n```bash\n# Send a simple email\npython scripts/gmail.py send --to \"user@example.com\" --subject \"Hello\" --body \"Message body\"\n\n# Send with CC and BCC\npython scripts/gmail.py send --to \"user@example.com\" --cc \"cc@example.com\" --bcc \"bcc@example.com\" \\\n  --subject \"Team Update\" --body \"Update message\"\n\n# Send from an alias (must be configured in Gmail settings)\npython scripts/gmail.py send --to \"user@example.com\" --subject \"Hello\" --body \"Message\" \\\n  --from \"Mile9 Accounts <accounts@mile9.io>\"\n\n# Send HTML email\npython scripts/gmail.py send --to \"user@example.com\" --subject \"HTML Email\" \\\n  --body \"<h1>Hello</h1><p>HTML content</p>\" --html\n```\n\n### Draft Management\n\n```bash\n# Create a draft\npython scripts/gmail.py create-draft --to \"user@example.com\" --subject \"Draft Subject\" \\\n  --body \"Draft content\"\n\n# Send an existing draft\npython scripts/gmail.py send-draft DRAFT_ID\n```\n\n### Modify Messages (Labels)\n\n```bash\n# Mark as read (remove UNREAD label)\npython scripts/gmail.py modify MESSAGE_ID --remove-label UNREAD\n\n# Mark as unread\npython scripts/gmail.py modify MESSAGE_ID --add-label UNREAD\n\n# Archive (remove from INBOX)\npython scripts/gmail.py modify MESSAGE_ID --remove-label INBOX\n\n# Star a message\npython scripts/gmail.py modify MESSAGE_ID --add-label STARRED\n\n# Unstar a message\npython scripts/gmail.py modify MESSAGE_ID --remove-label STARRED\n\n# Mark as important\npython scripts/gmail.py modify MESSAGE_ID --add-label IMPORTANT\n\n# Multiple label changes at once\npython scripts/gmail.py modify MESSAGE_ID --remove-label UNREAD --add-label STARRED\n```\n\n### List Labels\n\n```bash\n# List all Gmail labels (system and user-created)\npython scripts/gmail.py list-labels\n```\n\n## Gmail Query Syntax\n\nGmail supports powerful search operators:\n\n| Query | Description |\n|-------|-------------|\n| `from:user@example.com` | Emails from a specific sender |\n| `to:user@example.com` | Emails to a specific recipient |\n| `subject:meeting` | Emails with \"meeting\" in subject |\n| `is:unread` | Unread emails |\n| `is:starred` | Starred emails |\n| `is:important` | Important emails |\n| `has:attachment` | Emails with attachments |\n| `after:2024/01/01` | Emails after a date |\n| `before:2024/12/31` | Emails before a date |\n| `newer_than:7d` | Emails from last 7 days |\n| `older_than:1m` | Emails older than 1 month |\n| `label:work` | Emails with a specific label |\n| `in:inbox` | Emails in inbox |\n| `in:sent` | Sent emails |\n| `in:trash` | Trashed emails |\n\nCombine with AND (space), OR, or - (NOT):\n```bash\npython scripts/gmail.py search \"from:boss@company.com is:unread newer_than:1d\"\npython scripts/gmail.py search \"subject:urgent OR subject:important\"\npython scripts/gmail.py search \"from:newsletter@example.com -is:starred\"\n```\n\n## Common Label IDs\n\n| Label | ID |\n|-------|-----|\n| Inbox | `INBOX` |\n| Sent | `SENT` |\n| Drafts | `DRAFT` |\n| Spam | `SPAM` |\n| Trash | `TRASH` |\n| Starred | `STARRED` |\n| Important | `IMPORTANT` |\n| Unread | `UNREAD` |\n\n## Token Management\n\nTokens stored securely using the system keyring:\n- **macOS**: Keychain\n- **Windows**: Windows Credential Locker\n- **Linux**: Secret Service API (GNOME Keyring, KDE Wallet, etc.)\n\nService name: `gmail-skill-oauth`\n\nTokens automatically refresh when expired using Google's cloud function.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["gmail","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-gmail-automation","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/gmail-automation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34768 github stars · SKILL.md body (5,068 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T18:51:23.790Z","embedding":null,"createdAt":"2026-04-18T21:38:04.424Z","updatedAt":"2026-04-23T18:51:23.790Z","lastSeenAt":"2026-04-23T18:51:23.790Z","tsv":"'1':501 '10':156 '1d':540 '1m':497 '20':146 '2024/01/01':476 '2024/12/31':482 '7':493 '7d':489 'account':30,33,66,264 'accounts@mile9.io':265 'add':340,365,389,407 'add-label':339,364,388,406 'alia':246 'api':595 'archiv':343 'ask':650 'attach':471,474 'authent':10,22,82,92,112 'auto':111 'auto-authent':110 'autom':3,59 'automat':608 'back':73 'bash':87,94,101,122,173,208,284,315,412,530 'bcc':227,235 'bcc@example.com':236 'bodi':220,222,240,260,277,298 'boss@company.com':535 'boundari':658 'browser':86 'cc':225,233 'cc@example.com':234 'chang':394 'check':91 'clarif':652 'clear':625 'cloud':615 'combin':523 'command':51,105 'common':556 'configur':249 'content':172,177,280,300 'creat':285,291,421 'create-draft':290 'credenti':590 'criteria':661 'date':480,486 'day':494 'describ':629 'descript':436 'draft':282,287,292,296,299,304,309,310,565,566 'email':121,137,171,207,212,268,276,439,446,453,461,465,469,472,477,483,490,498,505,512,518,522 'environ':641 'environment-specif':640 'etc':600 'exist':303 'expert':646 'expir':611 'filter':147 'first':79,114 'first-tim':78 'format':192,204 'full':175 'function':616 'get':174,180,183,189,194,201 'gmail':2,5,15,17,32,47,71,125,251,415,427,430,604 'gmail-autom':1 'gmail-skill-oauth':603 'gnome':596 'googl':28,64,84,613 'header':186 'hello':219,259,278 'html':267,275,279,281 'id':182,191,197,203,311,326,338,351,363,375,387,401,558,560 'import':165,382,391,467,468,548,573,574 'inbox':60,154,346,355,511,514,561,562 'includ':157,167 'include-spam-trash':166 'input':655 'integr':6,18,72 'kde':598 'keychain':587 'keyr':585,597 'label':149,153,314,321,329,341,354,366,378,390,393,404,408,411,416,426,503,509,557,559 'last':492 'lightweight':4,16,70 'limit':145,155,617 'line':52 'linux':592 'list':410,413,425 'list-label':424 'locker':591 'log':118 'login':90 'logout':98,104 'maco':586 'manag':283,578 'mark':316,331,380 'match':626 'mcp':12,24,55 'meet':452,455 'messag':48,176,181,190,202,221,242,261,313,325,337,350,358,362,370,374,386,400 'metadata':185,193 'mile9':263 'minim':195,205 'miss':663 'modifi':312,324,336,349,361,373,385,399 'month':502 'multipl':392 'must':247 'name':602 'need':41,100 'newer':487,538 'newsletter@example.com':553 'oauth':9,21,76,606 'older':495,499 'open':85 'oper':107,434 'output':635 'permiss':656 'person':31 'power':432 'python':88,95,102,128,142,150,161,178,187,199,213,228,253,269,288,305,322,334,347,359,371,383,397,422,531,541,549 'queri':126,139,428,435 'read':44,170,318 'recent':136 'recipi':450 'refresh':609 'remov':319,328,344,353,377,403 'remove-label':327,352,376,402 'requir':14,26,27,654 'respons':196 'return':140 'review':647 'safeti':657 'scope':628 'script':77 'scripts/auth.py':89,96,103 'scripts/gmail.py':109,129,143,151,162,179,188,200,214,229,254,270,289,306,323,335,348,360,372,384,398,423,532,542,550 'search':43,120,123,130,135,144,152,163,433,533,543,551 'secret':593 'secur':581 'send':46,206,209,215,223,230,243,255,266,271,301,308 'send-draft':307 'sender':443 'sent':516,517,563,564 'server':13,25,56 'servic':594,601 'set':252 'setup':81 'simpl':211 'skill':605,620 'skill-gmail-automation' 'someone@example.com':132 'source-sickn33' 'space':526 'spam':158,168,567,568 'specif':442,449,508,642 'standalon':8,20,75 'star':356,367,379,409,463,464,555,571,572 'status':93,97 'stop':648 'store':580 'subject':164,218,237,258,274,295,297,451,457,544,547 'substitut':638 'success':660 'support':36,431 'syntax':127,429 'system':417,584 'task':624 'team':238 'test':644 'time':80 'token':577,579,607 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'trash':160,169,520,521,569,570 'treat':633 'unread':134,320,330,333,342,405,459,460,537,575,576 'unstar':368 'updat':239,241 'urgent':545 'use':39,115,582,612,618 'user':420 'user-cr':419 'user@example.com':217,232,257,273,294,438,445 'valid':643 'via':108 'wallet':599 'want':68 'window':588,589 'without':53 'work':504 'workflow':61 'workspac':29,65","prices":[{"id":"9a2715b3-b095-46ae-b0b7-4f44ad6a2756","listingId":"8203f69d-3d07-438f-8d80-790f230eaad6","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:38:04.424Z"}],"sources":[{"listingId":"8203f69d-3d07-438f-8d80-790f230eaad6","source":"github","sourceId":"sickn33/antigravity-awesome-skills/gmail-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/gmail-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:38:04.424Z","lastSeenAt":"2026-04-23T18:51:23.790Z"}],"details":{"listingId":"8203f69d-3d07-438f-8d80-790f230eaad6","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"gmail-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34768,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"b5fdf5b4db9badf7ed6c61b50b8dc1635cf180af","skill_md_path":"skills/gmail-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/gmail-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"gmail-automation","license":"Apache-2.0","description":"Lightweight Gmail integration with standalone OAuth authentication. No MCP server required."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/gmail-automation"},"updatedAt":"2026-04-23T18:51:23.790Z"}}