Skip to main content

Communication CLI Reference

All Communication CLI commands are available under the shift-cli communication namespace. Channel IDs use the ch_ prefix, registration IDs use reg_, and delivery IDs use dl_.

Global Flags

FlagDescription
--jsonOutput structured JSON (for agent consumption)
-q, --quietSuppress stdout, exit codes only

Channels

List channels

shift-cli communication channel list
shift-cli communication channel list --status active

Create a channel

shift-cli communication channel add \
--name slack-alerts \
--provider slack \
--config '{"webhookUrl": "env:SLACK_WEBHOOK"}'

Delete a channel

shift-cli communication channel rm <channel-id>

Registrations

Register an app against a channel

shift-cli communication register <appId> <channelId> --target "#alerts"

List registrations for an app

shift-cli communication registrations <appId>

Sending Messages

Send a message

shift-cli communication send <appId> \
--channel-id <channelId> \
--body "Deployment complete" \
--subject "Deploy notification"

JSON output:

shift-cli communication send my-service --channel-id ch_abc123 --body "Hello" --json
{
"delivery": {
"id": "dl_qrs345tuv678",
"appId": "my-service",
"channelId": "ch_abc123",
"status": "accepted"
},
"provider": "slack",
"live": true
}

Supported Providers

ProviderDescription
resendEmail via Resend API
slackSlack webhook integration
telegramTelegram Bot API
whatsappWhatsApp Business API
webhookGeneric HTTP webhook
customCustom provider implementation

Dry-Run Mode

When config.enableLive is not set to true, messages are recorded but not actually sent through the provider. The delivery record will have live: false.