CLI
@irisend/cli is a local dev inbox and hot-reloading template preview for the sandbox email provider. Nothing it sends reaches AWS SES. Usage reference.
npm install -g @irisend/cli
# or run without installing:
npx @irisend/cli devirisend dev — tail captured sends
Polls /dev/inbox on your Irisend server, prints each newly captured send, and serves a local preview UI at http://localhost:4400 — a list of captures with a sandboxed HTML preview and Text/Headers tabs, live-updated over SSE. Your API key is only ever sent to --api-url; the preview page's browser JavaScript never sees it. If the target server isn't running in sandbox mode, /dev/inbox 404s and the CLI exits immediately instead of polling forever.
irisend dev --api-url http://localhost:3001 --api-key $IRISEND_API_KEY[irisend dev] watching http://localhost:3001/dev/inbox — 2 existing capture(s)
[irisend dev] local preview: http://localhost:4400
[14:32:05] Acme <[email protected]> -> [email protected]: Welcome to Acme| Flag | Default |
|---|---|
| --api-url | http://localhost:3001 (or $IRISEND_API_URL) |
| --api-key | $IRISEND_API_KEY |
| --port | 4400 |
irisend dev --template — hot-reloading template preview
Renders a local .html file (optionally with a JSON data file) and reloads the browser whenever either file changes. Variables use the same brace convention as broadcast personalization: {{{var}}} substitutes the raw value, {{var}} HTML-escapes it first; a key missing from the data file renders as an empty string.
irisend dev --template welcome.html --data vars.json --port 4400<!-- welcome.html -->
<h1>Welcome, {{{first_name}}}!</h1>
<p>Your plan: {{plan}}</p>{ "first_name": "Jane", "plan": "Pro <3" }