Mails for Agent

Complete service registrations autonomously by receiving verification codes. Also: send and receive emails, monitor inbox, search by keyword, download attachments, view threads, filter by label, extract structured data, manage mailbox and webhooks.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "Mails for Agent" with this command: npx skills add digidai/mails-for-agent

Email Skill — Agent Auth-Completion

You have the email address $MAILS_MAILBOX. Your primary superpower: complete service registrations autonomously by receiving verification codes via GET /api/code?timeout=60.

Make HTTP requests to $MAILS_API_URL with header Authorization: Bearer $MAILS_AUTH_TOKEN.

Sign up for a service: Fill form with $MAILS_MAILBOX → GET /api/code?timeout=60 → enter the code. Done.

API Endpoints

MethodEndpointDescription
GET/api/inboxList/search emails. Params: query, limit, offset, direction, label, mode (keyword/semantic/hybrid)
GET/api/email?id=IDFull email with body, attachments, labels
GET/api/code?timeout=60Wait for verification code (long-poll). Params: timeout, since
POST/api/sendSend email. Body: { from, to[], cc[], bcc[], subject, text, html, reply_to, in_reply_to, headers, attachments }
DELETE/api/email?id=IDDelete email and attachments
GET/api/attachment?id=IDDownload attachment
GET/api/threadsList conversation threads. Params: limit, offset
GET/api/thread?id=IDGet all emails in a thread
POST/api/extractExtract structured data. Body: { email_id, type } type: order/shipping/calendar/receipt/code
GET/api/statsMailbox statistics (total, inbound, outbound, this month)
GET/api/eventsSSE real-time event stream. Params: types, since
GET/api/mailboxMailbox info (status, webhook_url)
PATCH/api/mailboxUpdate mailbox settings. Body: { webhook_url }
PATCH/api/mailbox/pausePause mailbox (blocks all operations)
PATCH/api/mailbox/resumeResume paused mailbox
GET/api/mailbox/routesList per-label webhook routes
PUT/api/mailbox/routesUpsert webhook route. Body: { label, webhook_url }
DELETE/api/mailbox/routes?label=XDelete webhook route for label
GET/api/meMailbox info and capabilities
GET/healthHealth check (no auth)

Request Format

All requests (except /health) require Authorization: Bearer $MAILS_AUTH_TOKEN header.

POST/PUT/PATCH requests require Content-Type: application/json header.

The to param is optional — the API auto-scopes to the token's mailbox.

Response Shapes

Inbox: { "emails": [{ "id", "from_address", "from_name", "subject", "code", "direction", "status", "received_at", "has_attachments", "attachment_count" }], "search_mode": "keyword" }

Email detail: Full email object with body_text, body_html, headers, metadata, labels, thread_id, in_reply_to, references, attachments[]

Code: { "id": "...", "code": "483920", "from": "...", "subject": "...", "received_at": "..." } or { "code": null }

Send: { "id": "...", "provider_id": "...", "thread_id": "..." }

Threads: { "threads": [{ "thread_id", "latest_email_id", "subject", "from_address", "from_name", "received_at", "message_count", "has_attachments" }] }

Stats: { "mailbox", "total_emails", "inbound", "outbound", "emails_this_month", "ingest": { "pending", "parsed", "failed" } }

Extract: { "email_id": "...", "extraction": { "type": "order", "order_id": "...", ... } }

Events (SSE): event: message.received\ndata: { "email_id", "mailbox", "from", "subject", ... }

Send Fields

FieldRequiredDescription
fromYesMust be $MAILS_MAILBOX (enforced server-side)
toYesArray of recipients (max 50)
subjectYesMax 998 characters
texttext or htmlPlain text body
htmltext or htmlHTML body
ccNoArray of CC recipients
bccNoArray of BCC recipients
reply_toNoReply-to address
in_reply_toNoMessage-ID of parent email (enables threading)
headersNoCustom headers object
attachmentsNo[{ filename, content (base64), content_type?, content_id? }]

Labels

Emails are auto-labeled on receive: newsletter, notification, code, personal. Filter with ?label=notification.

Common Flows

Sign up for a service: Fill form with $MAILS_MAILBOX → GET /api/code?timeout=60 → enter the code

Process inbox: GET /api/inbox → GET /api/email?id=ID → DELETE /api/email?id=ID

Reply to an email: GET /api/email?id=ID → POST /api/send with in_reply_to set to the email's message_id

View threads: GET /api/threads → GET /api/thread?id=THREAD_ID

Monitor in real-time: GET /api/events (SSE stream, reconnects automatically)

Extract data: POST /api/extract with {"email_id":"ID","type":"order"}

Set up webhook routing: PUT /api/mailbox/routes with {"label":"code","webhook_url":"https://..."}

Constraints

  • from must match $MAILS_MAILBOX
  • Verification codes: 4-12 alphanumeric (EN/ZH/JA/KO)
  • Code wait timeout max 55 seconds
  • Send rate limit: 100 emails/day per mailbox
  • Search uses FTS5 full-text search (keyword mode) or Vectorize (semantic mode)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

Spicy Ai Video

Turn a 60-second talking head clip into 1080p high-energy edited videos just by typing what you need. Whether it's turning bland footage into visually intens...

Registry SourceRecently Updated
Coding

Video Maker Fast

Get polished MP4 videos ready to post, without touching a single slider. Upload your video clips (MP4, MOV, AVI, WebM, up to 500MB), say something like "trim...

Registry SourceRecently Updated
Coding

Generation Generator

generate text prompts or clips into AI generated videos with this skill. Works with MP4, MOV, PNG, JPG files up to 500MB. marketers, content creators, social...

Registry SourceRecently Updated
Coding

Editor On Android

Get edited MP4 clips ready to post, without touching a single slider. Upload your video clips (MP4, MOV, AVI, WebM, up to 500MB), say something like "trim th...

Registry SourceRecently Updated