A single binary that turns your React Email templates into a shippable asset. Interactive REPL, hot-reload previews, one-shot sends, watch mode, local history, and a diagnostic command that tells you exactly what's wrong when something breaks.
Send, preview, diagnose, and tail your send history — all from the same shell session. Watch the commands cycle on the right, or click any dot to jump to one.
All three install methods ship the exact same binary from the same npm tarball. Click any command below to copy it.
Works everywhere Node.js does
Uses the custom tap

Two-step install via the bucket
After install, verify with posthawk --version
$ npm i -g posthawk$ posthawk init my-emails$ cd my-emails && npm install$ posthawk login$ posthawk sendposthawk preview opens your React Email template in the browser with server-sent-events reload. Edit, save, see it render — no build step.
Send a React Email template OR just pass --text "Hi" and --html "<p>Hi</p>" for one-shot inline sends. No wrapper script, no SDK import.
Run posthawk alone and you drop into a live prompt. Tab completion, arrow-key history, quote-aware parsing. Stay in the tool instead of re-typing it.
posthawk send with no flags walks you through domain picker → recipients → subject → body. posthawk init asks about deps and login. Zero memory needed.
Diagnoses setup issues in one command. Checks CLI version, auth, API reachability, project peer deps — each with an actionable Fix hint when something is off.
Every send is logged to ~/.posthawk/history.jsonl. posthawk logs shows it as a table. --follow tails new sends live across terminal sessions.
posthawk init drops a React Email starter, package.json, .env.local, and .gitignore into your project. From zero to first preview in under a minute.
posthawk watch email.tsx re-sends to your own inbox on every save. Debounced, atomic-save safe. The fastest way to iterate on real rendered emails.
Every failure ends with a "Fix:" section telling you exactly what to do next — whether that's running doctor, verifying a domain, or upgrading your plan.
Templates live as .tsx files in your repo. Review them in PRs like any other code. Tab-completable by the bundled bash/zsh/fish scripts.
Set POSTHAWK_API_KEY in your pipeline and wire posthawk send into deploy hooks. Release notes on every git tag, zero-config.
npm, Homebrew, or Scoop — all three ship the same binary from the same npm tarball. Pick whichever fits your workflow.
One install, twelve features, live on npm right now.
I use analytics cookies to understand how you use the site and improve your experience. Privacy Policy