Skip to main content
Use the sendmux CLI when you want terminal access to the same Management, Mailbox, and Sending API surfaces exposed by the SDKs.
Sending commands accept a send-capable smx_mbx_ key or owner-approved Sending-resource smx_agent_ token. Mailbox commands accept smx_mbx_ keys or scoped smx_agent_ tokens. Management commands require team-scoped smx_root_ keys.

Install

On Linux, install the CLI from the Snap Store.
On macOS or Linux, you can also install it with Homebrew.
You can also install it from npm.
Check the installed command.

Configure profiles

Save API keys as local CLI profiles so you do not pass a key on every command.
The CLI stores profile configuration locally with restricted file permissions. profiles:list --verbose and profiles:show mask saved keys.

Authentication order

Every API command resolves credentials in this order:
  1. --api-key
  2. SENDMUX_API_KEY
  3. --profile
  4. SENDMUX_PROFILE
  5. the configured default profile
--base-url overrides the API base URL for one command. SENDMUX_BASE_URL overrides it for the current shell. A profile can also store a base URL override. Before running the API call, the CLI checks that the key prefix matches the command surface. A management command fails early when it receives a mailbox-compatible key, and sending commands fail early when they receive a root key. Mailbox commands accept smx_mbx_ keys and scoped smx_agent_ tokens. API permissions still apply, so a pre-claim smx_agent_ token cannot send email.

Run commands

Commands use colon-separated names.
Pass request bodies inline with --body or from a file with --body-file.
Pass parameters with repeatable name=value flags:
  • --path name=value for path parameters.
  • --query name=value for query parameters.
  • --header name=value for supported headers.
Typed values are validated before the request is sent. Unknown parameter names fail with the supported names for that command.

Output

Without --json, API commands print formatted JSON for easy reading. Use --json when another process needs machine-readable output from the CLI.
Text responses return { "text": "..." } with --json. Binary responses return base64 data and byte_length.

Request safety flags

Use the dedicated safety flags when the generated command supports the corresponding header: The CLI rejects these flags on commands whose API operation does not accept the matching header.

Command reference

The CLI command set is generated from the public API surfaces. Run sendmux --help to see the current topics, sendmux <topic> --help to browse a surface, and sendmux <command> --help for the flags supported by one command. For example:

Next steps

SDK overview

Choose package-managed clients for application code.

API keys

Create scoped credentials before configuring CLI profiles.

Mailbox API

Review the API used by mailbox commands.

Management API

Review the API used by management commands.