| title | CLI | |||||||
|---|---|---|---|---|---|---|---|---|
| description | Install and configure the Sendmux CLI for management, mailbox, and sending workflows. | |||||||
| keywords |
|
Use the sendmux CLI when you want terminal access to the same Management, Mailbox, and Sending API surfaces exposed by the SDKs.
Install the CLI from npm.
npm install -g @sendmux/cliCheck the installed command.
sendmux --version
sendmux --helpSave API keys as local CLI profiles so you do not pass a key on every command.
sendmux profiles:set mailbox \
--api-key "$SENDMUX_MAILBOX_KEY" \
--defaultsendmux profiles:set management \
--api-key "$SENDMUX_ROOT_KEY"The CLI stores profile configuration locally with restricted file permissions. profiles:list --verbose and profiles:show mask saved keys.
sendmux profiles:list
sendmux profiles:list --verbose
sendmux profiles:show managementEvery API command resolves credentials in this order:
--api-keySENDMUX_API_KEY--profileSENDMUX_PROFILE- 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 mailbox or sending commands fail early when they receive a root key. API permissions still apply, so a pre-claim smx_agent_ token cannot send email.
Commands use colon-separated names.
sendmux sending:send \
--profile mailbox \
--body '{"from":{"email":"sender@example.com"},"to":{"email":"recipient@example.com"},"subject":"Hello","text_body":"Sent with the Sendmux CLI"}' \
--idempotency-key send-cli-001sendmux mailbox:messages:list \
--profile mailbox \
--query limit=25sendmux management:mailboxes:list \
--profile management \
--query limit=25Pass request bodies inline with --body or from a file with --body-file.
sendmux management:create-mailbox \
--profile management \
--body-file ./mailbox.json \
--idempotency-key create-mailbox-001Pass parameters with repeatable name=value flags:
--path name=valuefor path parameters.--query name=valuefor query parameters.--header name=valuefor supported headers.
Typed values are validated before the request is sent. Unknown parameter names fail with the supported names for that command.
Without --json, API commands print formatted JSON for easy reading. Use --json when another process needs machine-readable output from the CLI.
sendmux management:mailboxes:list --profile management --jsonText responses return { "text": "..." } with --json. Binary responses return base64 data and byte_length.
Use the dedicated safety flags when the generated command supports the corresponding header:
| Flag | Header |
|---|---|
--idempotency-key |
Idempotency-Key |
--if-match |
If-Match |
--if-none-match |
If-None-Match |
The CLI rejects these flags on commands whose API operation does not accept the matching header.
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:
sendmux sending --help
sendmux mailbox --help
sendmux management --help
sendmux sending:send --help