blind relay PricingSecurityAPICLIAgent Plugin Sign in Sign up

CLI

Drive Blindrelay from your terminal — send mail on every plan; manage domains and inspect usage with read/write on Mini and higher. Same scoped API keys your apps use. Zero content retention still applies: the CLI never logs recipients or message bodies.

Start free Prefer the Agent Plugin?

Why a CLI

  • Script deploys, DNS verify loops, and ops runbooks without a browser
  • Same machine API as HTTP — least-privilege scopes on every command
  • Pair with Agent Plugin for agents; keep the terminal for humans

Install

Binary name blindrelay. Linux installs a checksum-verified release binary; macOS uses Homebrew with prebuilt bottles (no Rust compile).

curl -fsSL https://blindrelay.app/install.sh | sh export PATH="$HOME/.local/bin:$PATH"

Or Homebrew:

brew tap blindrelay/tap https://blindrelay.app/tap.git brew install blindrelay/tap/blindrelay

Authenticate with blindrelay auth login (browser approves a ~21-day API key stored under ~/.config/blindrelay/), or create a scoped key under API Keys (sign-in required) and set BLINDRELAY_API_KEY. Free plans mint send only; read/write need Mini+. Revealing a key with a passkey works only in the browser.

blindrelay auth login # or: export BLINDRELAY_API_KEY='br_…'

Quickstart

blindrelay auth login blindrelay setup blindrelay send \ --from 'noreply@example.com' \ --to 'user@example.com' \ --subject 'Hello' \ --html '<p>Hi</p>'

Commands and scopes

CommandScopeDescription
blindrelay setupany

Where setup stands and the next step: domain, DNS records, verification, test send. Resumable; the test email only after you confirm it

blindrelay checknone

Check subject, HTML and text before sending: placeholder links, unrendered template variables, HTML mistakes. Runs offline with no key; never fetches links; exits 1 on errors

blindrelay sendsend

Queue a transactional email (--header for Reply-To or List-Unsubscribe)

blindrelay domains list / get / dns-guideread

List or inspect sending domains, or copy an LLM DNS publish prompt

blindrelay domains add / verify / rotate-dkim / removewrite

Register, verify DNS, rotate DKIM, or delete a domain

blindrelay domains set-dedicated-ipwrite

Pin a domain to a dedicated IP, force shared, or follow workspace default

blindrelay dedicated-ip getread

List dedicated IP assignments and workspace default

blindrelay dedicated-ip request / cancel / resume-checkout / set-default / dismiss-closurewrite

Request, pay, cancel, or set default dedicated IP

blindrelay inbound-forward getread

List inbound forward aliases (paid plans)

blindrelay inbound-forward add / update / removewrite

Create, update, or delete inbound forward aliases (mailbox or HTTPS endpoint)

blindrelay inbound-forward endpoints listread

List inbound HTTPS endpoints with delivery diagnostics (never the signing secret)

blindrelay inbound-forward endpoints add / update / remove / rotate-secret / testwrite

Manage inbound HTTPS endpoints; add and rotate-secret return the signing secret once

blindrelay usage / usage-historyread

Current and historical usage

blindrelay spend-cap setwrite

Set or clear the monthly message cap that limits overage spend

blindrelay delivery-statsread

Delivery counters (optional period, domain, egress filters)

blindrelay emails statussend

Delivery status of one message by the id its send returned (a read key works too; no recipient or content)

blindrelay emails listsend

Recent messages for the delivery data window: id, domain, status, timestamps (a read key works too; no recipient or content)

blindrelay suppression list / exportread

List or export suppression hashes (no plaintext addresses)

blindrelay suppression lookupread

Find every suppression entry for an address, with its cause (matched in process, never stored)

blindrelay suppression addwrite

Add a hash-only manual suppression (plaintext hashed in process)

blindrelay suppression removewrite

Remove any suppression entry by id (--confirm for hard bounces, also --confirm-complaint for complaints)

blindrelay audit listread

Control-plane audit events (no message content)

blindrelay otlp getread

Get OTLP export config (auth header masked)

blindrelay otlp save / testwrite

Save OTLP config or probe the collector

blindrelay delivery-settings getread

Get delivery webhook settings (auth header masked) and hook diagnostics: attempts, last attempt, HTTP status, failure category

blindrelay delivery-settings save / testwrite

Save delivery webhook settings or send a test webhook (category and HTTP status, not counted). The first save of a webhook returns its signing secret, once

blindrelay delivery-settings rotate-secretwrite

Generate or rotate the webhook signing secret, shown once; the replaced secret also signs for 24 hours

blindrelay feedbackany

Send product feedback to the Blindrelay team: sentiment, area, what worked or did not, and the goal behind it. Agents send it only after you approve the draft; text with an email address is refused

Machine API

The CLI is a thin client over /v1/*. Payload fields and error codes live in the API reference.

API reference Security model