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
| Flag | Description |
|---|---|
--json | Output structured JSON (for agent consumption) |
-q, --quiet | Suppress 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
| Provider | Description |
|---|---|
resend | Email via Resend API |
slack | Slack webhook integration |
telegram | Telegram Bot API |
whatsapp | WhatsApp Business API |
webhook | Generic HTTP webhook |
custom | Custom 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.