Install
npx skillscat add ibrahimq21/openclaw-skill-ravenclaw Install via the SkillsCat registry.
This skill enables agents to send, schedule, and manage emails through the Ravenclaw Email Bridge, including checking inboxes and forwarding POP3 emails to Discord webhooks. It solves the need for automated email workflows without requiring direct SMTP integration, and should be used when an agent or developer needs to incorporate email sending, scheduling, or inbox monitoring capabilities into their application while leveraging Ravenclaw's existing infrastructure.
Ravenclaw Operations Skill
Category: Email Automation / Communication
Description: Operate the Ravenclaw Email Bridge — send emails, schedule future emails, check inbox, and manage email workflows. Forward POP3 emails to Discord webhooks with scheduled sending capabilities.
Maintainer: Ibrahim Qureshi (@ibrahimq21)
Tags: email, discord, webhook, automation, smtp, pop3, scheduled
Capabilities
- Send immediate emails via SMTP
- Schedule emails for future delivery
- Check inbox and unread emails
- Trigger manual email checks
- View scheduled email queue
- Cancel scheduled emails
- Health checks and statistics
Requirements
Local Setup (for direct operation)
Ravenclaw must be running:
# Start Ravenclaw bridge
cd path/to/ravenclaw
python ravenclaw.py
# Default port: 5002Environment variables:
RAVENCLAW_URL(optional): Custom URL for Ravenclaw API (default:http://localhost:5002)
Community Sharing
For users to use this skill:
- They must have Ravenclaw installed locally
- Ravenclaw must be running
- Configuration via environment or
RAVENCLAW_URL
Commands
Send Email
Send an immediate email.
Pattern:
send email to [recipient] with subject [subject] and body [body]Example:
send email to manager@company.com with subject "Leave Request" and body "I would like to take leave tomorrow."Parameters:
recipient(required): Email addresssubject(required): Email subject linebody(required): Email content
API Call: POST /send
Schedule Email
Schedule an email to be sent at a specific time.
Pattern:
schedule email to [recipient] with subject [subject] and body [body] at [time]Example:
schedule email to hr@company.com with subject "Leave Application" and body "Requesting leave for next Monday" at "2026-02-23T09:00:00"Parameters:
recipient(required): Email addresssubject(required): Email subject linebody(required): Email contenttime(required): ISO-8601 timestamp (e.g.,2026-02-23T09:00:00)
API Call: POST /schedule
Tips:
- Use format:
YYYY-MM-DDTHH:MM:SS - Time must be in the future
- High priority emails get more retry attempts
List Scheduled Emails
View all scheduled emails.
Pattern:
list scheduled emails
show scheduled emailsAPI Call: GET /schedule/list
Response includes:
- Total emails
- Pending count
- Full list with status, target time, recipient
Cancel Scheduled Email
Cancel a pending scheduled email.
Pattern:
cancel scheduled email [id]Example:
cancel scheduled email sched_20260223100000_0API Call: POST /schedule/cancel/<id>
Check Inbox
Trigger a manual inbox check.
Pattern:
check inbox
check emailsAPI Call: POST /check
Behavior:
- Fetches new emails from POP3 server
- Forwards to Discord (if configured)
- Updates inbox JSON
View Unread Emails
Get list of unread emails.
Pattern:
show unread emails
get unreadAPI Call: GET /unread
View All Inbox
Get all emails from inbox.
Pattern:
show inbox
list emailsAPI Call: GET /inbox
Health Check
Check Ravenclaw status.
Pattern:
ravenclaw status
ravenclaw healthAPI Call: GET /health
Response:
- Running status
- Account info
- Email counts
- Domain configuration
Statistics
View processing statistics.
Pattern:
ravenclaw stats
email statisticsAPI Call: GET /stats
Includes:
- Total emails
- Unread count
- Pending scheduled emails
- Allowed domains
Configuration Examples
Direct Operation (when Ravenclaw is local)
# No special config needed
# Uses http://localhost:5002 by defaultCustom URL
# Set environment variable
export RAVENCLAW_URL="http://your-server:5002"Ravenclaw .env Configuration
# Required
EMAIL_HOST=mail.yourdomain.com
EMAIL_USERNAME=your@email.com
EMAIL_PASSWORD=yourpassword
# Optional
DOMAIN_FILTER=yourdomain.com
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/...
BRIDGE_PORT=5002Use Cases
Leave Requests
schedule email to manager@company.com with subject "Leave Request - March 2-6" and body "Dear Manager,\n\nI would like to request leave..." at "2026-02-16T10:00:00"Meeting Reminders
schedule email to team@company.com with subject "Meeting Tomorrow" and body "Don't forget about the sync meeting at 10 AM" at "2026-02-17T09:00:00"Auto-Notifications
send email to alerts@company.com with subject "System Alert" and body "CPU usage exceeded 90%"Error Handling
| Error | Cause | Solution |
|---|---|---|
| Connection refused | Ravenclaw not running | Start Ravenclaw: python ravenclaw.py |
| Domain not allowed | Recipient domain not in filter | Update DOMAIN_FILTER in .env |
| target_time must be in future | Scheduled time passed | Use future timestamp |
| SMTP failed | Email server error | Check .env credentials |
Troubleshooting
Ravenclaw not responding:
# Check if running
curl http://localhost:5002/health
# Start Ravenclaw
cd path/to/ravenclaw
python ravenclaw.pyEmails not sending:
- Verify SMTP credentials in
.env - Check domain is in
DOMAIN_FILTER - Review
ravenclaw.log
Scheduled emails not sent:
- Ravenclaw must be running for scheduled sending
- Check
/schedule/listfor status - Ensure
target_timeis in ISO-8601 format
Files
- SKILL.md — This documentation
- skill.yaml — Skill definition (if needed)
- ops.sh — Helper operations (optional)
Integration Notes
This skill requires:
- Ravenclaw server running locally
- SMTP/POP3 access configured in
.env - Network access to
localhost:5002
For community sharing, users need their own Ravenclaw instance with their own email credentials.
Related
- Ravenclaw Repo: https://github.com/ibrahimq21/ravenclaw
- Documentation: See
README.mdin Ravenclaw repo