You can handle multiple Chat apps with the CLI.
List your configurations:
$ stream-cli config list
Name Access Key Secret Key URL
---- ---------- ---------- ---
(default) test kujk3ms96pby **************323m https://chat.stream-io-api.com
prod v5hg34n2m2nv **************76as https://chat.stream-io-api.com
staging nrnn2rmnb52u **************242b https://chat.stream-io-api.com
The default app is used when no --app
flag is provided to the command.
Add a new configuration:
$ stream-cli config new
? What is the name of your app? (eg. prod, staging, testing) prod
? What is your access key? v5hg34n2m2nv
? What is your access secret key? ***********************************************************
? (optional) Which base URL do you want to use for Chat? https://chat.stream-io-api.com
Application successfully added. 🚀
From that point, you can provide --app prod
as an argument to any command. Example:
# Create a new channel in the prod app
$ stream-cli chat create-channel -i redteam -t messaging -u joe --app prod
Delete a configuration:
$ stream-cli config remove prod
[prod] application successfully deleted.
All CRUD channel operations are available in the CLI.
Create a channel:
$ stream-cli chat create-channel -i redteam -t messaging -u joe
Successfully created channel [messaging:redteam2]
Add members to a channel:
$ stream-cli chat add-members --type messaging --id red-team joe jill jane
Successfully added user(s) to channel
Send a message to a channel:
$ stream-cli chat send-message --channel-type messaging --channel-id redteam --text "Hello World!" --user joe
Message successfully sent. Message id: [74c63670-f5ea-4b62-a149-98f434f321c1]
Send a reaction:
$ stream-cli chat send-reaction --message-id 74c63670-f5ea-4b62-a149-98f434f321c1 --user user --reaction-type like
Successfully sent reaction
List channels:
$ stream-cli chat list-channels -t messaging
< json payload >
Validate an import file:
$ stream-cli chat validate-import data.json
Upload a new import:
$ stream-cli chat upload-import data.json --mode insert
Delete users:
$ stream-cli chat delete-users joe jill
Delete channel:
$ stream-cli chat delete-channel --type messaging --id redteam
Successfully initiated channel deletion. Task id: 66bbcdcd-b133-43ce-ab63-557c14d2a168
# Wait for the task to complete
$ stream-cli chat watch 66bbcdcd-b133-43ce-ab63-557c14d2a168
Waiting for async task to complete...⏳
Still loading... ⏳
Async operation completed successfully
Ban a user:
$ stream-cli chat ban-user --target-user-id mike --banned-by admin-user-2 --reason "Bad behavior"
Unban a user:
$ stream-cli chat unban-user --target-user-id joe
Flag a message:
$ stream-cli chat flag-message --message-id msgid-1 --user-id userid-1
Successfully flagged message.
Mute a user:
$ stream-cli chat mute-user --target-user-id joe --muted-by-id admin --expiration 5
Successfully muted user.
Unmute a user:
$ stream-cli chat unmute-user --target-user-id joe --unmuted-by-id admin
Successfully unmuted user.