From agi-super-team
Reads Gmail inbox and sent emails via Gmail API. Supports custom queries, labels, and full thread analysis. Useful for checking email, verifying sent messages, and morning briefings.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agi-super-team:email-readThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Read emails from Gmail inbox, sent folder, or any label via Gmail API
Read emails from Gmail inbox, sent folder, or any label via Gmail API
| What | Path |
|---|---|
| Script | $GOOGLE_TOOLS_PATH/read_emails.py |
| Token | $GOOGLE_TOOLS_PATH/token.json |
cd $GOOGLE_TOOLS_PATH
# Last 10 unread emails (default)
.venv/bin/python3 read_emails.py
# Last N unread emails
.venv/bin/python3 read_emails.py 20
# All emails (read + unread)
.venv/bin/python3 read_emails.py 10 all
# Custom query
.venv/bin/python3 read_emails.py 5 "from:[email protected]"
.venv/bin/python3 read_emails.py 10 "is:unread subject:invoice"
.venv/bin/python3 read_emails.py 5 "after:2026/02/01"
# SENT emails
.venv/bin/python3 read_emails.py 5 "in:sent"
.venv/bin/python3 read_emails.py 3 "in:sent to:[email protected]"
.venv/bin/python3 read_emails.py 5 "in:sent after:2026/02/20"
.venv/bin/python3 read_emails.py 5 "in:sent subject:invoice"
| Query | Description |
|---|---|
is:unread | Only unread (default) |
all | All messages |
from:[email protected] | From specific person |
subject:invoice | By subject |
after:2026/02/01 | After date |
is:starred | Starred messages |
has:attachment | With attachments |
label:important | By label |
in:sent | Sent emails |
in:sent to:[email protected] | Sent to specific person |
in:sent after:2026/02/20 | Recently sent |
in:drafts | Draft emails |
Important: When using in:sent, in:drafts, or label: queries, the script automatically removes the INBOX filter so results from other folders are returned correctly.
IMPORTANT: When checking email about a specific person, company, or topic -- ALWAYS read the full thread (both inbox and sent). Otherwise you only see half the conversation.
# CORRECT: full thread with a person
.venv/bin/python3 read_emails.py 10 "from:[email protected] after:2026/02/01"
.venv/bin/python3 read_emails.py 10 "in:sent to:[email protected] after:2026/02/01"
# OR in one query (both sides):
.venv/bin/python3 read_emails.py 20 "{from:[email protected] OR to:[email protected]} after:2026/02/01"
When to apply:
When NOT needed:
=== INBOX (N messages) === # or === SENT (N messages) ===
1. [NEW] Subject line
From: Sender Name <[email protected]>
Date: 2026-02-05 10:30
Preview: First 100 chars of message...
2. Subject line (no [NEW] = already read)
...
Uses gmail.readonly scope from existing token.json.
| Problem | Solution |
|---|---|
| 401 Unauthorized | Refresh token: google-auth skill |
| No messages | Check query syntax |
| Token expired | Token auto-refreshes, but if fails run google-auth flow |
email-send-direct - Send single emailemail-send-bulk - Mass email sendingdaily-briefing - Morning summary including inboxgoogle-auth - Auth troubleshootingnpx claudepluginhub aaaaqwq/agi-super-team --plugin agi-super-teamAutomates Gmail via Google Apps Script: send emails with HTML/CC/BCC, read/search inbox with filters, create drafts, mark as read. Useful for email workflows in code.
Automates Gmail via Google Apps Script: send emails with HTML/CC/BCC, read/search inbox with filters, create drafts, mark as read. Useful for email workflows in code.
Reads, searches, labels, archives, and sends Gmail messages via the Gmail v1 REST API. Useful for inbox triage, unread mail, thread summaries, and draft-and-send workflows.