Mike Miller
March 12, 2026

We rebuilt the Courier CLI (command-line interface) from scratch, designed for both developers and AI agents. The previous version covered a subset of the API. The new one covers the full Courier API with a consistent courier [resource] <command> [flags] pattern across messages, profiles, lists, tenants, automations, preferences, bulk jobs, and more. Whether you're working in Cursor, Claude Code, or a CI pipeline, every Courier operation is now a terminal command away.
It's a standalone binary for macOS, Linux, and Windows with no runtime dependencies. Install via npm (npm install -g @trycourier/cli), which downloads a platform-specific binary through a postinstall step, or grab it from GitHub Releases.
Every command supports --format json for machine-readable output and --transform for filtering responses with GJSON syntax. Run --help on any command to see its flags and usage, which makes the CLI self-documenting for agents that discover tools at runtime. See the CLI docs for the full reference.
The real power isn't any single command. It's that agents can chain commands together, using structured output from one step to decide what to run next.
You tell your agent to send a message, and it translates that into a command:
Copied!
courier send message \--message.to.email "alex@example.com" \--message.content.title "New login detected" \--message.content.body "We noticed a new login to your account from San Francisco. If this wasn't you, reset your password immediately."
That's inline content, but agents can also reference templates, add multi-channel routing with fallbacks, include dynamic data, or send to entire lists. The same command works across email, SMS, push notifications, in-app notifications, Slack, Microsoft Teams, WhatsApp, Discord, and webhooks. One command, any channel.
This is where agents and the CLI really click. Your teammate says a user didn't get a message. Instead of opening the dashboard, you ask your agent to look into it:
UNROUTABLEEach step is a CLI command with --format json output that the agent parses to determine the next move. The entire investigation happens in your editor.
Agents can create user profiles, subscribe users to lists, set up tenants with custom branding, and update notification preferences. All the operational work that normally means switching to the dashboard or writing one-off scripts.
See the CLI docs for the full command reference across all these resources.
Install the CLI globally and set your API key:
Copied!
npm install -g @trycourier/cliexport COURIER_API_KEY="your-api-key"
That's the entire setup. No config files, no auth flows, no SDK initialization. If your shell has the API key, your agent has access.
Cursor's agent mode can run shell commands directly, so the CLI works out of the box once installed. To get more out of it, add a project rule that tells the agent the CLI is available and points it at the CLI docs for command reference.
Claude Code has direct shell access, so the same applies. Set COURIER_API_KEY in your shell profile (.zshrc, .bashrc) so it persists across sessions, and add a note to your CLAUDE.md project instructions letting the agent know the CLI is available.
If you'd rather give your agent structured tool access instead of shell commands, we also have an MCP server that exposes the same Courier operations through the Model Context Protocol. Both Cursor and Claude Code support MCP. It's a different integration path to the same capabilities.
Beyond agents, the CLI is also the fastest way to interact with Courier from your terminal for scripting, CI/CD smoke tests, and debugging on the fly. The CLI docs have recipes and examples for all of it.
Install it, set your API key, and start using it.

Your Entire Lifecycle Marketing Department, Run from Claude Fable 5
With the rollout of Claude' Fable model, one thing is becoming increasingly clear. Marketing execution (especially the long-tail work), will be done in an AI editor. In Courier, connect your agent to the MCP server or CLI, install Courier Skills, and keep a small folder of markdown context files. From there, one person with a coding agent covers the work that used to require a lifecycle marketer, an email designer, a marketing ops hire, and an engineer: building journeys, shipping templates, auditing every notification, and debugging delivery without opening a dashboard.
By Kyle Seyler
June 09, 2026

Human-in-the-loop for AI payment agents: building approval notifications that work
AI agents need human approval before taking consequential actions: financial commitments, irreversible changes, decisions that affect other people. This post covers how to design those checkpoints and build the notification infrastructure: multi-channel delivery, live context, escalation, and a back-and-forth question loop between reviewers and the agent.
By Eric Lee
May 26, 2026

What we shipped this month: May 2026 Edition
Courier shipped five launches in May 2026: AI Agent in Journeys (GA), the new Journeys API for code-driven flows, Custom Environments, Design Studio styling controls, and Courier Console v3. Each one closes a gap between writing software and shipping the messages that go with it.
By Kyle Seyler
May 20, 2026
© 2026 Courier. All rights reserved.