# Installing the Chat Client SDKs

> \[!CAUTION]
>
> Programmable Chat has been deprecated and is no longer supported. Instead, we'll be focusing on the next generation of chat: Twilio Conversations. Find out more about the [EOL process here](https://www.twilio.com/en-us/changelog/programmable-chat-end-of-life-notice).
>
> If you're starting a new project, please visit the [Conversations Docs](/docs/conversations) to begin. If you've already built on Programmable Chat, please visit our [Migration Guide](/docs/conversations/migrating-chat-conversations) to learn about how to switch.

Twilio provides client-side Programmable Chat SDKs for browser-based web applications as well as for native iOS and Android applications.

> \[!NOTE]
>
> Intending to write back-end JavaScript with Twilio in Node.js to support your front-end client? Check out the [Twilio Node.js SDK](https://github.com/twilio/twilio-node).

## JavaScript SDK

The latest version of the JavaScript SDK for Chat is available on Twilio's CDN. To include it on your web page, add the following `<script>` tag:

```html
<script src="https://media.twiliocdn.com/sdk/js/chat/v5.0/twilio-chat.min.js"></script>
```

The `Twilio.Chat` namespace will then be available in the window scope of your JavaScript application.

The JS Programmable Chat SDK is also [available from NPM](https://www.npmjs.com/package/twilio-chat).

## Android SDK

The Android SDK is distributed as a direct download from Twilio's CDN. It can also be installed directly within a Gradle build file using Maven Central.

### Direct Download

Download the Programmable Chat Client library for Android from [the Twilio CDN](https://media.twiliocdn.com/sdk/android/chat/v7.0/twilio-chat-android.aar).

### Maven Central

Twilio Programmable Chat is available from [Maven Central](https://search.maven.org/artifact/com.twilio/chat-android/7.0.1/aar).

### Gradle

To install via Gradle, include the following in your Gradle build file:

```bash
allprojects {
    repositories {
        mavenCentral()
    }
}

/**
 * Declare dependencies
 * @see https://www.gradle.org/docs/current/userguide/userguide_single.html#sec:how_to_declare_your_dependencies
 */
dependencies {
    implementation 'com.twilio:chat-android:7.0.1'
}
```

## iOS SDK

The Programmable Chat SDK for iOS is available through the [CocoaPods](https://cocoapods.org) and [Swift Package Manager](https://swift.org/package-manager/) dependency managers, or by direct download.

We ship `.dSYM` files which can assist in crash reporting for versions of Programmable Chat for iOS 2.3.2 and above. You can [read more about](/docs/chat/extra-debugging-information-ios-sdks) integrating these dSYMs. If you use Google Firebase Crashlytics in your application, you are encouraged to [perform these additional steps](/docs/chat/extra-debugging-information-ios-sdks#uploading-dsym-files-to-fabrics-crashlytics) when integrating Programmable Chat.

### CocoaPods

To install the SDK using CocoaPods, add the following to your Podfile, changing `MyTarget` to the name of your target:

```rb
source 'https://github.com/CocoaPods/Specs'

target 'MyTarget' do
  pod 'TwilioChatClient', '~> 5.0.1'
end
```

### Swift Package Manager

To install the SDK with Swift Package Manager, add the following dependency to your project:

```bash
https://github.com/twilio/twilio-chat-ios
```

1. Open your project in Xcode.
2. Select **File > Swift Packages > Add Package Dependency...**.
3. Enter `https://github.com/twilio/twilio-chat-ios` into the search field in the **Choose Package Repository** dialog, then click **Next**.
4. Make your versioning choice and click **Next**.
5. Add the package to one of your targets and click **Finish**.

### Direct Download \[#direct-download-2]

We also offer the SDK for direct download if your project does not use CocoaPods or Swift Package Manager. To add Programmable Chat to your project, [download the Chat Client framework](https://media.twiliocdn.com/sdk/ios/chat/v5.0/twilio-chat-ios.zip).

1. Expand the `.zip` file.
2. Locate the `.xcframework` file(s) inside the directory created.
3. Drag the `.xcframework` file(s) into your project, making sure they are dropped in the **Embedded Binaries** section of your project target's settings. Select **Copy items if needed** when prompted. If the framework files do not appear in the **Embedded Binaries** for your target, you will receive a `Reason: image not found` error during compilation.
4. In the target's **Linked Frameworks** section, add `libc++.tbd` as a dependency if it is not already there.

> \[!NOTE]
>
> You will need to repeat these steps to add a **Run Script** step that calls `remove_archs` for Twilio AccessManager if you are using it in your project too.

## Demo and reference client applications

### Core Chat SDKs

A demo client implementation for each of the SDKs is available freely via GitHub. These are updated to use the latest SDK versions and implement almost all the available functionality. These implementations are intended for *reference* purposes only.

| Platform   | Demo App                                                                                               |
| ---------- | ------------------------------------------------------------------------------------------------------ |
| JavaScript | [https://github.com/twilio/twilio-chat-demo-js](https://github.com/twilio/twilio-chat-demo-js)         |
| iOS        | [https://github.com/twilio/twilio-chat-demo-ios](https://github.com/twilio/twilio-chat-demo-ios)       |
| Android    | [https://github.com/twilio/twilio-chat-demo-kotlin](https://github.com/twilio/twilio-chat-demo-kotlin) |

### Other SDKs/Tools

Additional third-party bindings and reference implementations are available for the following frameworks.

| Framework    | Demo App                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| React Native | [https://github.com/twilio/TwilioChatJsReactNative](https://github.com/twilio/TwilioChatJsReactNative)                                                                                                                                                                                                                                                                                                    |
| Cordova      | [https://github.com/twilio/twilio-chat-js-cordova-example](https://github.com/twilio/twilio-chat-js-cordova-example)This implementation requires the following plugins: • [https://github.com/twilio/cordova-plugin-twilio-common](https://github.com/twilio/cordova-plugin-twilio-common) • [https://github.com/twilio/cordova-plugin-twilio-chat](https://github.com/twilio/cordova-plugin-twilio-chat) |
| Web console  | [https://github.com/twilio/twilio-chat-console-webapp.js](https://github.com/twilio/twilio-chat-console-webapp.js)FCM pushes are functional in this demo                                                                                                                                                                                                                                                  |
