Sendbird CLI Commands: Inspect Your App, Test Chat, and Review Changes

When a chat integration behaves unexpectedly, the first question is often about its state. Which Sendbird app is selected? Does the test user exist? Can that user connect? Was a message accepted, and did another user receive it?
Sendbird CLI gives developers and AI coding agents commands for investigating those questions. You can inspect application resources, perform supported SDK operations as a Chat user, and read structured results that inform the next step.
This guide assumes the CLI is installed and you have logged in and selected a test Sendbird app. Follow the Quickstart for those prerequisites. The message examples create a channel and send real test messages.
1. Find the command before constructing the request
Start with the command catalog in your installed CLI:
sendbird --json commands --compact
Search for a task, then inspect the matching command:
sendbird --json commands --compact --search message send
sendbird --json describe chat message send
sendbird help chat message send
describe provides the command’s required inputs, accepted values, defaults, and authentication requirements. This is useful when an AI coding agent needs to construct a request using the commands your installed version actually supports.
You can also inspect a documented workflow:
sendbird --json workflows first-message
A workflow describes the steps; it does not execute them. Use the CLI reference to understand discovery and shared options.
2. Confirm the app you are about to inspect
Before reading or changing resources, check the selected application:
sendbird --profile prod --json app get
Confirm that the returned app is the test app you intended to use.
The prod profile refers to Sendbird’s production environment. You can still select your development or test application within that environment; the profile name does not mean you should use your customer-facing app.
For project-specific context, the CLI can save selections in sendbird.json. Commands apply that file when you explicitly pass --project:
sendbird --profile prod --project --json app get
Check the saved-context rules when switching between applications or projects.
3. Inspect resources and the user’s connection separately
List a small page of users and channels:
sendbird --profile prod --json chat user list --limit 10
sendbird --profile prod --json chat channel list --type open --limit 10
These commands help establish which resources exist. List results are paginated, so one page should not be treated as the complete application.
Next, check a test user’s Chat SDK connection:
sendbird --profile prod --json chat sdk status --as-user tutorial_alice
For this example, prepare tutorial_alice and tutorial_bob using the Create test users guide. The CLI uses existing user access tokens automatically; it does not issue a missing token during an SDK connection.
A successful status check reports result.connected as true.
There are two permission contexts to understand:
- Resource-management commands follow your logged-in Sendbird account’s Dashboard role.
- Commands using
--as-userperform supported Chat SDK actions as that user, subject to their channel access and permissions.
A connected session establishes that the user can connect. Continue with a message test to verify sending and receiving.
4. Observe a message from both sides
Create an Open channel in your selected test app:
sendbird --profile prod --json chat channel create --type open --name "CLI command lab"
Copy result.channel_url. Replace <CHANNEL_URL> in the following examples with that actual value, without the angle brackets.
Start the receiving user first
In a second terminal, watch the channel as Bob:
sendbird --profile prod chat channel watch --type open --id <CHANNEL_URL> --seconds 120 --max-events 100 --as-user tutorial_bob
Wait for the receiver’s ready notification and leave it running.
Send as Alice
In the first terminal:
sendbird --profile prod --json chat message send --type open --id <CHANNEL_URL> --message "Checking the CLI message flow" --as-user tutorial_alice
Record result.message_id. Check Bob’s terminal for a received-message event with the same message ID.
Then read the stored message:
sendbird --profile prod --json chat message get --type open --id <CHANNEL_URL> --message-id <MESSAGE_ID> --as-user tutorial_alice
Replace <MESSAGE_ID> with the returned ID.
These checks answer different questions:
| Check | What it establishes |
|---|---|
| Sender’s response | The send request was accepted |
| Receiver’s event | Bob received that message during the watch |
| Message lookup | The stored message can be retrieved |
This follows the official send-and-receive tutorial. It checks the CLI’s SDK-based message flow; your application’s screens and event handling still need their own testing.
5. Preview a change, apply it, and read it back
For commands that support it, --dry-run previews the request without sending it.
For example, preview a name change to the test channel:
sendbird --profile prod --json chat channel update --type open --id <CHANNEL_URL> --name "CLI command lab reviewed" --dry-run
Review the target and proposed values. To apply the change, run it without --dry-run:
sendbird --profile prod --json chat channel update --type open --id <CHANNEL_URL> --name "CLI command lab reviewed"
Read the channel again:
sendbird --profile prod --json chat channel get --type open --id <CHANNEL_URL>
A preview does not establish that the resource exists or that your account has permission. Some operations also require --yes; inspect the command’s description before executing it.
If a change times out, read the resource before retrying. An unclear response can occur after a change has already been applied. See the result and recovery guidance.
6. Inspect Calls configuration and usage
Calls commands cover supported settings, push credentials, credits, and usage. For example:
sendbird --profile prod --json calls settings general get
sendbird --profile prod --json usage calls app
Use these commands to investigate configuration and usage alongside your application work.
The CLI does not start voice or video calls. Testing an actual call requires the Calls SDK integration in your app and two users on the target devices or browsers. Follow the Calls command reference for the current command scope.
Give your coding agent an explicit task
The same command-discovery and inspection flow can guide an AI coding agent. For example:
Structured output helps the agent identify returned IDs and results. It still needs to distinguish a preview, an accepted change, a completed read, and observed message delivery.
After the message exercise, remove the test channel you created:
sendbird --profile prod chat channel delete --type open --id <CHANNEL_URL> --yes
Start your next task with the CLI command catalog and reference: discover the command, confirm its target, inspect its inputs, and verify the result.












