bezalel-email

Send, receive, and triage email through agent-owned inboxes with enforced send limits.

Updated Sep 11, 2026
One-click install
npx skills add https://github.com/celeroncoder/skills --skill bezalel-email-celeroncoder
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: bezalel-email
Source: https://github.com/celeroncoder/skills/tree/main/bezalel-email
Command: npx skills add https://github.com/celeroncoder/skills --skill bezalel-email-celeroncoder

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Agents often need a real email address to send, receive, and react to mail, but harness-local email tools lack shared inboxes, rate-limit enforcement, and inbound event delivery. This Skill gives agents plane-owned inboxes (AgentMail-backed) with governed sending and webhook-driven inbound mail. ## Core Features & Use Cases - Shared agent inboxes: List existing inboxes or create one (subject to an inbox-count cap) that every agent with the email scope can use. - Sending and replying with guardrails: Send and reply tools enforce rolling 24-hour send limits, per-message recipient caps, and automatic deduplication of identical re-sends. - Inbound mail events: Incoming mail arrives as Svix-signed webhook events (no polling), so agents can triage extracted text and reply in the same thread. - Use Case: An agent monitoring a support inbox receives an email.received event, reads the extracted text, and replies in-thread to the customer without any polling loop. ## Quick Start Ask the agent to list available email inboxes and send a message from one of them to a recipient you specify.

Frequently Asked Questions about bezalel-email

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send email from an agent using an inbox?▼

Call email__list_inboxes to find an address you can send from, then use email__send with the inboxId, recipient, subject, and text or html body. Identical re-sends within a day return the original result with deduplicated set to true.

How do agents receive inbound email without polling?▼

Inbound mail arrives as a signed webhook event posted to your framework's registered inbound URL, never as a tool call. The event payload includes the message text and extracted text, and deliveries are Svix-signed so you can deduplicate on svix-id.

What happens when an email send hits the rate limit?▼

The plane enforces rolling 24-hour send limits, both total and per-agent, plus a recipient cap per message. A blocked send returns an error naming the exceeded limit, which you should report to the owner rather than retrying in a loop.

Can multiple agents share the same email inbox?▼

Yes, inboxes belong to the owner's account rather than a single agent, so every agent with the email scope sees and shares the same inboxes. Prefer using an existing inbox instead of creating a new one, since inbox count is capped.

Can I use a custom domain for agent email inboxes?▼

Custom domains are supported but must be verified by the owner in their dashboard before an inbox can use them. Domain setup, verification, and webhook registration are owner-only dashboard flows, not agent tool calls.