Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 09:05:19 +08:00
commit 09fec2555b
96 changed files with 24269 additions and 0 deletions

View File

@@ -0,0 +1,383 @@
# Gmail Assistant Quick Reference
This file provides quick examples for common gmaillm operations. Load this when you need concrete syntax examples.
## Email Sending Examples
### Basic Send
```bash
gmail send \
--to "recipient@example.com" \
--subject "Subject line" \
--body "Email body content"
```
### Send with CC and BCC
```bash
gmail send \
--to "person1@example.com,person2@example.com" \
--cc "cc@example.com" \
--bcc "bcc@example.com" \
--subject "Subject" \
--body "Body"
```
### Send to Group
```bash
gmail send \
--to "#group-name" \
--subject "Broadcast message" \
--body "Message to entire group"
```
### Send with Attachments
```bash
gmail send \
--to "recipient@example.com" \
--subject "Files attached" \
--body "See attachments" \
--attachments "file1.pdf,file2.jpg"
```
## Search Examples
### Search by Subject
```bash
gmail search "subject:keyword" --max 10
```
### Search by Sender
```bash
gmail search "from:person@example.com" --max 5
```
### Search by Date Range
```bash
gmail search "after:2025/01/01 before:2025/12/31"
```
### Complex Search
```bash
gmail search "from:person subject:project has:attachment" --max 5
```
### Search Unread
```bash
gmail search "is:unread" --max 20
```
## Reading Emails
### Read Summary
```bash
gmail read <message_id>
```
### Read Full Content
```bash
gmail read <message_id> --full
```
### Read Entire Thread
```bash
gmail thread <message_id>
```
### JSON Output for Parsing
```bash
gmail read <message_id> --output-format json
```
## Group Management
### List Groups
```bash
gmail groups list
```
### Show Group Details
```bash
gmail groups show "#group-name"
```
### Create Group
```bash
gmail groups create \
--name "#new-group" \
--emails "person1@example.com,person2@example.com,person3@example.com"
```
### Add Member to Group
```bash
gmail groups add "#group-name" "newperson@example.com"
```
### Remove Member
```bash
gmail groups remove "#group-name" "person@example.com"
```
### Validate Group
```bash
gmail groups validate "#group-name"
```
## Style Management
### List All Styles
```bash
gmail styles list
```
### Show Style Content
```bash
gmail styles show <style-name>
```
### Create New Style
```bash
gmail styles create --name "my-style"
# Opens editor for you to define the style
```
### Edit Existing Style
```bash
gmail styles edit <style-name>
```
### Validate Style Format
```bash
gmail styles validate <style-name>
```
### Validate All Styles
```bash
gmail styles validate-all
```
## Workflow Management
### List Workflows
```bash
gmail workflows list
```
### Show Workflow Details
```bash
gmail workflows show <workflow-id>
```
### Create Workflow
```bash
gmail workflows create \
--id "daily-review" \
--name "Daily Email Review" \
--query "is:unread -label:spam" \
--auto-mark-read
```
### Run Workflow
```bash
gmail workflows run <workflow-id>
```
### Run Ad-hoc Query
```bash
gmail workflows run --query "is:unread from:important@person.com"
```
## Gmail Query Syntax
Common Gmail search operators:
| Operator | Example | Description |
|----------|---------|-------------|
| `from:` | `from:alice@example.com` | Emails from sender |
| `to:` | `to:bob@example.com` | Emails to recipient |
| `subject:` | `subject:meeting` | Subject contains word |
| `is:unread` | `is:unread` | Unread emails |
| `is:read` | `is:read` | Read emails |
| `has:attachment` | `has:attachment` | Has attachments |
| `label:` | `label:important` | Has label |
| `after:` | `after:2025/01/01` | After date (YYYY/MM/DD) |
| `before:` | `before:2025/12/31` | Before date |
| `newer_than:` | `newer_than:7d` | Last N days (d/m/y) |
| `older_than:` | `older_than:1m` | Older than N time |
| `OR` | `from:alice OR from:bob` | Either condition |
| `-` | `-label:spam` | Exclude (NOT) |
**Combine operators:**
```bash
gmail search "from:boss subject:urgent is:unread"
```
## Email Style Format
Email styles use YAML frontmatter + XML-like sections:
```markdown
---
name: "style-name"
description: "When to use: Context description (30-200 chars)."
---
<examples>
Example 1
---
Example 2
</examples>
<greeting>
- "Hi [Name],"
</greeting>
<body>
- Guideline 1
- Guideline 2
</body>
<closing>
- "Best,"
</closing>
<do>
- Best practice 1
</do>
<dont>
- What to avoid
</dont>
```
Required sections in strict order: examples → greeting → body → closing → do → dont
## Common Email Workflows
### 1. Research + Draft + Send
```bash
# Search for similar emails
gmail search "subject:similar topic" --max 3
# Read one for context
gmail read <message_id> --full
# Check style
gmail styles show professional-formal
# TEST first
gmail send --to fuchengwarrenzhu@gmail.com --subject "[TEST] ..." --body "..."
# Send for real
gmail send --to real@email.com --subject "..." --body "..." --yolo
```
### 2. Bulk Processing with Workflow
```bash
# Create workflow for common query
gmail workflows create \
--id "newsletter-cleanup" \
--name "Clean Up Newsletters" \
--query "label:newsletters is:read older_than:30d"
# Run workflow
gmail workflows run newsletter-cleanup
```
### 3. Group Broadcast
```bash
# Verify group
gmail groups show "#team"
# Check style
gmail styles show posts
# TEST
gmail send --to fuchengwarrenzhu@gmail.com --subject "[TEST] Update" --body "..."
# Broadcast
gmail send --to "#team" --subject "Update" --body "..." --yolo
```
## Status and Configuration
### Check Account Status
```bash
gmail status
```
### Verify Authentication
```bash
gmail verify
```
### Show Configuration
```bash
gmail config show
```
### List Labels
```bash
gmail labels list
```
## JSON Output for Automation
All commands support `--output-format json` for programmatic parsing:
```bash
# Get JSON for parsing
gmail search "is:unread" --output-format json | jq '.emails[] | {from: .from_.email, subject: .subject}'
# List groups in JSON
gmail groups list --output-format json
# Read email as JSON
gmail read <message_id> --output-format json
```
## Common Gotchas
1. **Email IDs**: Displayed short (12 chars) but use full ID in commands
2. **Group prefix**: Always use `#` prefix (e.g., `#team` not `team`)
3. **YOLO flag**: Skips confirmation, use after testing
4. **Date format**: Use YYYY/MM/DD for Gmail queries
5. **Test emails**: ALWAYS test to fuchengwarrenzhu@gmail.com first
6. **Style order**: Sections must be in exact order (examples, greeting, body, closing, do, dont)
7. **Attachment paths**: Use absolute or relative file paths, comma-separated