Skip to main content
The helo CLI covers the whole Helo API from your terminal: send email, manage domains, channels and webhooks, and look up activity and statistics. Its output is JSON, so it works well in scripts and with AI agents too.

Install

On macOS or Linux:
Use the full name helo-email/tap/helo. Plain helo installs an unrelated app.
On macOS, install with Homebrew or the install script rather than downloading the archive in your browser. macOS blocks browser-downloaded binaries that aren’t notarized by Apple.
Check that it works:

Authenticate

The CLI authenticates with an API credential. Set it as an environment variable:
You can also pass it on each command with --token. If your credential can send through more than one Channel, also set the Channel to send through:
Commands that send take --channel-id to override it.

Send an email

While your account is in test mode, you can only send to email addresses on domains you have verified.
Add --dry-run to any command to print the request it would send, without sending it.

Common commands

Run helo --help to list every command, and helo <command> --help for a command’s flags.

Input and output

Each field of a request body has its own flag. You can also pass the whole body as JSON with --data, inline or from a file:
Results print to stdout as JSON:
Add --quiet to print only data, which is handy for piping into jq:
Errors go to stderr. Each kind of error has its own exit code, so scripts can tell them apart: 3 means a credential problem, 5 means the API rejected the request, and 6 means a retry may help. Run helo --help for the full list.