{"id":"3233b4c6-362a-4cca-a8c8-0f91d340209b","shortId":"JMXUFH","kind":"skill","title":"cometchat-android-v6-features","tagline":"CometChat Android UIKit v6 feature catalog — AI features, reactions, polls, stickers, moderation, collaborative, and media features","description":"> **Companion skills:** cometchat-android-v6-kotlin-components, cometchat-android-v6-compose-components, cometchat-android-v6-extensions (DataSource pattern), cometchat-android-v6-events\n\n## Purpose\n\nCatalog of all features available in CometChat UIKit v6, how they map to components and DataSources, and how to enable/disable them.\n\n## Use this skill when\n\n- Enabling or disabling specific features (AI, reactions, polls, stickers)\n- Understanding what features are available out of the box\n- Mapping a feature to its component and DataSource\n\n## Do not use this skill when\n\n- Working with component APIs directly (use `cometchat-*-components`)\n- Customizing bubble rendering (use `cometchat-*-customization`)\n\n## 1. AI Features\n\nAI features need an OpenAI API key on the app's AI settings. Enable each one with the CLI in stateless mode (Android projects don't write `.cometchat/state.json`):\n\n```bash\ncometchat apply-feature smart-replies --app-id <your-app-id> --openai-key sk-...\ncometchat apply-feature conversation-summary --app-id <your-app-id>\ncometchat apply-feature conversation-starter --app-id <your-app-id>\n```\n\nThe OpenAI key is stored on the app once, so subsequent ai-feature applies don't need `--openai-key` repeated. Requires `cometchat auth login` once per machine.\n\n| Feature | Compose Component | Core DataSource | Description |\n|---|---|---|---|\n| AI Assistant Chat History | `CometChatAIAssistantChatHistory` | — | Shows AI bot conversation history |\n| AI Conversation Starter | Shared element in `presentation/shared/aiconversationstarter/` | — | Suggests conversation starters |\n| AI Conversation Summary | Shared element in `presentation/shared/aiconversationsummary/` | — | Summarizes long conversations |\n| AI Smart Replies | Shared element in `presentation/shared/aismartreplies/` | — | Suggests contextual replies |\n\nAI features integrate with `CometChatMessageList` via the `smartRepliesView` slot and AI-specific parameters.\n\nThe `CometChatAIStreamService` in `chatuikit-core` handles streaming AI responses.\n\n## 2. Reactions\n\n| Feature | Component | DataSource | Description |\n|---|---|---|---|\n| Reaction List | `CometChatReactionList` | `ReactionListDataSource` | Shows who reacted with what |\n| Add Reaction | Shared element in `presentation/shared/reaction/` | — | Emoji picker for adding reactions |\n\nReactions appear in the **footer slot** of message bubbles. Reaction events flow through `CometChatEvents.messageEvents`.\n\n## 3. Polls\n\n| Feature | Component | DataSource | Description |\n|---|---|---|---|\n| Create Poll | `CometChatCreatePoll` (Compose) | `PollDataSource` | Create a new poll |\n| Poll Bubble | Shared element in `presentation/shared/` | `PollDataSourceImpl` | Renders poll in message list |\n\nPolls are custom messages with type `extension_poll`. The `PollRepositoryImpl` handles vote submission.\n\n## 4. Stickers\n\n| Feature | Component | DataSource | Description |\n|---|---|---|---|\n| Sticker Keyboard | `CometChatStickerKeyboard` | `StickerDataSource` | Browse and send stickers |\n| Sticker Bubble | `stickerbubble/` (Kotlin Views) | `StickerDataSourceImpl` | Renders sticker in message list |\n\nStickers integrate with `CometChatMessageComposer` as an auxiliary input.\n\n## 5. Moderation\n\n| Feature | Component | Description |\n|---|---|---|\n| Report/Flag Message | `CometChatFlagMessageDialog` (Views) / `CometChatFlagMessageDialog` (Compose) | Report inappropriate messages |\n\nModeration views appear in the **bottom slot** of message bubbles when moderation is enabled.\n\n## 6. Collaborative Features\n\n| Feature | DataSource | Description |\n|---|---|---|\n| Collaborative Document | `CollaborativeDataSource` | Real-time document editing |\n| Collaborative Whiteboard | `CollaborativeDataSourceImpl` | Real-time whiteboard |\n\n## 7. Media Features\n\n| Feature | Component | Description |\n|---|---|---|\n| Image Viewer | `CometChatImageViewerScreen` (Compose) | Full-screen image viewing with zoom |\n| Media Recorder | Shared element in `presentation/shared/mediarecorder/` | Audio/video recording |\n| Inline Audio Recorder | Shared element in `presentation/shared/inlineaudiorecorder/` | In-composer audio recording |\n| Media Selection | Shared element in `presentation/shared/mediaselection/` | Photo/video picker |\n\n## 8. Feature-to-DataSource Mapping\n\nAll DataSources live in `chatuikit-core/data/datasource/`:\n\n| DataSource Interface | Implementation | Feature Area |\n|---|---|---|\n| `CallButtonsDataSource` | `CallButtonsDataSourceImpl` | Audio/video call buttons |\n| `CallLogsDataSource` | `CallLogsDataSourceImpl` | Call history |\n| `CollaborativeDataSource` | `CollaborativeDataSourceImpl` | Documents/whiteboards |\n| `ConversationListDataSource` | `ConversationListDataSourceImpl` | Conversation list |\n| `GroupMembersDataSource` | `GroupMembersDataSourceImpl` | Group member management |\n| `GroupsDataSource` | `GroupsDataSourceImpl` | Group list |\n| `MessageComposerDataSource` | `MessageComposerDataSourceImpl` | Message input |\n| `MessageHeaderDataSource` | `MessageHeaderDataSourceImpl` | Chat header |\n| `MessageInformationDataSource` | `MessageInformationDataSourceImpl` | Message info/receipts |\n| `MessageListDataSource` | `MessageListDataSourceImpl` | Message list |\n| `PollDataSource` | `PollDataSourceImpl` | Polls |\n| `ReactionListDataSource` | `ReactionListDataSourceImpl` | Reactions |\n| `SearchDataSource` | `SearchDataSourceImpl` | Global search |\n| `StickerDataSource` | `StickerDataSourceImpl` | Stickers |\n| `UsersDataSource` | `UsersDataSourceImpl` | User list |\n\n## Hard rules\n\n- AI features require dashboard configuration — they cannot be enabled purely from client code\n- Polls and stickers are custom message types — they require the corresponding extensions enabled on the dashboard\n- Do NOT confuse DataSources (data layer in core) with BubbleFactory (UI layer in kotlin/compose) — DataSources fetch data, BubbleFactories render bubbles","tags":["cometchat","android","features","skills","agent-skills","ai-agent","chat","claude-code","cursor","messaging","nextjs","react"],"capabilities":["skill","source-cometchat","skill-cometchat-android-v6-features","topic-agent-skills","topic-ai-agent","topic-chat","topic-claude-code","topic-cometchat","topic-cursor","topic-messaging","topic-nextjs","topic-react","topic-react-native","topic-ui-kit"],"categories":["cometchat-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/cometchat/cometchat-skills/cometchat-android-v6-features","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add cometchat/cometchat-skills","source_repo":"https://github.com/cometchat/cometchat-skills","install_from":"skills.sh"}},"qualityScore":"0.463","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 27 github stars · SKILL.md body (5,925 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:04:46.639Z","embedding":null,"createdAt":"2026-05-07T13:05:05.903Z","updatedAt":"2026-05-18T19:04:46.639Z","lastSeenAt":"2026-05-18T19:04:46.639Z","tsv":"'/data/datasource':505 '1':120 '2':285 '3':325 '4':365 '5':398 '6':426 '7':447 '8':492 'ad':309 'add':300 'ai':12,79,121,123,134,198,221,227,231,241,251,261,272,283,571 'ai-featur':197 'ai-specif':271 'android':3,7,26,32,38,45,145 'api':109,128 'app':132,160,174,184,193 'app-id':159,173,183 'appear':312,414 'appli':154,168,178,200 'apply-featur':153,167,177 'area':510 'assist':222 'audio':473,482 'audio/video':470,513 'auth':210 'auxiliari':396 'avail':53,87 'bash':151 'bot':228 'bottom':417 'box':91 'brows':375 'bubbl':115,319,341,380,421,619 'bubblefactori':609,617 'button':515 'call':514,518 'callbuttonsdatasourc':511 'callbuttonsdatasourceimpl':512 'calllogsdatasourc':516 'calllogsdatasourceimpl':517 'cannot':577 'catalog':11,49 'chat':223,542 'chatuikit':279,503 'chatuikit-cor':278,502 'cli':141 'client':582 'code':583 'collabor':18,427,432,440 'collaborativedatasourc':434,520 'collaborativedatasourceimpl':442,521 'cometchat':2,6,25,31,37,44,55,112,118,152,166,176,209 'cometchat-android-v6-compose-components':30 'cometchat-android-v6-events':43 'cometchat-android-v6-extensions':36 'cometchat-android-v6-features':1 'cometchat-android-v6-kotlin-components':24 'cometchat/state.json':150 'cometchataiassistantchathistori':225 'cometchataistreamservic':276 'cometchatcreatepol':333 'cometchatevents.messageevents':324 'cometchatflagmessagedialog':405,407 'cometchatimageviewerscreen':455 'cometchatmessagecompos':393 'cometchatmessagelist':265 'cometchatreactionlist':293 'cometchatstickerkeyboard':373 'companion':22 'compon':29,35,62,97,108,113,217,288,328,368,401,451 'compos':34,216,334,408,456,481 'configur':575 'confus':602 'contextu':259 'convers':171,181,229,232,239,242,250,525 'conversation-start':180 'conversation-summari':170 'conversationlistdatasourc':523 'conversationlistdatasourceimpl':524 'core':218,280,504,607 'correspond':594 'creat':331,336 'custom':114,119,354,588 'dashboard':574,599 'data':604,616 'datasourc':41,64,99,219,289,329,369,430,496,499,506,603,614 'descript':220,290,330,370,402,431,452 'direct':110 'disabl':76 'document':433,438 'documents/whiteboards':522 'edit':439 'element':235,245,255,303,343,467,476,487 'emoji':306 'enabl':74,136,425,579,596 'enable/disable':68 'event':47,321 'extens':40,358,595 'featur':5,10,13,21,52,78,85,94,122,124,155,169,179,199,215,262,287,327,367,400,428,429,449,450,494,509,572 'feature-to-datasourc':493 'fetch':615 'flow':322 'footer':315 'full':458 'full-screen':457 'global':560 'group':529,534 'groupmembersdatasourc':527 'groupmembersdatasourceimpl':528 'groupsdatasourc':532 'groupsdatasourceimpl':533 'handl':281,362 'hard':569 'header':543 'histori':224,230,519 'id':161,175,185 'imag':453,460 'implement':508 'in-compos':479 'inappropri':410 'info/receipts':547 'inlin':472 'input':397,539 'integr':263,391 'interfac':507 'key':129,164,188,206 'keyboard':372 'kotlin':28,382 'kotlin/compose':613 'layer':605,611 'list':292,351,389,526,535,551,568 'live':500 'login':211 'long':249 'machin':214 'manag':531 'map':60,92,497 'media':20,448,464,484 'member':530 'messag':318,350,355,388,404,411,420,538,546,550,589 'messagecomposerdatasourc':536 'messagecomposerdatasourceimpl':537 'messageheaderdatasourc':540 'messageheaderdatasourceimpl':541 'messageinformationdatasourc':544 'messageinformationdatasourceimpl':545 'messagelistdatasourc':548 'messagelistdatasourceimpl':549 'mode':144 'moder':17,399,412,423 'need':125,203 'new':338 'one':138 'openai':127,163,187,205 'openai-key':162,204 'paramet':274 'pattern':42 'per':213 'photo/video':490 'picker':307,491 'poll':15,81,326,332,339,340,348,352,359,554,584 'polldatasourc':335,552 'polldatasourceimpl':346,553 'pollrepositoryimpl':361 'presentation/shared':345 'presentation/shared/aiconversationstarter':237 'presentation/shared/aiconversationsummary':247 'presentation/shared/aismartreplies':257 'presentation/shared/inlineaudiorecorder':478 'presentation/shared/mediarecorder':469 'presentation/shared/mediaselection':489 'presentation/shared/reaction':305 'project':146 'pure':580 'purpos':48 'react':297 'reaction':14,80,286,291,301,310,311,320,557 'reactionlistdatasourc':294,555 'reactionlistdatasourceimpl':556 'real':436,444 'real-tim':435,443 'record':465,471,474,483 'render':116,347,385,618 'repeat':207 'repli':158,253,260 'report':409 'report/flag':403 'requir':208,573,592 'respons':284 'rule':570 'screen':459 'search':561 'searchdatasourc':558 'searchdatasourceimpl':559 'select':485 'send':377 'set':135 'share':234,244,254,302,342,466,475,486 'show':226,295 'sk':165 'skill':23,72,104 'skill-cometchat-android-v6-features' 'slot':269,316,418 'smart':157,252 'smart-repli':156 'smartrepliesview':268 'source-cometchat' 'specif':77,273 'starter':182,233,240 'stateless':143 'sticker':16,82,366,371,378,379,386,390,564,586 'stickerbubbl':381 'stickerdatasourc':374,562 'stickerdatasourceimpl':384,563 'store':190 'stream':282 'submiss':364 'subsequ':196 'suggest':238,258 'summar':248 'summari':172,243 'time':437,445 'topic-agent-skills' 'topic-ai-agent' 'topic-chat' 'topic-claude-code' 'topic-cometchat' 'topic-cursor' 'topic-messaging' 'topic-nextjs' 'topic-react' 'topic-react-native' 'topic-ui-kit' 'type':357,590 'ui':610 'uikit':8,56 'understand':83 'use':70,102,111,117 'user':567 'usersdatasourc':565 'usersdatasourceimpl':566 'v6':4,9,27,33,39,46,57 'via':266 'view':383,406,413,461 'viewer':454 'vote':363 'whiteboard':441,446 'work':106 'write':149 'zoom':463","prices":[{"id":"fdad05a1-089d-482d-85ad-4e28b843cf87","listingId":"3233b4c6-362a-4cca-a8c8-0f91d340209b","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"cometchat","category":"cometchat-skills","install_from":"skills.sh"},"createdAt":"2026-05-07T13:05:05.903Z"}],"sources":[{"listingId":"3233b4c6-362a-4cca-a8c8-0f91d340209b","source":"github","sourceId":"cometchat/cometchat-skills/cometchat-android-v6-features","sourceUrl":"https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-android-v6-features","isPrimary":false,"firstSeenAt":"2026-05-07T13:05:05.903Z","lastSeenAt":"2026-05-18T19:04:46.639Z"}],"details":{"listingId":"3233b4c6-362a-4cca-a8c8-0f91d340209b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"cometchat","slug":"cometchat-android-v6-features","github":{"repo":"cometchat/cometchat-skills","stars":27,"topics":["agent-skills","ai-agent","chat","claude-code","cometchat","cursor","messaging","nextjs","react","react-native","ui-kit"],"license":null,"html_url":"https://github.com/cometchat/cometchat-skills","pushed_at":"2026-05-18T05:04:24Z","description":"Add CometChat chat to any React, Next.js, React Native, Angular, Android, iOS, or Flutter project through your AI coding agent. Works with Claude Code, Cursor, Codex, VS Code Copilot, Windsurf, Cline, Kiro, and 50+ more agents.","skill_md_sha":"343b8e2b828bdd0a30c837498d311fe32766b93d","skill_md_path":"skills/cometchat-android-v6-features/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-android-v6-features"},"layout":"multi","source":"github","category":"cometchat-skills","frontmatter":{"name":"cometchat-android-v6-features","license":"MIT","description":"CometChat Android UIKit v6 feature catalog — AI features, reactions, polls, stickers, moderation, collaborative, and media features","compatibility":"Android 9.0+ (API 28); Kotlin 1.9+; com.cometchat:chatuikit-compose-android:6.x / com.cometchat:chatuikit-kotlin-android:6.x"},"skills_sh_url":"https://skills.sh/cometchat/cometchat-skills/cometchat-android-v6-features"},"updatedAt":"2026-05-18T19:04:46.639Z"}}