Waymaker email
Manage email in Commander. Send, receive, search, and organize emails across connected accounts. Includes alias management for multi-domain email routing.
Overview
Manage email in Commander. Send, receive, search, and organize emails across connected accounts. Includes alias management for multi-domain email routing.
Usage
waymaker email <subcommand> [options]
Subcommands
| Subcommand | Description |
|---|---|
list | List emails |
get | Get email content |
send | Send an email |
reply | Reply to an email |
forward | Forward an email |
move | Move email to folder |
search | Search emails |
aliases | Manage email aliases across domains |
List Emails
waymaker email list
Output:
Inbox (156 unread)
id from subject date
-----------------------------------------------------------------------
email_abc123 john@company.com Q1 Budget Approval 2 hours ago
email_def456 support@vendor.com Re: Integration Question 4 hours ago
email_ghi789 newsletter@service.com Weekly Digest Yesterday
Filter by Folder
waymaker email list --folder inbox
waymaker email list --folder sent
waymaker email list --folder drafts
waymaker email list --folder archive
Filter by Status
waymaker email list --unread
waymaker email list --starred
Filter by Account
waymaker email list --account work@company.com
JSON Output
waymaker email list --json
[
{
"id": "email_abc123",
"from": {"email": "john@company.com", "name": "John Smith"},
"to": [{"email": "me@company.com", "name": "Me"}],
"subject": "Q1 Budget Approval",
"snippet": "Please review the attached budget proposal...",
"date": "2026-01-21T10:00:00Z",
"unread": true,
"starred": false,
"has_attachments": true
}
]
Get Email Content
waymaker email get <email-id>
Output:
Q1 Budget Approval
From: John Smith <john@company.com>
To: me@company.com
Date: January 21, 2026 10:00 AM
Please review the attached budget proposal for Q1 2026.
Key highlights:
- Total budget: $500,000
- Marketing: $150,000
- Engineering: $250,000
- Operations: $100,000
Let me know if you have any questions.
Best,
John
Attachments:
- Q1_Budget_2026.xlsx (45KB)
Get Raw Content
waymaker email get <email-id> --raw
Get as JSON
waymaker email get <email-id> --json
Download Attachments
waymaker email get <email-id> --attachments ./downloads/
Send Email
waymaker email send \
--to "recipient@company.com" \
--subject "Meeting Follow-up" \
--body "Thanks for the meeting today..."
Output:
✓ Email sent
To: recipient@company.com
Subject: Meeting Follow-up
Send with CC/BCC
waymaker email send \
--to "primary@company.com" \
--cc "manager@company.com" \
--bcc "archive@company.com" \
--subject "Project Update" \
--body "Here's the weekly update..."
Send with Attachments
waymaker email send \
--to "recipient@company.com" \
--subject "Report Attached" \
--body "Please find the report attached." \
--attach ./report.pdf \
--attach ./data.xlsx
Send from Specific Account
waymaker email send \
--from "support@company.com" \
--to "customer@example.com" \
--subject "Support Response" \
--body "Thank you for contacting support..."
Send HTML Email
waymaker email send \
--to "recipient@company.com" \
--subject "Newsletter" \
--html "<h1>Welcome</h1><p>Content here...</p>"
Reply to Email
waymaker email reply <email-id> \
--body "Thanks for the update. I'll review and get back to you."
Reply All
waymaker email reply <email-id> --all \
--body "Adding my thoughts to this thread..."
Forward Email
waymaker email forward <email-id> \
--to "colleague@company.com" \
--body "FYI - please review this."
Move Email
waymaker email move <email-id> --folder archive
Move Multiple
waymaker email move email_abc123,email_def456 --folder "Projects/Q1"
Search Emails
waymaker email search "budget proposal"
Output:
Search Results (12)
id from subject date
---------------------------------------------------------------------
email_abc123 john@company.com Q1 Budget Approval Jan 21
email_xyz789 finance@company.com Budget Proposal Review Jan 15
Advanced Search
waymaker email search \
--from "john@company.com" \
--subject "budget" \
--has-attachment \
--after "2026-01-01"
Search as JSON
waymaker email search "quarterly report" --json
Manage Aliases
Email aliases allow a single mailbox to receive email at multiple addresses across different domains. This is essential for domain migrations, brand consolidation, or supporting multiple email identities.
List Aliases for a Mailbox
waymaker email aliases list --mailbox <mailbox-id>
Output:
Aliases for: john@newcompany.com (mailbox_abc123)
address domain status created
-------------------------------------------------------------------
john@oldcompany.com oldcompany.com active Jan 2026
j.smith@oldcompany.com oldcompany.com active Jan 2026
john@legacy.io legacy.io active Dec 2025
Total: 3 aliases
JSON Output
waymaker email aliases list --mailbox mailbox_abc123 --json
{
"mailbox_id": "mailbox_abc123",
"primary_address": "john@newcompany.com",
"aliases": [
{
"address": "john@oldcompany.com",
"domain_id": "domain_old123",
"domain": "oldcompany.com",
"status": "active",
"created_at": "2026-01-15T10:00:00Z"
},
{
"address": "j.smith@oldcompany.com",
"domain_id": "domain_old123",
"domain": "oldcompany.com",
"status": "active",
"created_at": "2026-01-15T10:00:00Z"
}
]
}
Bulk Add Aliases (Domain Migration)
When migrating from an old domain to a new domain, bulk add aliases to ensure all mailboxes continue receiving email at their old addresses.
Preview Mode (Dry Run)
waymaker email aliases bulk-add \
--domain <new-domain-id> \
--dry-run
Output:
Bulk Add Aliases Preview (DRY RUN)
Target Domain: newcompany.com (domain_new123)
Source Domain: oldcompany.com (domain_old123)
Aliases to be created: 25
mailbox new alias
-----------------------------------------------
john@newcompany.com john@oldcompany.com
jane@newcompany.com jane@oldcompany.com
support@newcompany.com support@oldcompany.com
...
No changes made. Use --confirm to execute.
Execute Bulk Add
waymaker email aliases bulk-add \
--domain <new-domain-id> \
--source-domain <old-domain-id> \
--confirm
Output:
Bulk Add Aliases
Target Domain: newcompany.com
Source Domain: oldcompany.com
Creating aliases...
✓ john@oldcompany.com → john@newcompany.com
✓ jane@oldcompany.com → jane@newcompany.com
✓ support@oldcompany.com → support@newcompany.com
...
Summary:
Created: 25
Skipped: 2 (already exist)
Failed: 0
All mailboxes on newcompany.com now receive email at their oldcompany.com addresses.
Bulk Remove Aliases
Remove all aliases from a specific domain. Useful when decommissioning an old domain after migration.
Preview Mode (Dry Run)
waymaker email aliases bulk-remove \
--domain <domain-id> \
--dry-run
Output:
Bulk Remove Aliases Preview (DRY RUN)
Domain: oldcompany.com (domain_old123)
Aliases to be removed: 25
alias mailbox
-----------------------------------------------
john@oldcompany.com john@newcompany.com
jane@oldcompany.com jane@newcompany.com
support@oldcompany.com support@newcompany.com
...
⚠ Warning: After removal, emails to these addresses will bounce.
No changes made. Use --confirm to execute.
Execute Bulk Remove
waymaker email aliases bulk-remove \
--domain <domain-id> \
--confirm
Output:
Bulk Remove Aliases
Domain: oldcompany.com
Removing aliases...
✓ john@oldcompany.com removed
✓ jane@oldcompany.com removed
✓ support@oldcompany.com removed
...
Summary:
Removed: 25
Failed: 0
All aliases for oldcompany.com have been removed.
Options Reference
list
| Option | Type | Description |
|---|---|---|
--folder | string | Folder name (inbox, sent, drafts, archive) |
--account | string | Filter by email account |
--unread | flag | Show only unread |
--starred | flag | Show only starred |
--limit | number | Maximum results (default: 50) |
--json | flag | Output as JSON |
get
| Option | Type | Description |
|---|---|---|
--raw | flag | Get raw email content |
--attachments | string | Download attachments to directory |
--json | flag | Output as JSON |
send
| Option | Type | Description |
|---|---|---|
--to | string | Required. Recipient(s), comma-separated |
--cc | string | CC recipients |
--bcc | string | BCC recipients |
--from | string | Sender account |
--subject | string | Required. Email subject |
--body | string | Plain text body |
--html | string | HTML body |
--attach | string | File path to attach (repeatable) |
reply/forward
| Option | Type | Description |
|---|---|---|
--body | string | Required. Reply/forward message |
--all | flag | Reply to all recipients |
--to | string | Forward recipient (forward only) |
move
| Option | Type | Description |
|---|---|---|
--folder | string | Required. Destination folder |
search
| Option | Type | Description |
|---|---|---|
--from | string | Filter by sender |
--to | string | Filter by recipient |
--subject | string | Filter by subject |
--has-attachment | flag | Has attachments |
--after | string | After date (YYYY-MM-DD) |
--before | string | Before date (YYYY-MM-DD) |
--limit | number | Maximum results |
--json | flag | Output as JSON |
aliases list
| Option | Type | Description |
|---|---|---|
--mailbox | string | Required. Mailbox ID to list aliases for |
--json | flag | Output as JSON |
aliases bulk-add
| Option | Type | Description |
|---|---|---|
--domain | string | Required. Target domain ID (new domain) |
--source-domain | string | Source domain ID (old domain) for alias creation |
--dry-run | flag | Preview changes without executing |
--confirm | flag | Execute the bulk operation |
--json | flag | Output as JSON |
aliases bulk-remove
| Option | Type | Description |
|---|---|---|
--domain | string | Required. Domain ID to remove aliases from |
--dry-run | flag | Preview changes without executing |
--confirm | flag | Execute the bulk operation |
--json | flag | Output as JSON |
AI Agent Workflow
# Get unread emails
UNREAD=$(waymaker email list --unread --json)
# Summarize inbox
echo "You have $(echo $UNREAD | jq 'length') unread emails"
# Search for specific emails
IMPORTANT=$(waymaker email search --from "ceo@company.com" --json)
# Auto-reply pattern
EMAIL_ID="email_abc123"
EMAIL=$(waymaker email get $EMAIL_ID --json)
RESPONSE="Generated response based on: $(echo $EMAIL | jq -r '.body')"
waymaker email reply $EMAIL_ID --body "$RESPONSE"
# Send programmatic email
waymaker email send \
--to "$RECIPIENT" \
--subject "Automated Report - $(date +%Y-%m-%d)" \
--body "$REPORT_CONTENT" \
--attach ./report.pdf
# Archive processed emails
waymaker email move $EMAIL_ID --folder archive
# === Alias Management ===
# List aliases for a mailbox
ALIASES=$(waymaker email aliases list --mailbox mailbox_abc123 --json)
echo "Mailbox has $(echo $ALIASES | jq '.aliases | length') aliases"
# Domain migration: preview alias creation
waymaker email aliases bulk-add \
--domain $NEW_DOMAIN_ID \
--dry-run
# Domain migration: execute alias creation
waymaker email aliases bulk-add \
--domain $NEW_DOMAIN_ID \
--source-domain $OLD_DOMAIN_ID \
--confirm
# Decommission old domain: preview removal
waymaker email aliases bulk-remove \
--domain $OLD_DOMAIN_ID \
--dry-run
# Decommission old domain: execute removal
waymaker email aliases bulk-remove \
--domain $OLD_DOMAIN_ID \
--confirm
Related Commands
- domains - Email domain management
- shared-inboxes - Shared inbox management
- connections - Email account connections
- journeys - Email marketing campaigns