Install
openclaw skills install shellmailEmail API for AI agents. Check inbox, read emails, extract OTP codes, search messages via ShellMail. Trigger on "check email", "inbox", "otp", "verification code", "shellmail", or any email-related requests.
openclaw skills install shellmailEmail for AI agents via shellmail.ai. Create inboxes, receive mail, extract OTPs automatically.
This skill requires a sensitive SHELLMAIL_TOKEN that grants full access to your inbox and OTPs.
When you set up this skill for the first time, you'll be instructed to save the token into agent configuration using gateway config.patch. This means:
Best practices:
gateway config.patch command output before confirmingIf no token is configured:
auto for the name to generate a random address (e.g., "swift-reef-4821"){baseDir}/scripts/shellmail.sh create <name> <recovery_email>autogateway config.patch {"skills":{"entries":{"shellmail":{"env":{"SHELLMAIL_TOKEN":"sm_..."}}}}}
⚠️ Important: Before running this command, explain to the user:
inbox to show the test email arrivedOnly use recovery if the user explicitly says they lost access to an existing inbox they own:
{baseDir}/scripts/shellmail.sh recover <address@shellmail.ai> <recovery_email>
This sends a new token to the recovery email on file. Do not suggest this for "address taken" errors.
{baseDir}/scripts/shellmail.sh <command>
{baseDir}/scripts/shellmail.sh inbox
{baseDir}/scripts/shellmail.sh inbox --unread
{baseDir}/scripts/shellmail.sh read <email_id>
# Get latest OTP
{baseDir}/scripts/shellmail.sh otp
# Wait up to 30 seconds for OTP
{baseDir}/scripts/shellmail.sh otp --wait 30
# Filter by sender
{baseDir}/scripts/shellmail.sh otp --wait 30 --from github.com
{baseDir}/scripts/shellmail.sh search --query "verification"
{baseDir}/scripts/shellmail.sh search --otp
{baseDir}/scripts/shellmail.sh search --from stripe.com
{baseDir}/scripts/shellmail.sh mark-read <id>
{baseDir}/scripts/shellmail.sh archive <id>
{baseDir}/scripts/shellmail.sh delete <id>
{baseDir}/scripts/shellmail.sh health
User says "check my email":
{baseDir}/scripts/shellmail.sh inbox --unread
User says "get the verification code":
{baseDir}/scripts/shellmail.sh otp --wait 30
User says "wait for GitHub OTP":
{baseDir}/scripts/shellmail.sh otp --wait 30 --from github.com
If the user wants to revoke the skill's access to their ShellMail inbox:
gateway config.patch '{"skills":{"entries":{"shellmail":{"env":{"SHELLMAIL_TOKEN":""}}}}}'
{baseDir}/scripts/shellmail.sh delete-account
Note: Deleted addresses enter a 14-day hold window and can only be reclaimed by the original owner using the recovery email.
Base URL: https://shellmail.ai
All endpoints use Authorization: Bearer $SHELLMAIL_TOKEN
| Endpoint | Method | Description |
|---|---|---|
/api/mail | GET | List emails (?unread=true&limit=50) |
/api/mail/:id | GET | Read full email |
/api/mail/:id | PATCH | Update {is_read, is_archived} |
/api/mail/:id | DELETE | Delete email |
/api/mail/otp | GET | Get OTP (?timeout=30000&from=domain) |
/api/mail/search | GET | Search (?q=text&from=domain&has_otp=true) |
/api/addresses | POST | Create {local, recovery_email} |