MCP-native for Cursor, Claude Code, and Windsurf
Productv0.4.0

Email as code,
from the terminal

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.

View docs →
See it in action

Four commands,
zero ceremony

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.

Real output — not marketing mockups
~/posthawk-demo
$
1 / 4
Install

Pick your package manager

All three install methods ship the exact same binary from the same npm tarball. Click any command below to copy it.

Recommended
npm logo
npm
macOS · Linux · Windows

Works everywhere Node.js does

Homebrew logo
Homebrew
macOS · Linux

Uses the custom tap

Scoop logo
Scoop
Windows

Two-step install via the bucket

After install, verify with posthawk --version

First run

Zero to sending in 60 seconds

1
$ npm i -g posthawk
2
$ posthawk init my-emails
3
$ cd my-emails && npm install
4
$ posthawk login
5
$ posthawk send
Everything in the box

Twelve features,
one 87 KB binary

Hot-Reload Previews

posthawk preview opens your React Email template in the browser with server-sent-events reload. Edit, save, see it render — no build step.

Inline or Template Sends

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.

Interactive REPL

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.

Interactive Wizards

posthawk send with no flags walks you through domain picker → recipients → subject → body. posthawk init asks about deps and login. Zero memory needed.

posthawk doctor

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.

Local Send History

Every send is logged to ~/.posthawk/history.jsonl. posthawk logs shows it as a table. --follow tails new sends live across terminal sessions.

Project Scaffolding

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.

Watch Mode

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.

Smart Errors with Fixes

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.

Git-Friendly by Design

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.

CI/CD Ready

Set POSTHAWK_API_KEY in your pipeline and wire posthawk send into deploy hooks. Release notes on every git tag, zero-config.

One Install, Three Channels

npm, Homebrew, or Scoop — all three ship the same binary from the same npm tarball. Pick whichever fits your workflow.

Ship emails from your terminal

One install, twelve features, live on npm right now.

Read the docs →
Cookie Preferences

I use analytics cookies to understand how you use the site and improve your experience. Privacy Policy