Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Send, compose, reply, reply-all, or forward emails with HTML formatting and attachments. Do NOT use for reading incoming email (use ravi-inbox) or for creden...
Send, compose, reply, reply-all, or forward emails with HTML formatting and attachments. Do NOT use for reading incoming email (use ravi-inbox) or for creden...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Compose new emails, reply to existing ones, or forward them from your Ravi email address, with optional file attachments. Writing quality matters. Before drafting email content, see the ravi-email-writing skill for subject lines, HTML formatting, tone, and anti-spam best practices.
If you have the recipient's name but not their email address (e.g. "email Alice"), use ravi-contacts first: # Search contacts by name ravi contacts search "Alice" --json # โ Returns matches with email, phone, display_name # If one match โ use the email from the result # If multiple matches โ confirm with the user which Alice they mean # If no matches โ ask the user for the email address directly
ravi email compose --to "recipient@example.com" --subject "Subject" --body "<p>HTML content</p>" --json Flags: --to (required): Recipient email address --subject (required): Email subject line --body (required): Email body (HTML supported โ use tags like <p>, <h2>, <ul> for formatting) --cc: CC recipients (comma-separated) --bcc: BCC recipients (comma-separated) --attach: File path to attach (can be repeated for multiple files) Example with HTML formatting and attachment: ravi email compose --to "user@example.com" --subject "Monthly Report" \ --body "<h2>Monthly Report</h2><p>Key findings:</p><ul><li>Revenue up 15%</li><li>Churn down 3%</li></ul>" \ --attach report.pdf --json
# Reply to sender only ravi email reply <message_id> --body "<p>Reply content</p>" --json # Reply to all recipients ravi email reply-all <message_id> --body "<p>Reply content</p>" --json Flags: --body (required): Email body (HTML supported โ use tags like <p>, <h2>, <ul> for formatting) --cc: CC recipients (comma-separated) --bcc: BCC recipients (comma-separated) --attach: File path to attach (can be repeated for multiple files) Example with CC: ravi email reply <message_id> --body "<p>Adding the team.</p>" --cc "team@example.com" --json
ravi email forward <message_id> --to "recipient@example.com" --body "<p>FYI โ see below.</p>" --json Flags: --to (required): Recipient email address --body (required): Email body (HTML supported โ use tags like <p>, <h2>, <ul> for formatting) --cc: CC recipients (comma-separated) --bcc: BCC recipients (comma-separated) --attach: File path to attach (can be repeated for multiple files)
Attachments are uploaded automatically when you use --attach. The CLI: Validates the file (blocked extensions like .exe rejected instantly) Requests a presigned upload URL from the server Uploads the file directly to cloud storage Includes the attachment UUID in the email Blocked extensions: .exe, .dll, .bat, .cmd, .msi, .iso, .dmg, .apk, and other dangerous file types. Developer files (.py, .sh, .js, .rb) are allowed. Max size: 10 MB per attachment.
Email sending is rate-limited per user account: 60 emails/hour and 500 emails/day 200 attachment uploads/hour On hitting a rate limit, you'll get a 429 error with a retry_after_seconds value. Wait that many seconds before retrying. Best practices for agents: Avoid tight loops of email sends โ batch work where possible On 429: parse retry_after_seconds from the error, wait, then retry For bulk operations, add a 1-2 second delay between sends
HTML email bodies โ The --body flag accepts HTML. Use tags for formatting: <p>, <h2>, <ul>, <a href="...">. No <html> or <body> wrapper needed. See ravi-email-writing for templates and anti-spam rules. Always use --json โ human-readable output is not designed for parsing.
ravi-contacts โ Look up a person's email address by name before sending ravi-email-writing โ Subject lines, HTML templates, tone, and anti-spam best practices ravi-inbox โ Read incoming email before replying or forwarding ravi-identity โ Get your email address and identity name for signatures ravi-feedback โ Report deliverability issues or suggest email feature improvements
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.