npx skills add ...
npx skills add vercel-labs/emulate --skill resend
Emulated Resend email API for local development and testing. Use when the user needs to send emails locally, test transactional email flows, implement magic link or verification code auth, inspect sent emails, manage domains/contacts/API keys, or work with the Resend API without sending real emails. Triggers include "Resend API", "emulate Resend", "send email locally", "test email", "magic link", "verification email", "email inbox", "RESEND_BASE_URL", or any task requiring a local email API.
npx skills add vercel-labs/emulate --skill resend
Fully stateful Resend API emulation. Emails, domains, API keys, audiences, and contacts persist in memory. Sent emails are captured and viewable through the inbox UI or the REST API.
No real emails are sent. Every call to POST /emails stores the message locally so you can inspect it programmatically or in the browser.
Or programmatically:
Pass tokens as Authorization: Bearer <token>. Any re_ prefixed token is accepted.
When no token is provided, requests fall back to the default user.
The official Resend Node.js SDK reads RESEND_BASE_URL at module load time. Set it to the emulator URL and the SDK works without any code changes:
When using @emulators/adapter-next, the emulator runs inside your Next.js app at /emulate/resend. Set RESEND_BASE_URL via next.config.ts:
If you cannot use the SDK or env var, call the emulator directly:
This is the key differentiator of the emulator: every email sent via POST /emails is stored and queryable.
Browse sent emails in the browser:
Useful for completing magic link, verification code, or password reset flows programmatically:
Supported fields: from, to, subject, html, text, cc, bcc, reply_to, headers, tags, scheduled_at.
The emulator dispatches webhook events when state changes:
email.sent and email.delivered on POST /emailsdomain.created and domain.deleted on domain operationscontact.created and contact.deleted on contact operations