Skip the manual steps — use CometChat Skills to integrate via your AI coding agent. Your agent has a short conversation with you to understand your project and chat requirements, then writes production-grade integration code tailored to the files you already have.
npx @cometchat/skills add
Use --ide <name> to target a specific IDE (e.g. --ide cursor), or --ide all for all supported IDEs.Then in your IDE:
/cometchat add chat to my app
The skill detects your React Native setup, navigation library, and existing auth system. It onboards you to CometChat directly in the terminal — signup, login, and app creation all via the CLI. It reads your screens, nav, and components before proposing a placement (stack, tab, modal, or bottom sheet), shows the plan, and waits for your approval before writing code.After the first integration, re-run /cometchat to access the iteration menu: theme presets, 40+ features, component customization, push notifications, production auth, user management, and diagnostics.Works with Claude Code, Cursor, Codex, VS Code Copilot, Windsurf, Cline, Kiro, and 30+ more agents.
Auth Key is for development only. In production, generate Auth Tokens server-side via the REST API and use loginWithAuthToken(). Never ship Auth Keys in client code.
The CometChat React Native UI Kit is officially built and tested with React Native version 0.77.0 and above. While it may work with older versions, they are not officially supported.
Android: Add Local Maven Repository for Async Storage
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.
<key>NSCameraUsageDescription</key><string>Camera access for video calls</string><key>NSMicrophoneUsageDescription</key><string>Microphone access for voice/video calls</string>
After init resolves, log the user in. For development, use one of the pre-created test UIDs:cometchat-uid-1 · cometchat-uid-2 · cometchat-uid-3 · cometchat-uid-4 · cometchat-uid-5
TypeScript
JavaScript
const UID = "cometchat-uid-1"; // Replace with your actual UIDCometChatUIKit.login({ uid: UID }) .then((user: CometChat.User) => { console.log("Login Successful:", user.getName()); }) .catch((error) => { console.error("Login failed:", error); });
const UID = "cometchat-uid-1"; // Replace with your actual UIDCometChatUIKit.login({ uid: UID }) .then((user) => { console.log("Login Successful:", user.getName()); }) .catch((error) => { console.error("Login failed:", error); });
For production, use loginWithAuthToken() instead of Auth Key. Generate tokens server-side via the REST API.