diff --git a/calls/react-native/overview.mdx b/calls/react-native/overview.mdx
index ea8a858ae..73f19641e 100644
--- a/calls/react-native/overview.mdx
+++ b/calls/react-native/overview.mdx
@@ -15,8 +15,8 @@ The CometChat Calls SDK enables real-time voice and video calling capabilities i
# The Calls SDK plus its required peer dependencies
npm install @cometchat/calls-sdk-react-native@5
npm install @react-native-async-storage/async-storage@^2.1.2 react-native-background-timer@^2.4.1 \
- react-native-performance@^5.1.2 react-native-svg@^15.12.0 react-native-url-polyfill@2.0.0 \
- react-native-webrtc@124.0.7
+ react-native-performance@^5.1.2 react-native-svg@^15.12.0 react-native-url-polyfill@^2.0.0 \
+ react-native-webrtc@^124.0.7
```
```tsx theme={null}
@@ -56,8 +56,8 @@ Before integrating the Calls SDK, ensure you have:
2. **CometChat Users**: Users must exist in CometChat to use calling features. For testing, create users via the [Dashboard](https://app.cometchat.com) or [REST API](/rest-api/users/create). Authentication is handled by the Calls SDK - see [Authentication](/calls/react-native/authentication)
3. **React Native Requirements**:
- React Native 0.71 or later (works with both the old architecture and the [New Architecture](/calls/react-native/setup#react-native-new-architecture), including bridgeless mode)
- - Node.js 18 or later
- - iOS: Minimum iOS 13.0, Xcode 14.0+
+ - Node.js: what your React Native version requires (22.13+ or 24.3+ for React Native 0.88)
+ - iOS: deployment target 15.1 or later (the minimum for React Native 0.76 and later); Xcode 16.1 or later (required since React Native 0.81)
- Android: Minimum SDK API Level 24 (Android 7.0)
4. **Permissions**: Camera and microphone permissions for video/audio calls
diff --git a/calls/react-native/setup.mdx b/calls/react-native/setup.mdx
index e6168a986..0c8d825e1 100644
--- a/calls/react-native/setup.mdx
+++ b/calls/react-native/setup.mdx
@@ -22,11 +22,11 @@ Use this Calls SDK directly only if you need custom call UI or advanced control.
**Quick Reference for AI Agents & Developers**
```bash theme={null}
- # The SDK plus its six REQUIRED peer dependencies — versions are pinned; do not float them
- npm install @cometchat/calls-sdk-react-native@5.0.5
+ # The SDK plus its six REQUIRED peer dependencies — keep these declared peer ranges (the latest majors fall outside them)
+ npm install @cometchat/calls-sdk-react-native@5
npm install @react-native-async-storage/async-storage@^2.1.2 react-native-background-timer@^2.4.1 \
- react-native-performance@^5.1.2 react-native-svg@^15.12.0 react-native-url-polyfill@2.0.0 \
- react-native-webrtc@124.0.7
+ react-native-performance@^5.1.2 react-native-svg@^15.12.0 react-native-url-polyfill@^2.0.0 \
+ react-native-webrtc@^124.0.7
cd ios && pod install && cd ..
```
@@ -51,13 +51,13 @@ This guide walks you through installing the CometChat Calls SDK and configuring
### Using npm
```bash
-npm install @cometchat/calls-sdk-react-native@5.0.5
+npm install @cometchat/calls-sdk-react-native@5
```
### Using Yarn
```bash
-yarn add @cometchat/calls-sdk-react-native@5.0.5
+yarn add @cometchat/calls-sdk-react-native@5
```
## Install Required Dependencies
@@ -70,19 +70,19 @@ The Calls SDK relies on the following packages. Install them alongside the SDK:
| `react-native-background-timer` | `^2.4.1` |
| `react-native-performance` | `^5.1.2` |
| `react-native-svg` | `^15.12.0` |
-| `react-native-url-polyfill` | `2.0.0` |
-| `react-native-webrtc` | `124.0.7` |
+| `react-native-url-polyfill` | `^2.0.0` |
+| `react-native-webrtc` | `^124.0.7` |
### Using npm
```bash
-npm install @react-native-async-storage/async-storage@^2.1.2 react-native-background-timer@^2.4.1 react-native-performance@^5.1.2 react-native-svg@^15.12.0 react-native-url-polyfill@2.0.0 react-native-webrtc@124.0.7
+npm install @react-native-async-storage/async-storage@^2.1.2 react-native-background-timer@^2.4.1 react-native-performance@^5.1.2 react-native-svg@^15.12.0 react-native-url-polyfill@^2.0.0 react-native-webrtc@^124.0.7
```
### Using Yarn
```bash
-yarn add @react-native-async-storage/async-storage@^2.1.2 react-native-background-timer@^2.4.1 react-native-performance@^5.1.2 react-native-svg@^15.12.0 react-native-url-polyfill@2.0.0 react-native-webrtc@124.0.7
+yarn add @react-native-async-storage/async-storage@^2.1.2 react-native-background-timer@^2.4.1 react-native-performance@^5.1.2 react-native-svg@^15.12.0 react-native-url-polyfill@^2.0.0 react-native-webrtc@^124.0.7
```
## React Native New Architecture
diff --git a/mcp-server.mdx b/mcp-server.mdx
index 469db6d5c..35512f8fa 100644
--- a/mcp-server.mdx
+++ b/mcp-server.mdx
@@ -12,7 +12,8 @@ users can DM each other"* and it uses the MCP to read CometChat's docs,
pick the right components for your stack, and write the integration code.
The server is **read-only** and **needs no account or API key** — it surfaces
-CometChat's public documentation and curated implementation recipes.
+CometChat's public documentation, including implementation bundles compiled from
+the current quickstart pages.
## Connector URL
@@ -109,25 +110,29 @@ and write the code into your project.
target framework, so the agent can pick the right one.
- Return a curated implementation recipe — prerequisites, install,
- configuration, working code — for a named scenario.
+ Return the docs pages for a named scenario compiled into one document:
+ for a UI Kit, its integration guide and AI reference page; for the SDK,
+ moderation, multi-tenancy and widget bundles, the pages listed below.
-### Ten curated implementation bundles
+### Implementation bundles
-| Bundle | What it covers |
+Each bundle is compiled from the current pages of these docs, so it always matches what the docs say.
+
+| Bundle | Built from |
| --- | --- |
-| `react-uikit-quickstart` | React UI Kit install, init, login, conversations list, chat window |
-| `react-native-uikit-quickstart` | React Native UI Kit install, navigation, basic chat screen |
-| `flutter-uikit-quickstart` | Flutter UI Kit install, init, login, basic chat |
-| `ios-uikit-quickstart` | iOS UI Kit (SwiftUI) install, init, login, chat view |
-| `android-uikit-quickstart` | Android UI Kit (Compose) install, init, login, chat screen |
-| `js-sdk-messaging-basics` | Vanilla JS SDK install, send/receive text and media messages |
-| `widget-embed` | No-code widget embed for an existing site |
-| `moderation-setup` | AI moderation, profanity filter, image moderation, webhooks |
-| `multi-tenant-chat` | Multi-tenant SaaS chat — auth, isolation, tenant-scoped users |
-| `presence-and-typing` | Online presence, typing indicators, read receipts |
+| `react-uikit-quickstart` | [React integration](/ui-kit/react/integration-react) and the React AI reference page |
+| `react-native-uikit-quickstart` | [React Native CLI integration](/ui-kit/react-native/react-native-cli-integration) and the React Native AI reference page |
+| `angular-uikit-quickstart` | [Angular integration](/ui-kit/angular/integration) and the Angular AI reference page |
+| `flutter-uikit-quickstart` | [Flutter getting started](/ui-kit/flutter/getting-started) and the Flutter AI reference page |
+| `ios-uikit-quickstart` | [iOS integration](/ui-kit/ios/getting-started) and the iOS AI reference page |
+| `android-uikit-quickstart` | [Android getting started](/ui-kit/android/getting-started), the [Jetpack Compose guide](/ui-kit/android/getting-started-jetpack), and the Android AI reference page |
+| `js-sdk-messaging-basics` | JavaScript SDK [setup](/sdk/javascript/setup-sdk), [send](/sdk/javascript/send-message) and [receive](/sdk/javascript/receive-message) messages |
+| `presence-and-typing` | JavaScript SDK [presence](/sdk/javascript/user-presence), [typing indicators](/sdk/javascript/typing-indicators) and [receipts](/sdk/javascript/delivery-read-receipts) |
+| `moderation-setup` | [Moderation getting started](/moderation/getting-started) |
+| `multi-tenant-chat` | [Multi-tenancy](/fundamentals/multi-tenancy) |
+| `widget-embed` | [Widget HTML integration](/widget/html/integration) |
### Orientation skill resource
@@ -138,7 +143,7 @@ products, decision tree, and common pitfalls.
## Source
The MCP server is open-source at
-[`github.com/cometchat/cometchat-mcp`](https://github.com/cometchat/docs-mcp).
+[`github.com/cometchat/docs-mcp`](https://github.com/cometchat/docs-mcp).
Built from this very documentation repository, so the content it surfaces
is always in sync with what you see on the docs site.
diff --git a/sdk/react-native/llms-react-native-v4.mdx b/sdk/react-native/llms-react-native-v4.mdx
index cb7a843d8..4a79de6e4 100644
--- a/sdk/react-native/llms-react-native-v4.mdx
+++ b/sdk/react-native/llms-react-native-v4.mdx
@@ -32,9 +32,10 @@ intent, then read the API there.
## Platform rules — headless, and React Native
This is the **SDK**, not the UI Kit: it ships no components. You own every view. Also:
- **`@react-native-async-storage/async-storage` is required** — the SDK persists session state
- through it and ships it as a direct dependency, so RN autolinking needs it present and
- pod-installed. On Android, async-storage v3 also needs the `local_repo` Maven entry in
- `android/build.gradle` or the build fails.
+ through it at runtime but doesn't declare it as a dependency, so install it yourself and
+ pod-install. Install `@react-native-async-storage/async-storage@^2.1.2` (the range the
+ Calls SDK declares). No extra Gradle repository is needed: 2.x autolinks, so do not add
+ the old `local_repo` Maven entry.
- **No DOM.** There is no `window`/`document`/`localStorage`; render with React Native
primitives and drive them from the listener callbacks below.
- **Listeners must be removed on unmount.** Every `add*Listener(id, …)` needs the matching
diff --git a/sdk/react-native/overview.mdx b/sdk/react-native/overview.mdx
index bb6e25856..be0810b6b 100644
--- a/sdk/react-native/overview.mdx
+++ b/sdk/react-native/overview.mdx
@@ -41,10 +41,10 @@ The CometChat React Native SDK lets you add real-time messaging, voice, and vide
| Requirement | Minimum Version |
|-------------|-----------------|
| npm | 8.x |
-| Node.js | 16 |
-| React Native | 0.63 |
+| Node.js | What your React Native version requires (22.13+ or 24.3+ for 0.88). The SDK declares no Node.js requirement of its own |
+| React Native | 0.65 |
| Android minSdkVersion | 24 |
-| iOS | 11.0 |
+| iOS deployment target | What your React Native version requires (15.1 for 0.76 and later; the Calls SDK needs 15.1) |
## Getting Started
diff --git a/sdk/react-native/setup-sdk.mdx b/sdk/react-native/setup-sdk.mdx
index c932c27bb..73fe2e6e0 100644
--- a/sdk/react-native/setup-sdk.mdx
+++ b/sdk/react-native/setup-sdk.mdx
@@ -20,7 +20,7 @@ description: "Install, configure, initialize, and log in users with the CometCha
```bash
-npm install @cometchat/chat-sdk-react-native @react-native-async-storage/async-storage
+npm install @cometchat/chat-sdk-react-native @react-native-async-storage/async-storage@^2.1.2
```
```typescript
@@ -36,7 +36,7 @@ await CometChat.init("APP_ID", appSettings);
await CometChat.login("UID", "AUTH_KEY"); // dev only
```
-**Prerequisites:** npm 8+, Node.js 16+, React Native 0.63+, credentials from [CometChat Dashboard](https://app.cometchat.com)
+**Prerequisites:** npm 8+, the Node.js version your React Native release requires (22.13+ or 24.3+ for 0.88), React Native 0.65+ (async-storage 2.x needs it), credentials from [CometChat Dashboard](https://app.cometchat.com)
@@ -45,10 +45,10 @@ await CometChat.login("UID", "AUTH_KEY"); // dev only
| Requirement | Version |
|-------------|---------|
| npm | 8.x or above |
-| Node.js | 16 or above |
-| React Native | 0.63 or above |
+| Node.js | What your React Native version requires (22.13+ or 24.3+ for 0.88). The SDK declares no Node.js requirement of its own |
+| React Native | 0.65 or above (`@react-native-async-storage/async-storage` 2.x needs it) |
| Android minSdkVersion | 24 |
-| iOS | 11.0 |
+| iOS deployment target | What your React Native version requires: 15.1 for 0.76 and later. The Calls SDK needs 15.1 |
Get your credentials from the [CometChat Dashboard](https://app.cometchat.com):
- App ID
@@ -69,46 +69,30 @@ Get your credentials from the [CometChat Dashboard](https://app.cometchat.com):
npm install @cometchat/chat-sdk-react-native
```
-The React Native SDK requires `async-storage` as a peer dependency:
+The React Native SDK needs `async-storage` at runtime but doesn't declare it, so install it yourself:
```bash
-npm install @react-native-async-storage/async-storage
+npm install @react-native-async-storage/async-storage@^2.1.2
```
-
-**Android only:** `@react-native-async-storage/async-storage` v3 ships a local Maven artifact. Add this to your `android/build.gradle` or the Android build will fail:
-
-```gradle
-allprojects {
- repositories {
- google()
- mavenCentral()
- maven {
- url = uri(project(":react-native-async-storage_async-storage").file("local_repo"))
- }
- }
-}
-```
-
+
+**No extra Gradle repository is needed.** Async-storage 2.x autolinks like any native module, so the old `local_repo` Maven entry in `android/build.gradle` is not required. The `^2.1.2` range is also what the Calls SDK declares, so the same install works if you add calling later.
+
### Voice & Video Calling (Optional)
v2.4+ onwards, calling functionality lives in a separate package. Install it only if you need voice/video:
```bash
-npm install @cometchat/calls-sdk-react-native
+npm install @cometchat/calls-sdk-react-native \
+ react-native-webrtc@^124.0.7 \
+ react-native-background-timer@^2.4.1 \
+ react-native-performance@^5.1.2 \
+ react-native-url-polyfill@^2.0.0 \
+ react-native-svg@^15.12.0
```
-Required additional dependencies for calling:
-
-```json
-{
- "@react-native-community/netinfo": "^11.3.1",
- "react-native-background-timer": "^2.4.1",
- "react-native-callstats": "^3.73.7",
- "react-native-webrtc": "^1.106.1"
-}
-```
+These are the Calls SDK's peer dependencies at the ranges it declares (`@react-native-async-storage/async-storage` ^2.1.2 is the sixth, already installed above); unpinned latest majors fail with `ERESOLVE`. See [Calls SDK setup](/calls/react-native/setup) for the full calling setup.
@@ -134,15 +118,13 @@ Required additional dependencies for calling:
}
```
- Ensure `minSdkVersion` is set to **24** in the `buildscript` ext block:
+ Ensure `minSdkVersion` is at least **24** in the `buildscript` ext block. Keep the `compileSdkVersion`, `targetSdkVersion` and `buildToolsVersion` your React Native template sets; don't lower them:
```gradle
buildscript {
ext {
- buildToolsVersion = "29.0.2"
minSdkVersion = 24
- compileSdkVersion = 29
- targetSdkVersion = 29
+ // compileSdkVersion, targetSdkVersion, buildToolsVersion: as generated
}
}
```
@@ -160,7 +142,9 @@ Required additional dependencies for calling:
Update the minimum platform version in your Podfile:
```ruby
- platform :ios, '11.0'
+ # The React Native template's minimum (15.1 on React Native 0.76 and later);
+ # raise it if a dependency needs more. The Calls SDK needs 15.1.
+ platform :ios, min_ios_version_supported
```
Then run `pod install` in the `ios` directory.
diff --git a/ui-kit/android/call-features.mdx b/ui-kit/android/call-features.mdx
index af17a5d73..492f6ed6a 100644
--- a/ui-kit/android/call-features.mdx
+++ b/ui-kit/android/call-features.mdx
@@ -33,8 +33,8 @@ Add the following dependency to your `build.gradle.kts` file:
```kotlin build.gradle.kts
dependencies {
- implementation("com.cometchat:chatuikit-kotlin-android:6.0.6")
- implementation("com.cometchat:calls-sdk-android:5.0.1")
+ implementation("com.cometchat:chatuikit-kotlin-android:6.1.1")
+ implementation("com.cometchat:calls-sdk-android:5.0.4")
}
```
@@ -42,8 +42,8 @@ dependencies {
```kotlin build.gradle.kts
dependencies {
- implementation("com.cometchat:chatuikit-compose-android:6.0.6")
- implementation("com.cometchat:calls-sdk-android:5.0.1")
+ implementation("com.cometchat:chatuikit-compose-android:6.1.1")
+ implementation("com.cometchat:calls-sdk-android:5.0.4")
}
```
diff --git a/ui-kit/android/call-logs.mdx b/ui-kit/android/call-logs.mdx
index 34d6381d8..3557ef43c 100644
--- a/ui-kit/android/call-logs.mdx
+++ b/ui-kit/android/call-logs.mdx
@@ -27,7 +27,7 @@ Both are required:
```kotlin
// app/build.gradle.kts
-implementation("com.cometchat:calls-sdk-android:5.0.+")
+implementation("com.cometchat:calls-sdk-android:5.0.4")
```
```json
// app/src/main/assets/cometchat-settings.json — this is what makes the UI Kit init CometChatCalls
diff --git a/ui-kit/android/calling-integration.mdx b/ui-kit/android/calling-integration.mdx
index ede933702..162750233 100644
--- a/ui-kit/android/calling-integration.mdx
+++ b/ui-kit/android/calling-integration.mdx
@@ -36,8 +36,8 @@ Add the CometChat Calls SDK dependency alongside your chosen UI Kit module:
```kotlin build.gradle.kts
dependencies {
- implementation("com.cometchat:chatuikit-kotlin-android:6.0.6")
- implementation("com.cometchat:calls-sdk-android:5.0.1")
+ implementation("com.cometchat:chatuikit-kotlin-android:6.1.1")
+ implementation("com.cometchat:calls-sdk-android:5.0.4")
}
```
@@ -45,8 +45,8 @@ dependencies {
```kotlin build.gradle.kts
dependencies {
- implementation("com.cometchat:chatuikit-compose-android:6.0.6")
- implementation("com.cometchat:calls-sdk-android:5.0.1")
+ implementation("com.cometchat:chatuikit-compose-android:6.1.1")
+ implementation("com.cometchat:calls-sdk-android:5.0.4")
}
```
diff --git a/ui-kit/android/conversation-message-view.mdx b/ui-kit/android/conversation-message-view.mdx
index 5f7325e28..eb885ef04 100644
--- a/ui-kit/android/conversation-message-view.mdx
+++ b/ui-kit/android/conversation-message-view.mdx
@@ -358,7 +358,7 @@ fun MessageScreen(
-Update your `MainActivity` to launch `ConversationActivity` after successful login:
+Update your `MainActivity` to launch `ConversationActivity` after successful login, and add `import android.content.Intent`:
```kotlin MainActivity.kt lines
private fun loginUser() {
diff --git a/ui-kit/android/getting-started-jetpack.mdx b/ui-kit/android/getting-started-jetpack.mdx
index 5a4377e55..3fb56bf1e 100644
--- a/ui-kit/android/getting-started-jetpack.mdx
+++ b/ui-kit/android/getting-started-jetpack.mdx
@@ -34,11 +34,11 @@ You need three things from the [CometChat Dashboard](https://app.cometchat.com/)
| Region | Dashboard → Your App → Credentials (e.g. `us`, `eu`, `in`) |
You also need:
-- Android Studio (Hedgehog or later recommended)
+- Android Studio Meerkat (2024.3.1 Patch 1) or later — the first release that supports `compileSdk 36` (with AGP 8.9.1+). For AGP 9.x, use Android Studio Otter 3 Feature Drop (2025.2.3) or later
- An Android emulator or physical device running Android 9.0 (API 28) or higher
- `compileSdk = 36` (or newer) in your app module — the UI Kit's transitive `androidx.core:core-ktx:1.18.0` requires it; a `compileSdk`-35 app fails `checkDebugAarMetadata` with an AAR-metadata error
- Kotlin configured with Compose compiler plugin
-- Gradle plugin 8.0+ with Kotlin DSL
+- Android Gradle Plugin 8.9.1+ or 9.x with Kotlin DSL — 8.9.1 is the first AGP that supports `compileSdk 36` (see the AGP note in Step 2)
Auth Key is for development only. In production, generate Auth Tokens server-side via the [REST API](https://api-explorer.cometchat.com/) and use `loginWithAuthToken()`. Never ship Auth Keys in client code.
@@ -94,14 +94,18 @@ dependencyResolutionManagement {
Open your app-level `build.gradle.kts` and enable Compose, then add the dependencies:
```kotlin build.gradle.kts lines
+import org.jetbrains.kotlin.gradle.dsl.JvmTarget
+
plugins {
alias(libs.plugins.android.application)
- alias(libs.plugins.kotlin.android)
+ // AGP 8.x: uncomment the next line. AGP 9+ has Kotlin built in — leave it commented.
+ // alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
}
android {
// ...
+ compileSdk = 36
buildFeatures {
compose = true
}
@@ -109,20 +113,35 @@ android {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
- kotlinOptions {
- jvmTarget = "11"
+}
+
+kotlin {
+ compilerOptions {
+ jvmTarget.set(JvmTarget.JVM_11)
}
}
dependencies {
+ // Jetpack Compose (Compose 1.8 or newer)
+ implementation(platform("androidx.compose:compose-bom:2025.06.00"))
+ implementation("androidx.compose.material3:material3")
+
// CometChat Jetpack Compose UI Kit
- implementation("com.cometchat:chatuikit-compose-android:6.0.6")
+ implementation("com.cometchat:chatuikit-compose-android:6.1.1")
// (Optional) Voice/video calling
- implementation("com.cometchat:calls-sdk-android:5.0.1")
+ implementation("com.cometchat:calls-sdk-android:5.0.4")
}
```
+
+**Android Gradle Plugin 9 has built-in Kotlin.** Don't apply `org.jetbrains.kotlin.android` (`alias(libs.plugins.kotlin.android)`) on AGP 9 — the build fails with `The 'org.jetbrains.kotlin.android' plugin is no longer required for Kotlin support since AGP 9.0`. On **AGP 8.x**, add `alias(libs.plugins.kotlin.android)` to the `plugins` block. The `kotlin { compilerOptions { ... } }` block works on both; the older `kotlinOptions { jvmTarget = "11" }` block is an error since Kotlin Gradle plugin 2.2.0, and on AGP 9 it fails with `Unresolved reference 'kotlinOptions'`.
+
+
+
+**Don't force Compose 1.7.** `chatuikit-compose-android` 6.1.1 calls a Compose 1.8 `LazyColumn` API. Its POM declares compose-bom 2024.09.00 (Compose 1.7), but its `cards-android` 1.0.0 dependency brings compose-bom 2025.04.01, so a normal build resolves Compose 1.8 and works. If you force Compose 1.7 — a `strictly` version constraint, an `enforcedPlatform(...)` BOM older than 2025.04.01, or a resolution strategy — the app builds, then crashes with `NoSuchMethodError: ... LazyColumn(...)` when `CometChatConversations` first renders. Keep the app's BOM at 2025.04.01 or newer, as above.
+
+
---
@@ -185,8 +204,8 @@ class MainActivity : ComponentActivity() {
.subscribePresenceForAllUsers()
.build()
- CometChatUIKit.init(this, uiKitSettings, object : CometChat.CallbackListener() {
- override fun onSuccess(s: String?) {
+ CometChatUIKit.init(this, uiKitSettings, object : CometChat.CallbackListener() {
+ override fun onSuccess(s: String) {
Log.d(TAG, "Initialization completed successfully")
loginUser()
}
diff --git a/ui-kit/android/getting-started-kotlin.mdx b/ui-kit/android/getting-started-kotlin.mdx
index a60485102..2a69db26a 100644
--- a/ui-kit/android/getting-started-kotlin.mdx
+++ b/ui-kit/android/getting-started-kotlin.mdx
@@ -34,11 +34,11 @@ You need three things from the [CometChat Dashboard](https://app.cometchat.com/)
| Region | Dashboard → Your App → Credentials (e.g. `us`, `eu`, `in`) |
You also need:
-- Android Studio installed
+- Android Studio Meerkat (2024.3.1 Patch 1) or later — the first release that supports `compileSdk 36` (with AGP 8.9.1+). For AGP 9.x, use Android Studio Otter 3 Feature Drop (2025.2.3) or later
- An Android emulator or physical device running Android 9.0 (API 28) or higher
- `compileSdk = 36` (or newer) in your app module — the UI Kit's transitive `androidx.core:core-ktx:1.18.0` requires it; a `compileSdk`-35 app fails `checkDebugAarMetadata` with an AAR-metadata error
- Kotlin configured in your project
-- Gradle plugin 8.0+ with Kotlin DSL
+- Android Gradle Plugin 8.9.1+ or 9.x with Kotlin DSL — 8.9.1 is the first AGP that supports `compileSdk 36` (see the AGP note in Step 2)
Auth Key is for development only. In production, generate Auth Tokens server-side via the [REST API](https://api-explorer.cometchat.com/) and use `loginWithAuthToken()`. Never ship Auth Keys in client code.
@@ -95,8 +95,17 @@ dependencyResolutionManagement {
Open your app-level `build.gradle.kts` and enable View Binding, then add the dependencies:
```kotlin build.gradle.kts lines
+import org.jetbrains.kotlin.gradle.dsl.JvmTarget
+
+plugins {
+ alias(libs.plugins.android.application)
+ // AGP 8.x: uncomment the next line. AGP 9+ has Kotlin built in — leave it commented.
+ // alias(libs.plugins.kotlin.android)
+}
+
android {
// ...
+ compileSdk = 36
buildFeatures {
viewBinding = true
}
@@ -104,25 +113,32 @@ android {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
- kotlinOptions {
- jvmTarget = "11"
+}
+
+kotlin {
+ compilerOptions {
+ jvmTarget.set(JvmTarget.JVM_11)
}
}
dependencies {
// CometChat Kotlin UI Kit
- implementation("com.cometchat:chatuikit-kotlin-android:6.0.6")
+ implementation("com.cometchat:chatuikit-kotlin-android:6.1.1")
// (Optional) Voice/video calling
- implementation("com.cometchat:calls-sdk-android:5.0.1")
+ implementation("com.cometchat:calls-sdk-android:5.0.4")
}
```
+
+**Android Gradle Plugin 9 has built-in Kotlin.** Don't apply `org.jetbrains.kotlin.android` (`alias(libs.plugins.kotlin.android)`) on AGP 9 — the build fails with `The 'org.jetbrains.kotlin.android' plugin is no longer required for Kotlin support since AGP 9.0`. On **AGP 8.x**, add `alias(libs.plugins.kotlin.android)` to the `plugins` block. The `kotlin { compilerOptions { ... } }` block works on both; the older `kotlinOptions { jvmTarget = "11" }` block is an error since Kotlin Gradle plugin 2.2.0, and on AGP 9 it fails with `Unresolved reference 'kotlinOptions'`.
+
+
### Add AndroidX Support
-Verify this line is present in `gradle.properties`:
+UI Kit 6.1.1 builds without Jetifier, so you don't need `android.enableJetifier`. Set it in `gradle.properties` only if another dependency of yours still uses the legacy support libraries; AGP 9 deprecates it and logs a warning:
-```properties gradle.properties lines
+```properties gradle.properties
android.enableJetifier=true
```
@@ -191,8 +207,8 @@ class MainActivity : AppCompatActivity() {
.subscribePresenceForAllUsers()
.build()
- CometChatUIKit.init(this, uiKitSettings, object : CometChat.CallbackListener() {
- override fun onSuccess(s: String?) {
+ CometChatUIKit.init(this, uiKitSettings, object : CometChat.CallbackListener() {
+ override fun onSuccess(s: String) {
Log.d(TAG, "Initialization completed successfully")
loginUser()
}
diff --git a/ui-kit/android/getting-started.mdx b/ui-kit/android/getting-started.mdx
index cb38fc392..157b0fe2b 100644
--- a/ui-kit/android/getting-started.mdx
+++ b/ui-kit/android/getting-started.mdx
@@ -39,10 +39,10 @@ You need three things from the [CometChat Dashboard](https://app.cometchat.com/)
| Region | Dashboard → Your App → Credentials (e.g. `us`, `eu`, `in`) |
You also need:
-- Android Studio installed
+- Android Studio Meerkat (2024.3.1 Patch 1) or later — the first release that supports `compileSdk 36` (with AGP 8.9.1+). For AGP 9.x, use Android Studio Otter 3 Feature Drop (2025.2.3) or later
- An Android emulator or physical device running Android 9.0 (API 28) or higher
-- Java 8 or higher
-- Gradle plugin 4.0.1 or later
+- `compileSdk = 36` (or newer) in your app module — the UI Kit's transitive `androidx.core:core-ktx:1.18.0` requires it
+- Android Gradle Plugin 8.9.1+ or 9.x (8.9.1 is the first AGP that supports `compileSdk 36`), run on JDK 17 or higher (both AGP versions require JDK 17 to run Gradle)
Auth Key is for development only. In production, generate Auth Tokens server-side via the [REST API](https://api-explorer.cometchat.com/) and use [`loginWithAuthToken()`](/ui-kit/android/methods#login-using-auth-token). Never ship Auth Keys in client code.
@@ -88,8 +88,8 @@ Inside `libs.versions.toml`, add the versions:
```toml libs.versions.toml
[versions]
-cometchat-ui-kit = "6.0.3"
-cometchat-calls-sdk = "5.0.1"
+cometchat-ui-kit = "6.1.1"
+cometchat-calls-sdk = "5.0.4"
```
Define the libraries — pick the module for your UI toolkit:
@@ -108,7 +108,12 @@ cometchat-calls-sdk = { module = "com.cometchat:calls-sdk-android", version.ref
[libraries]
cometchat-ui-kit = { module = "com.cometchat:chatuikit-compose-android", version.ref = "cometchat-ui-kit" }
cometchat-calls-sdk = { module = "com.cometchat:calls-sdk-android", version.ref = "cometchat-calls-sdk" }
+# Jetpack Compose (Compose 1.8 or newer): the BOM sets the Compose versions
+androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version = "2025.06.00" }
+androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }
```
+
+With Compose, also add the BOM and Material 3 to `dependencies` below: `implementation(platform(libs.androidx.compose.bom))` and `implementation(libs.androidx.compose.material3)`. See [Getting started with Jetpack Compose](/ui-kit/android/getting-started-jetpack) for why the kit needs Compose 1.8.
@@ -132,10 +137,10 @@ Open the app-level `build.gradle.kts` file and add the dependency for your chose
```kotlin build.gradle.kts
dependencies {
- implementation("com.cometchat:chatuikit-kotlin-android:6.0.6")
+ implementation("com.cometchat:chatuikit-kotlin-android:6.1.1")
// (Optional) Include if using voice/video calling features
- implementation("com.cometchat:calls-sdk-android:5.0.1")
+ implementation("com.cometchat:calls-sdk-android:5.0.4")
}
```
@@ -143,10 +148,14 @@ dependencies {
```kotlin build.gradle.kts
dependencies {
- implementation("com.cometchat:chatuikit-compose-android:6.0.6")
+ // Jetpack Compose (Compose 1.8 or newer)
+ implementation(platform("androidx.compose:compose-bom:2025.06.00"))
+ implementation("androidx.compose.material3:material3")
+
+ implementation("com.cometchat:chatuikit-compose-android:6.1.1")
// (Optional) Include if using voice/video calling features
- implementation("com.cometchat:calls-sdk-android:5.0.1")
+ implementation("com.cometchat:calls-sdk-android:5.0.4")
}
```
@@ -157,7 +166,7 @@ dependencies {
### Add AndroidX Support
-The Jetifier tool helps migrate legacy support libraries to AndroidX. Open `gradle.properties` and verify this line is present:
+UI Kit 6.1.1 builds without Jetifier, so you don't need `android.enableJetifier`. Set it in `gradle.properties` only if another dependency of yours still uses the legacy support libraries; AGP 9 deprecates it and logs a warning:
```properties gradle.properties
android.enableJetifier=true
diff --git a/ui-kit/android/llms-android-v6.mdx b/ui-kit/android/llms-android-v6.mdx
index b7b1e4190..8ce6fdd25 100644
--- a/ui-kit/android/llms-android-v6.mdx
+++ b/ui-kit/android/llms-android-v6.mdx
@@ -18,9 +18,9 @@ description: "Machine-readable, Android-v6-scoped index of every UI Kit page as
# Android UI Kit v6 — LLM docs index (Latest)
> Stateful, drop-in Android chat/calling UI. Two UI flavors of ONE kit:
-> `com.cometchat:chatuikit-kotlin-android:6.+` (Kotlin, XML Views) and
-> `com.cometchat:chatuikit-compose-android:6.+` (Jetpack Compose) — both sit on
-> `com.cometchat:chat-sdk-android:5.+`. This page is an **Android-v6-only** routing index for AI
+> `com.cometchat:chatuikit-kotlin-android:6.1.1` (Kotlin, XML Views) and
+> `com.cometchat:chatuikit-compose-android:6.1.1` (Jetpack Compose) — both pull in
+> `com.cometchat:chat-sdk-android` 5.x transitively; calling adds `com.cometchat:calls-sdk-android:5.0.4`. This page is an **Android-v6-only** routing index for AI
> agents — a scoped alternative to the site-wide `/docs/llms.txt`.
## How to use this index
@@ -35,6 +35,21 @@ there.
`Jetpack Compose` tab — read the tab that matches the app's UI flavor. Only Getting Started is
split into two dedicated pages (linked below).
+## Install facts an agent must not guess
+- **Latest versions:** UI Kit `6.1.1` (`chatuikit-kotlin-android` or `chatuikit-compose-android` —
+ one, not both), Calls SDK `com.cometchat:calls-sdk-android:5.0.4` (optional, only for
+ voice/video). Don't add `chat-sdk-android` yourself; the kit brings it in.
+- Repository: `maven("https://dl.cloudsmith.io/public/cometchat/cometchat/maven/")` in
+ `settings.gradle.kts`. `minSdk` 28, `compileSdk` 36.
+- **AGP 9 has built-in Kotlin**: don't apply `org.jetbrains.kotlin.android` there (AGP 8.x still
+ needs it). Set the JVM target with `kotlin { compilerOptions { jvmTarget.set(JvmTarget.JVM_11) } }`
+ — `kotlinOptions { jvmTarget = ... }` is an error since Kotlin Gradle plugin 2.2.0 (and an
+ `Unresolved reference 'kotlinOptions'` on AGP 9).
+- **Compose flavor:** also add `platform("androidx.compose:compose-bom:...")` (2025.04.01 or newer)
+ and `androidx.compose.material3:material3`. The kit needs Compose 1.8+; never force Compose 1.7.
+- Exclude `org.jetbrains:annotations-java5` (duplicate classes at dexing), and on Views use a
+ `CometChatTheme.DayNight` app theme. Details: the two Getting Started pages below.
+
## Hot path — usually no fetch needed
For a plain "add chat" the Gradle dependency, `init → login → launch` flow, and the core drop-in
components are stable; a well-built agent skill bakes them. Fetch below only for exhaustive
diff --git a/ui-kit/android/message-template.mdx b/ui-kit/android/message-template.mdx
index dd3621f71..57197d6f8 100644
--- a/ui-kit/android/message-template.mdx
+++ b/ui-kit/android/message-template.mdx
@@ -6,7 +6,7 @@ description: "Customize message bubble structure, layout, and behavior with Bubb
**Renamed in v6.** v5's `MessageTemplate` API (`CometChatMessageTemplate`, `setTemplates`,
`setType`, `setCategory`, `setBubbleView`, `setMessageReceipt`) **does not ship** in
-`com.cometchat:chatuikit-kotlin-android:6.0.6` — verified against the published artifact. Bubble
+`com.cometchat:chatuikit-kotlin-android:6.1.1` — verified against the published artifact. Bubble
customization is now `BubbleFactory`. If you are migrating, see
[Upgrading from v5](/ui-kit/android/upgrading-from-v5).
diff --git a/ui-kit/android/overview.mdx b/ui-kit/android/overview.mdx
index bea078429..ba3199a35 100644
--- a/ui-kit/android/overview.mdx
+++ b/ui-kit/android/overview.mdx
@@ -11,7 +11,7 @@ description: "Prebuilt, customizable UI components for chat & messaging, voice &
| Kotlin (XML Views) | `com.cometchat:chatuikit-kotlin-android` v6.x |
| Jetpack Compose | `com.cometchat:chatuikit-compose-android` v6.x |
| Shared core | `chatuikit-core` (ViewModels, repositories, data sources, events) |
-| Peer deps | `com.cometchat:chat-sdk-android` >=4.x, `minSdk` 28 |
+| Dependencies | `com.cometchat:chat-sdk-android` 5.0.7 (brought in by the UI Kit; don't add it yourself), `minSdk` 28 |
| Calling | Optional — `com.cometchat:calls-sdk-android` |
| Source | [GitHub](https://github.com/cometchat/cometchat-uikit-android) |
diff --git a/ui-kit/android/troubleshooting.mdx b/ui-kit/android/troubleshooting.mdx
index 1bf4ee2d8..f009e1321 100644
--- a/ui-kit/android/troubleshooting.mdx
+++ b/ui-kit/android/troubleshooting.mdx
@@ -68,7 +68,7 @@ description: "Common failure modes and fixes for the CometChat Android V6 UI Kit
| `disableSoundForMessages(true)` has no effect | Called after component starts loading | Call `disableSoundForMessages(true)` before the component starts loading |
| Filters not applied | Builder not set on component | Ensure you call the appropriate `set*RequestBuilder(builder)` method on the component instance after creating and configuring the builder |
| ProGuard/R8 strips CometChat classes | Missing keep rules for CometChat | Add `-keep class com.cometchat.** { *; }` to your `proguard-rules.pro` file |
-| Jetifier errors during build | `android.enableJetifier=true` not set | Add `android.enableJetifier=true` to `gradle.properties` |
+| Jetifier errors during build | Another dependency still uses the legacy support libraries | UI Kit 6.1.1 builds without Jetifier, so you don't need it for CometChat. Add `android.enableJetifier=true` to `gradle.properties` only if another dependency uses the legacy support libraries (AGP 9 deprecates it and logs a warning) |
| `CometChatConversationList` not found | Component renamed in v6 | Use `CometChatConversations` instead of `CometChatConversationList` |
| `CometChatThreadedMessagesHeader` not found | Component renamed in v5 | Use `CometChatThreadHeader` instead |
@@ -78,7 +78,7 @@ description: "Common failure modes and fixes for the CometChat Android V6 UI Kit
| Symptom | Cause | Fix |
| --- | --- | --- |
-| Call buttons not appearing | `com.cometchat:calls-sdk-android` not installed | Add the calls SDK dependency to your `build.gradle` — the UI Kit auto-detects it. See [Integration](/ui-kit/android/getting-started) |
+| Call buttons not appearing | `com.cometchat:calls-sdk-android` not installed, or calling not enabled | Add the Calls SDK dependency to your `build.gradle` **and** enable calling: `.setEnableCalling(true)` on `UIKitSettingsBuilder` (it defaults to `false`), or `enableCalling: true` when you use `initFromSettings()`. Change the flag and the dependency together: the flag without the dependency crashes at launch. See [Calling Integration](/ui-kit/android/calling-integration) |
| Incoming call screen not showing | `CometChatIncomingCall` not added to the Activity | Render `CometChatIncomingCall` at the root of your Activity layout so it can listen for incoming calls |
| Incoming calls not detected | Call events not observed | Ensure you collect from `CometChatEvents.onIncomingCall` SharedFlow in your Application class or relevant scope |
| Call connects but no audio/video | Missing runtime permissions | Request `CAMERA`, `RECORD_AUDIO`, and `INTERNET` permissions at runtime before initiating calls |
diff --git a/ui-kit/android/upgrading-from-v5.mdx b/ui-kit/android/upgrading-from-v5.mdx
index fe512060e..b347209e7 100644
--- a/ui-kit/android/upgrading-from-v5.mdx
+++ b/ui-kit/android/upgrading-from-v5.mdx
@@ -28,7 +28,7 @@ The following table summarizes the most impactful changes when migrating from V5
| Area | V5 | V6 |
|:-----|:---|:---|
| **Language** | Java | Kotlin |
-| **Modules** | Single `com.cometchat:chatuikit-kotlin-android` | `com.cometchat:chatuikit-kotlin-android` (XML) or `com.cometchat:chatuikit-compose-android` (Compose) + shared `chatuikit-core` |
+| **Modules** | Single `com.cometchat:chat-uikit-android` | `com.cometchat:chatuikit-kotlin-android` (XML) or `com.cometchat:chatuikit-compose-android` (Compose) + shared `chatuikit-core` |
| **Import path** | `com.cometchat.chatuikit.*` | `com.cometchat.uikit.kotlin.presentation.*` or `com.cometchat.uikit.compose.presentation.*` |
| **CometChatUIKit import** | `com.cometchat.chatuikit.shared.cometchatuikit.CometChatUIKit` | `com.cometchat.uikit.core.CometChatUIKit` |
| **UIKitSettings import** | `com.cometchat.chatuikit.shared.cometchatuikit.UIKitSettings` | `com.cometchat.uikit.core.UIKitSettings` |
@@ -51,7 +51,7 @@ The following table summarizes the most impactful changes when migrating from V5
```groovy title="build.gradle"
dependencies {
- implementation 'com.cometchat:chatuikit-kotlin-android:5.x.x'
+ implementation 'com.cometchat:chat-uikit-android:5.x.x'
}
```
@@ -59,7 +59,7 @@ dependencies {
```groovy title="build.gradle"
dependencies {
- implementation 'com.cometchat:chatuikit-kotlin-android:6.x.x'
+ implementation 'com.cometchat:chatuikit-kotlin-android:6.1.1'
// chatuikit-core is pulled in transitively
}
```
@@ -68,7 +68,11 @@ dependencies {
```groovy title="build.gradle"
dependencies {
- implementation 'com.cometchat:chatuikit-compose-android:6.x.x'
+ // Jetpack Compose (Compose 1.8 or newer; keep the BOM at 2025.04.01 or newer)
+ implementation platform('androidx.compose:compose-bom:2025.06.00')
+ implementation 'androidx.compose.material3:material3'
+
+ implementation 'com.cometchat:chatuikit-compose-android:6.1.1'
// chatuikit-core is pulled in transitively
}
```
diff --git a/ui-kit/angular/angular-conversation.mdx b/ui-kit/angular/angular-conversation.mdx
index c4e3e0a0a..d9e1f2327 100644
--- a/ui-kit/angular/angular-conversation.mdx
+++ b/ui-kit/angular/angular-conversation.mdx
@@ -37,12 +37,16 @@ Three sections working together:
---
-## Step 1 — Update AppComponent
+## Step 1 — Update the Root Component
Wire the conversation list and message components together in your root component. The UIKit's `ChatStateService` handles all the wiring — when a user clicks a conversation, `cometchat-conversations` updates the service, and the message components automatically react to the change.
-```ts title="src/app/app.component.ts" expandable
-import { Component, inject, OnInit } from "@angular/core";
+
+Angular 20+ names the root component `App` in `src/app/app.ts`, as below. A project created with Angular 17–19 uses `AppComponent` in `src/app/app.component.ts` — use that file and class name instead.
+
+
+```ts title="src/app/app.ts" expandable
+import { Component, inject, OnInit, signal } from "@angular/core";
import {
CometChatUIKit,
CometChatConversationsComponent,
@@ -63,7 +67,7 @@ import { CometChat } from "@cometchat/chat-sdk-javascript";
CometChatMessageComposerComponent,
],
template: `
- @if (isLoggedIn) {
+ @if (isLoggedIn()) {