Rank
70
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
IMAP/SMTP mail client for OpenClaw agents. Use when: (1) reading or listing emails from a mailbox, (2) searching emails by sender, subject, date or text, (3) sending emails with plain text or HTML body, with optional file attachments, (4) moving, marking, or deleting messages. NOT for: bulk mailing, newsletters, calendar/contacts (use CalDAV), or providers requiring OAuth (use a dedicated skill). --- name: mail-client description: "IMAP/SMTP mail client for OpenClaw agents. Use when: (1) reading or listing emails from a mailbox, (2) searching emails by sender, subject, date or text, (3) sending emails with plain text or HTML body, with optional file attachments, (4) moving, marking, or deleting messages. NOT for: bulk mailing, newsletters, calendar/contacts (use CalDAV), or providers requiring OAuth (use a de Capability contract not published. No trust telemetry is available yet. Last updated 3/1/2026.
Freshness
Last checked 3/1/2026
Best For
mail-client is best for also workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack
IMAP/SMTP mail client for OpenClaw agents. Use when: (1) reading or listing emails from a mailbox, (2) searching emails by sender, subject, date or text, (3) sending emails with plain text or HTML body, with optional file attachments, (4) moving, marking, or deleting messages. NOT for: bulk mailing, newsletters, calendar/contacts (use CalDAV), or providers requiring OAuth (use a dedicated skill). --- name: mail-client description: "IMAP/SMTP mail client for OpenClaw agents. Use when: (1) reading or listing emails from a mailbox, (2) searching emails by sender, subject, date or text, (3) sending emails with plain text or HTML body, with optional file attachments, (4) moving, marking, or deleting messages. NOT for: bulk mailing, newsletters, calendar/contacts (use CalDAV), or providers requiring OAuth (use a de
Public facts
4
Change events
1
Artifacts
0
Freshness
Mar 1, 2026
Capability contract not published. No trust telemetry is available yet. Last updated 3/1/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Mar 1, 2026
Vendor
Rwx G
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. Last updated 3/1/2026.
Setup snapshot
git clone https://github.com/Rwx-G/openclaw-skill-mail-client.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Rwx G
Protocol compatibility
OpenClaw
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
bash
python3 scripts/setup.py # interactive setup: credentials + permissions python3 scripts/init.py # validate all configured capabilities python3 scripts/mail.py config # show current config (no secrets)
bash
python3 scripts/setup.py
bash
python3 scripts/init.py
json
{
"allow_send": true,
"allow_read": true,
"allow_search": true,
"allow_delete": false,
"smtp_port": 587,
"imap_port": 993,
"mail_from": "you@example.com",
"default_folder": "INBOX",
"max_results": 20
}text
MAIL_SMTP_HOST=mail.example.com MAIL_IMAP_HOST=mail.example.com MAIL_USER=user@example.com MAIL_APP_KEY=app-password-here
bash
python3 scripts/setup.py --cleanup
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB OPENCLEW
Editorial quality
ready
IMAP/SMTP mail client for OpenClaw agents. Use when: (1) reading or listing emails from a mailbox, (2) searching emails by sender, subject, date or text, (3) sending emails with plain text or HTML body, with optional file attachments, (4) moving, marking, or deleting messages. NOT for: bulk mailing, newsletters, calendar/contacts (use CalDAV), or providers requiring OAuth (use a dedicated skill). --- name: mail-client description: "IMAP/SMTP mail client for OpenClaw agents. Use when: (1) reading or listing emails from a mailbox, (2) searching emails by sender, subject, date or text, (3) sending emails with plain text or HTML body, with optional file attachments, (4) moving, marking, or deleting messages. NOT for: bulk mailing, newsletters, calendar/contacts (use CalDAV), or providers requiring OAuth (use a de
IMAP read/search + SMTP send for any standard mail server. Python stdlib only, zero external dependencies.
python3 scripts/setup.py # interactive setup: credentials + permissions
python3 scripts/init.py # validate all configured capabilities
python3 scripts/mail.py config # show current config (no secrets)
python3 scripts/setup.py
The wizard collects:
python3 scripts/init.py
Expected output: all checks OK or SKIP (none FAIL).
Edit ~/.openclaw/config/mail-client/config.json:
{
"allow_send": true,
"allow_read": true,
"allow_search": true,
"allow_delete": false,
"smtp_port": 587,
"imap_port": 993,
"mail_from": "you@example.com",
"default_folder": "INBOX",
"max_results": 20
}
| Path | Written by | Purpose | Contains secrets |
|------|-----------|---------|-----------------|
| ~/.openclaw/secrets/mail_creds | setup.py | SMTP/IMAP credentials + app key | YES - chmod 600, never committed |
| ~/.openclaw/config/mail-client/config.json | setup.py | Behavior restrictions, folder/limit defaults | NO - behavior only, not in skill dir - survives clawhub updates |
~/.openclaw/secrets/mail_credsWritten by setup.py, chmod 600, never committed to git. Contains:
MAIL_SMTP_HOST=mail.example.com
MAIL_IMAP_HOST=mail.example.com
MAIL_USER=user@example.com
MAIL_APP_KEY=app-password-here
Ports (smtp_port, imap_port) and sender address (mail_from) are set in config.json - they are configuration, not credentials.
Credentials can also be provided via environment variables (MAIL_USER, MAIL_APP_KEY, MAIL_SMTP_HOST, MAIL_IMAP_HOST). Environment variables take precedence over file values. The skill checks env vars first, then falls back to the creds file.
~/.openclaw/config/mail-client/config.jsonWritten by setup.py. Controls behavior restrictions (which capabilities are enabled).
Contains no secrets. Not in the skill directory - survives clawhub updates.
Start from config.example.json in the skill dir if you prefer to create it manually.
Cleanup on uninstall: clawhub uninstall mail-client removes the skill directory. To also remove credentials and config:
python3 scripts/setup.py --cleanup
On reinstall, any existing config at ~/.openclaw/config/mail-client/config.json is picked up automatically.
Import MailClient directly in Python:
from scripts.mail import MailClient
client = MailClient()
# List 5 unread messages
msgs = client.list_messages(limit=5, unseen_only=True)
for m in msgs:
print(m["from"], m["subject"])
# Read a message
msg = client.read_message("42")
print(msg["body"])
# Send a message
result = client.send(
to="alice@example.com",
subject="Hello",
body="Hi Alice, how are you?",
)
print(result)
# Send with attachments
result = client.send(
to="alice@example.com",
subject="Report Q1",
body="Please find attached the Q1 report.",
attachments=["report.pdf", "data.xlsx"],
)
print(result)
# Search
found = client.search_messages(from_addr="bob@example.com", unseen_only=True)
python3 scripts/mail.py <subcommand> [options]
| Subcommand | Requires | Description |
|------------|---------|-------------|
| list | allow_read | List messages (newest first) |
| read <uid> | allow_read | Read a full message by UID |
| search | allow_search | Search with filters |
| send | allow_send | Send an email (with optional --attachment) |
| move <uid> <folder> | allow_delete | Move message to folder |
| mark-read <uid> | allow_read | Mark as read |
| mark-unread <uid> | allow_read | Mark as unread |
| delete <uid> | allow_delete | Delete a message |
| folders | allow_read | List IMAP folders |
| quota | none | Get mailbox quota |
| config | none | Show current config |
# List last 10 messages
python3 scripts/mail.py list --limit 10
# List unread only
python3 scripts/mail.py list --unseen
# Read message UID 42
python3 scripts/mail.py read 42
# Search from a sender since a date
python3 scripts/mail.py search --from-addr alice@example.com --since 01-Jan-2026
# Search by subject containing "invoice"
python3 scripts/mail.py search --subject "invoice"
# Send with CC
python3 scripts/mail.py send \
--to recipient@example.com \
--subject "Report" \
--body "Please find attached." \
--cc manager@example.com
# Send with attachments
python3 scripts/mail.py send \
--to recipient@example.com \
--subject "Report Q1" \
--body "See attached." \
--attachment report.pdf data.xlsx
# Move UID 42 to Archive
python3 scripts/mail.py move 42 Archive
# Mark as unread
python3 scripts/mail.py mark-unread 42
# Delete UID 42
python3 scripts/mail.py delete 42
# List folders
python3 scripts/mail.py folders
# Check quota
python3 scripts/mail.py quota
from scripts.mail import MailClient
client = MailClient()
msgs = client.list_messages(unseen_only=True, limit=10)
if not msgs:
print("No unread messages.")
else:
for m in msgs:
print(f"[{m['uid']}] From: {m['from']} | {m['subject']}")
from scripts.mail import MailClient
client = MailClient()
client.send(
to="admin@example.com",
subject="Alert: disk usage high",
body="Disk usage has exceeded 90% on server prod-01.",
)
from scripts.mail import MailClient
client = MailClient()
invoices = client.search_messages(subject="invoice", since="01-Jan-2025")
for msg in invoices:
client.move_message(msg["uid"], "Archive/Invoices")
nextcloud-files - attach or save email attachments to Nextcloudghost-admin - email notification when a Ghost post is publishedSee references/troubleshooting.md for:
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/rwx-g-openclaw-skill-mail-client/snapshot"
curl -s "https://xpersona.co/api/v1/agents/rwx-g-openclaw-skill-mail-client/contract"
curl -s "https://xpersona.co/api/v1/agents/rwx-g-openclaw-skill-mail-client/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
70
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
Traction
No public download signal
Freshness
Updated 2d ago
Rank
70
AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs
Traction
No public download signal
Freshness
Updated 5d ago
Rank
70
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
Traction
No public download signal
Freshness
Updated 6d ago
Rank
70
The Frontend for Agents & Generative UI. React + Angular
Traction
No public download signal
Freshness
Updated 23d ago
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/rwx-g-openclaw-skill-mail-client/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/rwx-g-openclaw-skill-mail-client/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/rwx-g-openclaw-skill-mail-client/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/rwx-g-openclaw-skill-mail-client/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/rwx-g-openclaw-skill-mail-client/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/rwx-g-openclaw-skill-mail-client/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-04-16T23:45:56.751Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "also",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:also|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Rwx G",
"href": "https://github.com/Rwx-G/openclaw-skill-mail-client",
"sourceUrl": "https://github.com/Rwx-G/openclaw-skill-mail-client",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-03-01T06:05:57.708Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://xpersona.co/api/v1/agents/rwx-g-openclaw-skill-mail-client/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/rwx-g-openclaw-skill-mail-client/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-03-01T06:05:57.708Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/rwx-g-openclaw-skill-mail-client/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/rwx-g-openclaw-skill-mail-client/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to mail-client and adjacent AI workflows.