| name | email |
| description | Search and read Gmail messages. Use when looking up emails, reading email threads, or checking inbox labels. |
Email (Read-Only)
Search and read Gmail messages using the gmail CLI.
Instructions
You are helping read Gmail data. Auth uses OAuth tokens stored at ~/.dots/sys/gmail/tokens/. Additional env vars (if any) are loaded from ~/.dots/sys/env.
Operations
gmail search "from:emily subject:kickoff"
gmail search "is:unread" --limit 10
gmail search "after:2025/01/01 from:sarah"
gmail read MESSAGE_ID
gmail labels
gmail accounts
gmail search "budget" --account personal
gmail labels --account work
gmail auth personal
gmail search "quarterly review" --json
gmail accounts --json
Accounts
Run gmail accounts to see configured accounts with names and emails. The default account is marked with *.
Common Tasks
Find recent emails from someone
gmail search "from:emily" --limit 10
Read an email thread
gmail search "subject:technical kickoff" --limit 5
gmail read MESSAGE_ID
Check unread count
gmail labels
Account Resolution
The CLI resolves accounts in this order:
--account NAME flag — uses ~/.dots/sys/gmail/tokens/NAME.json
- Default account from
~/.dots/sys/gmail/accounts.json
- First token file found in
~/.dots/sys/gmail/tokens/
Search Syntax
Gmail search supports standard Gmail query operators:
from:sender — messages from a specific sender
to:recipient — messages to a specific recipient
subject:words — subject line search
after:YYYY/MM/DD / before:YYYY/MM/DD — date range
is:unread / is:starred — message state
has:attachment — messages with attachments
label:NAME — messages with a specific label
in:inbox / in:sent — location filters
Capabilities
- Email search: Full Gmail query syntax with pagination
- Email reading: Full message content including headers, body text, and attachment metadata
- Label listing: All labels with message counts (total and unread)
- Account listing: Show all configured accounts with default marker
Troubleshooting
If a search or read fails with invalid_grant or Token has been expired or revoked, re-authenticate:
gmail auth ACCOUNT_NAME
This opens the browser for OAuth consent and saves the new token.
Limitations
- Read-only — Cannot send, draft, archive, or modify emails. For composing replies, draft the text in the conversation for manual copy/paste.
- Message body is truncated at 5000 characters