mail-searchlisted
Install: claude install-skill aashari/ai-agent-skills
# Mail Search — Full-Text Search Across All Accounts
Search query: **$ARGUMENTS**
## Argument Parsing
Parse $ARGUMENTS for modifiers:
- `from:name@domain.com` or `sender:` → filter by sender
- `subject:keyword` → filter subject only
- `account:gmail` or `account:work` → restrict to account type
- `last N days/weeks` → time filter
- Anything else → search both subject and sender
## Query
```bash
DB="$HOME/Library/Mail/V10/MailData/Envelope Index"
TERM="<extracted search term>" # URL-encode % as %% in shell
sqlite3 "$DB" "
SELECT datetime(m.date_received,'unixepoch','localtime') as dt,
s.subject, a.address as sender, a.comment as name,
mb.url as mailbox, m.ROWID, m.read,
CASE WHEN m.size > 0 THEN m.size ELSE 0 END as size
FROM messages m
JOIN subjects s ON m.subject = s.ROWID
JOIN addresses a ON m.sender = a.ROWID
JOIN mailboxes mb ON m.mailbox = mb.ROWID
WHERE m.deleted = 0
AND mb.url NOT LIKE '%Spam%'
AND mb.url NOT LIKE '%Trash%'
AND mb.url NOT LIKE '%Junk%'
AND (
s.subject LIKE '%TERM%'
OR a.address LIKE '%TERM%'
OR a.comment LIKE '%TERM%'
)
ORDER BY m.date_received DESC
LIMIT 50;" 2>/dev/null
```
For sender-only search:
```sql
WHERE a.address LIKE '%TERM%' OR a.comment LIKE '%TERM%'
```
For subject-only search:
```sql
WHERE s.subject LIKE '%TERM%'
```
For recipient search (TO/CC):
```sql
JOIN recipients r ON r.message = m.ROWID
JOIN addresses ra ON r.address = ra.ROWID
WHERE ra.address LIKE '%TERM%'
```
## Reading