> For the complete documentation index, see [llms.txt](https://tools.docs.sendbird.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tools.docs.sendbird.com/readme/quickstart.md).

# Quickstart

Install Sendbird CLI, log in, select a Sendbird app, and send your first Chat message. Run the commands on this page in a terminal on your computer. To have Claude Code or Codex run the CLI for you, see [Use Sendbird CLI with an AI coding agent](/readme/ai-agents.md).

Values in angle brackets, such as `<APP_ID>`, are placeholders. Before you run a command, replace the whole placeholder with your own value, without the angle brackets. For example, `--id <APP_ID>` becomes `--id` followed by your App ID. Each step tells you what value to use. All commands in this guide run in Sendbird's production environment, so use a test app, as described in [Prerequisites](#prerequisites).

## Prerequisites

<table><thead><tr><th width="200.16015625">Requirement</th><th>Details</th></tr></thead><tbody><tr><td>Operating system</td><td>macOS, Linux, or Windows 11 x64 with PowerShell 7. On Windows, run this guide's Bash commands in Git Bash. On Linux, a Secret Service provider, such as GNOME Keyring, must be available, because the CLI stores your login there.</td></tr><tr><td>Node.js</td><td>Version 22.23.4 or a later 22.x release, or version 24.22.1 or a later 24.x release. Other versions, including Node.js 26, aren't supported. On those versions, npm still installs the CLI but shows an <code>EBADENGINE</code> warning. Use a supported version instead. Check with <code>node --version</code>. Updating the CLI doesn't update Node.js.</td></tr><tr><td>Computer</td><td>Your own computer, with a browser on the same computer for login. Cloud-hosted agent environments, such as Claude Code on the web or Codex cloud, can't complete login.</td></tr><tr><td>Sendbird account</td><td>An existing account. If you don't have one, you sign up in Step 2.</td></tr><tr><td>Test app</td><td>An app that doesn't serve real users, because this guide creates a user and a channel in it. If you don't have one, you create one in Step 3.</td></tr></tbody></table>

## Step 1. Install and check the CLI

Install the CLI with npm, then check its version:

```bash
npm install -g @sendbird/cli
sendbird --version
```

The second command shows the installed version, such as `0.4.0`. If the output shows a version number, the CLI is installed. If npm showed an `EBADENGINE` warning, your Node.js version isn't supported. Install a supported version listed in [Prerequisites](#prerequisites), then run both commands in this step again. Don't install the `sendbird` npm package; it's the Chat JavaScript SDK, not the CLI.

{% hint style="info" %}
Steps 2 and 3 log you in and select your app one command at a time. To do both in one interactive flow instead, run `sendbird --profile prod setup`, then continue with Step 4. See [Guided setup](/readme/commands.md#guided-setup).
{% endhint %}

## Step 2. Log in

The CLI comes with a profile named `prod`. A profile tells the CLI which Sendbird environment to connect to, and `prod` is Sendbird's production environment. This guide passes `--profile prod` on every command, so each command targets production.

Log in if you have a Sendbird account. If you don't, go to [Sign up for a Sendbird account](#sign-up-for-a-sendbird-account) instead.

### Log in with your Sendbird account

Log in, then check your login:

```bash
sendbird --profile prod auth login
sendbird --profile prod auth status --summary
```

When the browser opens, approve access, then return to the terminal. You approve access yourself, even when an AI coding agent runs the command. The login worked when the terminal shows `✓ Signed in as` followed by your email. The second command shows the same account. Next, go to [Step 3](#step-3-select-your-app) to select your app.

### Sign up for a Sendbird account

Sign up, then check your account:

```bash
sendbird --profile prod auth signup
sendbird --profile prod auth status
```

Complete signup and approval in the browser. The `auth status` command shows your account and whether `email_verified` is `true`. If your email isn't verified, run `sendbird --profile prod auth verify-email`. Copy the link from the verification email, and paste it at the terminal prompt. When `email_verified` is `true`, go to [Step 3](#step-3-select-your-app) to select your app.

## Step 3. Select your app

Select an organization and a test app, then check your access. Each login or signup clears the profile's organization, app, and region selections, so repeat this step whenever you log in again.

### Select an organization

If you don't have an organization, create one first. Replace `<NAME>` with a name for the organization, and keep the single quotes:

```bash
sendbird --profile prod org create --organization-name '<NAME>'
```

The terminal shows `✓ Created organization` followed by the new organization's UID. Use that UID in place of `<ORG_UID>` in the `org use` command below, and skip `org list`.

List your organizations, then select one. In the `org list` output, copy the **Organization UID** value, and use it in place of `<ORG_UID>`:

```bash
sendbird --profile prod org list
sendbird --profile prod org use --id <ORG_UID>
```

The organization is selected when the terminal shows `✓ Selected organization` followed by its UID.

### Select a test app

List the organization's apps, then select your test app. If you don't have a test app, create one as described in the next section. Copy your test app's App ID from the `app list` output. It's in the **App ID** column. If your terminal window is narrow, it's in the **ID** row under the app's name. Use it in place of `<APP_ID>`:

```bash
sendbird --profile prod app list
sendbird --profile prod app use --id <APP_ID>
```

The app is selected when the terminal shows `✓ Selected application` followed by its App ID. Next, go to [Check your access](#check-your-access).

### Create a Sendbird app

An app is created in the region you select. You can't change its region later, so choose the region that serves your customers. List the regions, then select one where the **App creation** column shows `Available`. Copy the value in the **ID** column, not the **Region** column, and use it in place of `<REGION_ID>`:

```bash
sendbird --profile prod org region list
sendbird --profile prod org region use --id <REGION_ID>
```

The region is selected when the terminal shows `✓ Selected region` followed by its ID.

Before you create the app, decide whether it needs 1-to-1 voice and video calls. Then run one of the two pairs of commands below. In each pair, the first command only previews the app and doesn't create it. `--json` prints the full response as JSON, so you can copy values from it.

For a Chat app, preview the app, then create it:

```bash
sendbird --profile prod --json app create --app-name "Chat tutorial" --is-calls-enabled false --dry-run
sendbird --profile prod --json app create --app-name "Chat tutorial" --is-calls-enabled false
```

For an app with Calls turned on, run these commands instead. `--claim-trial` also requests your organization's one-time free Calls trial. For the trial conditions and results, see [Turn on Calls for an app](/readme/calls/turn-on-calls.md).

```bash
sendbird --profile prod --json app create --app-name "Calls tutorial" --is-calls-enabled true --claim-trial --dry-run
sendbird --profile prod --json app create --app-name "Calls tutorial" --is-calls-enabled true --claim-trial --yes
```

In either pair, the second command's response includes the new app's `application.app_id`. Select the app with `sendbird --profile prod app use --id <APP_ID>`, using that value in place of `<APP_ID>`.

### Check your access

Check your login and your access to the selected app:

```bash
sendbird --profile prod doctor
```

The command shows **Sendbird diagnostics**. Check that the **Organization UID** and **App** rows show the organization and app you selected, and that no check shows `denied` in the **Status** column. If a check shows `denied`, see [Troubleshooting](/readme/troubleshooting.md). Next, send your first message in Step 4.

## Step 4. Send your first message

Create a test user and a [Group channel](/readme/chat.md#terms-used-in-these-tutorials) with that user as its member. The `--issue-access-token true` option gives the user an access token, which the CLI uses when it acts as that user:

```bash
sendbird --profile prod chat user create --user-id quickstart_alice --nickname Alice --issue-access-token true
sendbird --profile prod --json chat channel create --type group --name 'Quickstart' \
  --user-ids '["quickstart_alice"]'
```

`--user-ids` takes a JSON array of user IDs. The first command shows `✓ Created user quickstart_alice`. The second command's response includes the channel's `result.channel_url`. Copy that value. You use it in the next command and in Step 5.

Send a message as `quickstart_alice`. Use the channel URL in place of `<CHANNEL_URL>`:

```bash
sendbird --profile prod --json chat message send --type group --id <CHANNEL_URL> \
  --message 'Hello from the CLI' --as-user quickstart_alice
```

The response includes the message's `result.message_id`. You've sent your first message with Sendbird CLI.

## Step 5. Clean up

When you no longer need them, delete the user and channel you created. Use the channel URL from Step 4 in place of `<CHANNEL_URL>`:

```bash
sendbird --profile prod chat channel delete --type group --id <CHANNEL_URL> --yes
sendbird --profile prod chat user delete --id quickstart_alice --yes
```

The terminal shows `✓ Deleted channel` followed by the channel URL, then `✓ Deleted user quickstart_alice`. These commands don't delete your app or anything else in it.

## Next steps

* **Test messages between two users:** Follow [Create test users](/readme/chat/create-test-users.md), then [Send and receive messages](/readme/chat/send-and-receive-messages.md).
* **Add Chat to your app:** Show the selected app's App ID with `sendbird --profile prod app get`, then follow [Add Chat](/plugins/client/add-chat.md) and give the Sendbird Client plugin that App ID when it asks.
* **Add voice and video calls:** Follow [Add voice and video calls](/plugins/client/add-voice-and-video-calls.md).
* **Let an AI coding agent run the CLI:** See [Use Sendbird CLI with an AI coding agent](/readme/ai-agents.md).
* **Find other commands:** See the [CLI reference](/readme/commands.md).

***

## Update the CLI

Update the CLI when:

* A command in this guide is missing from your installed version.
* A command fails with an unknown command error.
* The [Sendbird CLI plugin](/plugins/cli.md) setup reports a missing command.

To check for a command, run `sendbird --json commands --compact --search '<WORDS>'`. Replace `<WORDS>` with words from the command, such as `group channel`. Keep the single quotes.

Install the latest version, then check the version:

```bash
npm install -g @sendbird/cli@latest
sendbird --version
```

## Uninstall the CLI

Log out first to revoke your stored login, then remove the CLI:

```bash
sendbird --profile prod auth logout
npm uninstall -g @sendbird/cli
```

Uninstalling the CLI doesn't delete your Sendbird apps, users, or channels.

For other problems, see [Troubleshooting](/readme/troubleshooting.md).
