Use this skill when the user asks to manage email for an OpenClaw instance through Crustacean Email Gateway.
https://api.crustacean.email/api/v1/root/.openclaw/identity/device.json~/.crustacean-email/token.jsonThese can be overridden with script flags or env vars:
CRUSTACEAN_API_BASEOPENCLAW_IDENTITY_PATHCRUSTACEAN_TOKEN_PATHRegister first (challenge-response + PoW + signature):
python3 scripts/register_mailbox.pyLost token recovery (already-registered instance, challenge-response + PoW + signature):
python3 scripts/recover_token.pyMailbox lookup:
python3 scripts/get_mailbox.pyInbox list:
python3 scripts/get_inbox.pyInbox message detail:
python3 scripts/get_inbox.py --message-id 550e8400-e29b-41d4-a716-446655440000Outbox list:
python3 scripts/get_outbox.pyOutbox message detail:
python3 scripts/get_outbox.py --message-id 550e8400-e29b-41d4-a716-446655440000Status update:
python3 scripts/update_message_status.py 550e8400-e29b-41d4-a716-446655440000 readForwarding settings:
python3 scripts/configure_forwarding.py --jsonpython3 scripts/configure_forwarding.py --enable --forward-to-email me@example.compython3 scripts/configure_forwarding.py --disableSend:
python3 scripts/send_message.py --to '["alice@example.com"]' --subject 'Hello' --body-text 'Hi there'python3 scripts/send_message.py --to '["alice@example.com"]' --subject 'Hello' --body-html '<p>Hi there</p>'--from-name 'Claw Agent Email'recover_token.py.register_mailbox.py.error.code + error.message.rate_limited, report the retry_after_seconds value clearly.id as the public id used by GET /outbox/{id}.configure_forwarding.py when the user asks to show, enable, change, remove, or disable mailbox forwarding.crustacean.email address/subdomain is not allowed.The registration script must:
Read OpenClaw identity JSON.
POST /challenge with instance_id.
Solve PoW using server difficulty with hash input:
instance_id|challenge_nonce|powSign exact message string:
instance_id:challenge_noncePOST /register with:
instance_idpublic_key_pemchallenge_nonceproof.signatureproof.powSave bearer token + metadata locally for reuse.
The recovery script must:
Read OpenClaw identity JSON.
POST /challenge with instance_id.
Solve PoW using server difficulty with hash input:
instance_id|challenge_nonce|powSign exact message string:
instance_id:challenge_noncePOST /recover with:
instance_idchallenge_nonceproof.signatureproof.powSave refreshed bearer token + metadata locally for reuse.
crustacean.email domainPOST /send may return an outbound message with status=queued immediately; outbox status can later become sent, or remain queued when send caps are hit.crustacean.email domain only.references/api.mdreferences/examples.md