| name | clawemail-mail-cli-hermes-openclaw |
| description | Verify a ClawEmail mail-cli setup, test end-to-end send/read flow, and distinguish between mail-cli readiness, OpenClaw email-channel enablement, and Hermes skill integration. |
| version | 1.0.0 |
| author | Hermes Agent |
ClawEmail mail-cli with Hermes/OpenClaw
Use this when a user has set up a @claw.163.com mailbox and wants to verify it works, connect it to OpenClaw, or make Hermes use it.
What this solves
Common confusion:
mail-cli may be fully working
- the OpenClaw email plugin may be installed
- but the OpenClaw email channel may still not be enabled in
~/.openclaw/openclaw.json
- and Hermes may still have no mail-related skill at all
Treat these as separate checks.
Verify mail-cli first
Run these in order:
mail-cli --help
mail-cli auth list
mail-cli auth test
mail-cli debug:config
Expected good signs:
- profile
default exists
- status is
ok
- config path resolves to
~/.config/mail-cli/config.json
transport for @claw.163.com accounts is typically ajax
Important finding: mail-cli auth status is not a valid command. Use mail-cli auth list instead.
Verify mailbox access
List folders and recent mail:
mail-cli folder list --json
mail-cli mail list --fid INBOX --limit 5 --json
For Claw/Ajax accounts, INBOX works as --fid in listing/search commands.
End-to-end self-test
Send a message to the same mailbox, wait a few seconds, then search and read it.
mail-cli compose send \
--to "YOUR@claw.163.com" \
--subject "mail-cli self test $(date +%Y-%m-%dT%H:%M:%S)" \
--body "This is a self-test sent by Hermes to verify send/read workflow." \
--json
sleep 5
mail-cli mail list --fid INBOX --limit 5 --json
mail-cli mail search --fid INBOX --keyword "mail-cli self test" --limit 5 --json
mail-cli read body --id "<message-id>" --json
mail-cli mail mark --ids "<message-id>" --read --json
mail-cli mail get --ids "<message-id>" --json
Success criteria:
- send returns
{ "status": "sent" }
- the message appears in INBOX
- body can be read
- mark/read state changes persist
Create a newsletter sub-mailbox
mail-cli clawemail create --prefix newsletter --type sub --display-name "Newsletter Bot"
Remember: the auth code shown after creation is one-time and must be saved immediately.
Check OpenClaw plugin vs channel enablement
The plugin may exist at:
~/.openclaw/extensions/email/
Useful files:
~/.openclaw/extensions/email/README.md
~/.openclaw/extensions/email/openclaw.plugin.json
~/.openclaw/extensions/email/skills/mail-cli/SKILL.md
But plugin installed != email channel enabled.
Check ~/.openclaw/openclaw.json for:
channels.email
- plugin enabled state under
plugins.entries
If openclaw.json only contains other channels (for example WhatsApp) and no channels.email, then OpenClaw is not yet auto-processing email even if mail-cli works.
Check Hermes integration separately
Search Hermes skills for mail-cli or clawemail support. If none exist, Hermes cannot naturally use the mailbox yet without:
- direct terminal commands, or
- creating a dedicated Hermes skill for mail-cli
Key distinctions to explain to users
Be explicit about these layers:
mail-cli working: mailbox operations succeed manually
- OpenClaw email plugin installed: extension files exist
- OpenClaw email channel enabled: incoming email can trigger the agent
- Hermes mail skill exists: Hermes can operate the mailbox naturally by task instruction
Pitfalls
- Do not use
mail-cli auth status; use auth list.
- A working plugin directory does not mean the email channel is enabled.
@claw.163.com accounts use the Claw Ajax/API path, not a normal IMAP-only workflow.
- Verify with a self-send test before claiming the mailbox is usable.