Read and search emails from Lark Mail via IMAP with local caching. Use when user asks about email, inbox, or messages.
Read and search emails from Lark Mail via the lark CLI using IMAP with local caching.
Before using mail commands, IMAP credentials must be configured:
lark mail setup
This will prompt for IMAP credentials. See: https://www.larksuite.com/hc/en-US/articles/378111206512-log-in-to-lark-mail-through-a-third-party-email-client
Ensure lark is in your PATH, or use the full path to the binary. Set the config directory if not using the default:
lark mail <command>
# Or with explicit config:
LARK_CONFIG_DIR=/path/to/.lark lark mail <command>
lark mail status
Shows connection status and cache freshness. The freshness field indicates how stale the cached data is.
lark mail list
Fetch new emails from the server into the local cache:
# Sync INBOX (default)
lark mail sync
# Sync with more parallel connections (faster for large mailboxes)
lark mail sync --workers 20
# Sync specific mailbox
lark mail sync --mailbox Sent
Flags:
--mailbox, -m: Mailbox to sync (default: INBOX)--workers, -w: Number of parallel connections (default: 10)Important:
Search the local cache (fast, no network calls):
# List recent emails
lark mail search
# Filter by sender
lark mail search --from alice@example.com
# Filter by subject
lark mail search --subject "Q4 Report"
# Filter by date range
lark mail search --since 2025-01-01 --before 2025-01-15
# Combined filters
lark mail search --from boss@example.com --since 2025-01-01 --limit 10
# Search different mailbox
lark mail search --mailbox Sent
lark mail show --uid <uid>
The UID is obtained from search results.
lark mail fetch --uid <uid>
lark mail fetch --uid <uid> --output ./emails/
All commands output JSON.
{
"configured": true,
"host": "imap.larksuite.com",
"port": 993,
"username": "user@example.com",
"connection": "ok",
"cache": {
"last_sync": "2025-01-14T10:30:00+08:00",
"freshness": "15 minutes ago",
"uidvalidity": 12345,
"last_uid": 4521
}
}
{
"mailbox": "INBOX",
"last_sync": "2025-01-14T10:30:00+08:00",
"freshness": "15 minutes ago",
"total_cached": 1523,
"results": [
{
"uid": 4521,
"message_id": "<abc123@mail.example.com>",
"date": "2025-01-14T09:15:00+08:00",
"from_addr": "alice@example.com",
"from_name": "Alice",
"subject": "Q4 Report"
}
],
"count": 1
}
{
"uid": 4521,
"from": {
"email": "alice@example.com",
"name": "Alice"
},
"subject": "Q4 Report",
"date": "2025-01-14T09:15:00+08:00",
"message_id": "<abc123@mail.example.com>",
"body": "Hi,\n\nPlease find the Q4 report attached...\n\nBest,\nAlice"
}
{
"mailbox": "INBOX",
"new_messages": 5,
"total_cached": 1523,
"message": "synced 5 new messages"
}
Errors return JSON:
{
"error": true,
"code": "ERROR_CODE",
"message": "Description"
}
Common error codes:
CONNECTION_ERROR - IMAP connection failed (check credentials)SCOPE_ERROR - Missing mail permissions. Run lark auth login --add --scopes mailSYNC_ERROR - Failed to sync emailsSEARCH_ERROR - Cache query failedVALIDATION_ERROR - Missing required fields (e.g., --uid)IO_ERROR - File system errorThis skill requires the mail scope group. If you see a SCOPE_ERROR, the user needs to add mail permissions:
lark auth login --add --scopes mail
To check current permissions:
lark auth status
Check cache freshness:
lark mail status
Sync if needed (based on freshness):
lark mail sync
Search emails:
lark mail search --from boss@example.com --since 2025-01-01
View email details using UID from search:
lark mail show --uid 4521
Download if needed:
lark mail fetch --uid 4521
Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Manage Trello boards, lists, and cards via the Trello REST API.
Category:productivity