Cometchat android v5 features
Skill cometchat/cometchat-skills/skills/cometchat-android-v5-features
Add features (calls, reactions, polls, file sharing, AI, etc.) to an already-integrated CometChat project. Routes to the right sub-flow based on feature type.From its SKILL.md
npx -y skills add cometchat/cometchat-skills --skill cometchat-android-v5-featuresAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.5 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
Ground truth:
com.cometchat:chat-uikit-android:5.x(legacy/maintenance-only; +calls-sdk-android:5.x) — resolved AAR (javap) +ui-kit/android. Official docs: https://www.cometchat.com/docs/fundamentals/extensions-overview · Docs MCP:claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp(or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
Companion skills:
cometchat-android-v5-corecovers initialization;cometchat-android-v5-customizationcovers deeper component customization;cometchat-android-v5-extensionscovers the extension architecture.
Purpose
This skill teaches how CometChat features are structured and what work is required to enable each one. Most features require zero code — they are either already built into the UI Kit, toggled via the cometchat apply-feature CLI (extensions + AI features), or activated by adding a dependency (calls).
Use this skill when
- "Add reactions to my chat"
- "Add video calling"
- "Enable polls"
- "Add file sharing"
- "Enable smart replies"
Do not use this skill when
- Customizing how a feature looks → use
cometchat-android-v5-customization - Setting up the initial integration → use
cometchat-android-v5-core
1. Feature types
| Type | What it means | Action required |
|---|---|---|
| Type 1 — Default | Built into the UI Kit at compile time | None — already there |
| Type 2a — Extension | Backend extension, pure boolean toggle | cometchat apply-feature <id> --app-id <X> (CLI hits dashboard API) |
| Type 2b — AI feature | Backend AI feature requiring an OpenAI key | cometchat apply-feature <id> --app-id <X> --openai-key sk-... |
| Type 2c — Dashboard-only | Third-party API key / multi-field config (Giphy, Stipop, Tenor, Chatwoot, Intercom) | Open https://app.cometchat.com → Chat & Messaging → Features → configure |
| Type 3 — Package-install | Requires a separate SDK dependency | Add Gradle dependency |
| Type 4 — Component-toggle | Hide/show via setHide* / disable* methods on the relevant component | Call the setter on the component instance (see catalog) |
2. Type 1 — Default features (already enabled)
| Feature | Component | Notes |
|---|---|---|
| Text messaging | CometChatMessageComposer + CometChatMessageList | Core feature |
| Media sharing (image/video/audio/file) | CometChatMessageComposer | Attachment button |
| Read receipts | CometChatMessageList | setReceiptsVisibility() |
| Typing indicators | CometChatMessageList + CometChatConversations | Auto-enabled |
| User presence (online/offline) | CometChatConversations, CometChatUsers | Requires subscribePresenceForAllUsers() in init |
| Reactions | CometChatMessageList | Long-press message → react |
| Mentions (@user, @all) | CometChatMessageComposer | Type @ to trigger |
| Threaded conversations | CometChatMessageList | setReplyInThreadOptionVisibility() |
| Quoted replies | CometChatMessageList | Swipe to reply |
| Edit/delete messages | CometChatMessageList | Long-press options |
| Group chat | All components | Use setGroup() instead of setUser() |
| Report message | CometChatMessageList | Long-press → Report |
| Search | CometChatSearch | Standalone component |
3. Type 2 — Backend toggle features (no code needed)
Android projects don't run cometchat apply, so call the CLI in stateless mode with --app-id:
# Pure boolean extensions:
cometchat apply-feature polls --app-id <your-app-id>
cometchat apply-feature stickers --app-id <your-app-id>
# AI features (require OpenAI key):
cometchat apply-feature smart-replies --app-id <your-app-id> --openai-key sk-...
cometchat apply-feature conversation-summary --app-id <your-app-id>
cometchat apply-feature conversation-starter --app-id <your-app-id>
Requires cometchat auth login once per machine.
Extensions (CLI-toggleable — pure boolean):
- User Engagement: Polls, Message Translation, Reminders
- Collaboration: Collaborative Document, Collaborative Whiteboard
- Security: Disappearing Messages, E2E Encryption (Enterprise)
- Moderation: Profanity Filter, Image Moderation, Data Masking, Sentiment Analysis, XSS Filter
AI Features (CLI-toggleable — needs --openai-key):
Conversation Starter, Conversation Summary, Smart Reply
Dashboard-only (third-party config — open https://app.cometchat.com → Chat & Messaging → Features): Stickers (Stipop), Giphy, Tenor, Chatwoot, Intercom — these require API keys / webhooks the user must enter manually.
4. Type 3 — Package-install features
Voice/Video Calling
Add the calling SDK:
implementation 'com.cometchat:calls-sdk-android:5.+'
The UI Kit auto-detects the calling SDK and enables call buttons in CometChatMessageHeader. No additional code needed — CometChatIncomingCall, CometChatOutgoingCall, and CometChatOngoingCall activate automatically.
Configure call buttons visibility:
CometChatMessageHeader header = findViewById(R.id.header);
header.setVoiceCallButtonVisibility(View.VISIBLE);
header.setVideoCallButtonVisibility(View.VISIBLE);
Hard rules
- Don't write code for Type 1 features. They're already there. Tell the user where to find them.
- Don't write code for Type 2a/2b features. Run
cometchat apply-feature <id> --app-id <X>(extension) or... --openai-key sk-...(ai-feature). The CLI flips the dashboard toggle via API. Never tell the user to "open the dashboard and toggle X" for an extension or ai-feature — that's what the CLI does. - For Type 2c (dashboard-only) features, the CLI cannot automate (third-party keys / multi-field config). Walk the user through the dashboard path returned by
cometchat apply-feature <id>'smanual-action-requiredresponse. - For Type 3 (calls), just add the Gradle dependency. The UI Kit handles the rest.
- Always run
cometchat apply-feature <id>first for extensions and AI features. If the user reports a "missing feature," it's almost always an unflipped toggle the CLI can fix in one call.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.