Agent skill

Cometchat Android V6 Core

by cometchat in cometchat/cometchat-skills

Foundational rules for the CometChat Android UI Kit v6 — the two UI cohorts and their artifacts, credentials via the gitignored assets settings file, initFromSettings → login → render ordering, the…

MITAuto-check passedMobile

Install Cometchat Android V6 Core

skills CLI
$ npx skills add cometchat/cometchat-skills --skill cometchat-android-v6-core -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install cometchat/cometchat-skills cometchat-android-v6-core --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/cometchat/cometchat-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cometchat-android-v6-core .claude/skills/cometchat-android-v6-core && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
cometchat-android-v6-core
GitHub stars
130
Token cost
~5.5k tokens
SKILL.md length
1,525 words
Files
8 (incl. references)
Skills in repo
97
Repo updated
First seen
Licence
MIT

At a glance

Foundational rules for the CometChat Android UI Kit v6 — the two UI cohorts and their artifacts, credentials via the gitignored assets settings file, initFromSettings → login → render ordering, the…

  • Works in 3 steps: Detect the project AND pick the cohort —… → Credentials — OFFER to fetch from the… → Write…
  • Tasks that involve Android development
  • SKILL.md covers Use this skill when, Prerequisites & install, Setup & credentials… and Integration ordering (BAKED —…, plus 9 more sections
  • Calls npx; reaches dl.cloudsmith.io; needs AUTH_KEY

What it does

Cometchat Android V6 Core is an agent skill from cometchat/cometchat-skills. Foundational rules for the CometChat Android UI Kit v6 — the two UI cohorts and their artifacts, credentials via the gitignored assets settings file, initFromSettings → login → render ordering, the component map, and the production-ready core chat surface. Read this first for any Android CometChat task. Triggers: CometChat Android setup, Kotlin chat UI kit, Jetpack Compose chat.

Its SKILL.md is about 5.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `references/anti-patterns.md`, `references/component-props.md` and `references/docs-map.md`). Compatibility notes: Android minSdk =28; compileSdk =36; Kotlin =2.1; AGP =8.9.1; JVM target 11; com.cometchat:chatuikit-kotlin-android ^6 (XML Views) OR…

It sits in Mobile, covering Android development and Design systems. It works with CometChat, Android, Kotlin and Jetpack Compose. The repository describes itself as: Add CometChat chat & messaging and voice & video calls to any React, Next.js, React Native, Angular, Android, iOS, or Flutter project through your AI coding agent. Works with… The licence is MIT.

When your agent uses it

  • Tasks that involve Android development
  • Tasks that involve Design systems

Example prompts

  • “/cometchat-android-v6-core”

Requirements

  • Node.js
  • A credential in AUTH_KEY
  • Compatibility (from SKILL.md): Android minSdk >=28; compileSdk >=36; Kotlin >=2.1; AGP >=8.9.1; JVM target 11; com.cometchat:chatuikit-kotlin-android ^6 (XML Views) OR com.cometchat:chatuikit-compose-android ^6 (Jetpack Compose) — 6.0.x, verified 6.0.5; com.cometchat:chat-sdk-android ^5 (5.0.x); optional com.cometchat:calls-sdk-android ^5

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Detect the project AND pick the cohort — never guess. npx @cometchat/skills detect --json
  2. Credentials — OFFER to fetch from the dashboard FIRST, never default to "paste it yourself": (a) load the CometChat CLI on demand (npx…
  3. Write app/src/main/assets/cometchat-settings.json (the file initFromSettings reads) and gitignore it

What it can do on your machine

Read from SKILL.md and the folder at commit 911b108. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • dl.cloudsmith.io

    Also links to:

    • cometchat.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • AUTH_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Android minSdk >=28; compileSdk >=36; Kotlin >=2.1; AGP >=8.9.1; JVM target 11; com.cometchat:chatuikit-kotlin-android ^6 (XML Views) OR com.cometchat:chatuikit-compose-android ^6 (Jetpack Compose) — 6.0.x, verified 6.0.5; com.cometchat:chat-sdk-android ^5 (5.0.x); optional com.cometchat:calls-sdk-android ^5

    From compatibility in the SKILL.md frontmatter.

Context cost

Cometchat Android V6 Core loads about 5.5k tokens when it runs, and up to ~21k if it reads all its reference files. Until then it costs about 102 tokens; SKILL.md has 1,525 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~102
When it runs · the whole SKILL.md, loaded when a task matches
~5.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~21k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from cometchat/cometchat-skills at commit 911b108, republished under its MIT licence (© cometchat). 1,525 words, ~5,473 tokens.

Download SKILL.mdSave it as .claude/skills/cometchat-android-v6-core/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
cometchat-android-v6-core
description
Foundational rules for the CometChat Android UI Kit v6 — the two UI cohorts and their artifacts, credentials via the gitignored assets settings file, initFromSettings → login → render ordering, the component map, and the production-ready core chat surface. Read this first for any Android CometChat task. Triggers: CometChat Android setup, Kotlin chat UI kit, Jetpack Compose chat.
compatibility
Android minSdk >=28; compileSdk >=36; Kotlin >=2.1; AGP >=8.9.1; JVM target 11; com.cometchat:chatuikit-kotlin-android ^6 (XML Views) OR com.cometchat:chatuikit-compose-android ^6 (Jetpack Compose) — 6.0.x, verified 6.0.5; com.cometchat:chat-sdk-android ^5 (5.0.x); optional com.cometchat:calls-sdk-android ^5
license
MIT
metadata.author
CometChat
metadata.version
1.1.0
metadata.tags
chat cometchat android kotlin compose views core rules initialization native

Ground truth: com.cometchat:chatuikit-{kotlin,compose}-android@6 + catalog android-v6.json (287 public symbols, generated from the INSTALLED 6.0.5 source) + features.android-v6.json. Official docs: https://www.cometchat.com/docs/ui-kit/android/overview · scoped index …/ui-kit/android/llms-android-v6.md. Verify every symbol against the catalog; fetch signatures from docs (references/docs-map.md); never trust memory.

⚠️ ONE kit, TWO cohorts. chatuikit-kotlin-android (XML Views) and chatuikit-compose-android (Jetpack Compose) are different artifacts with different namespaces. Component NAMES are shared, the wiring is not — Views uses setOnX(...) setters, Compose uses onX = params. Never install both. v5 Java snippets do not compile against v6 (com.cometchat.chatuikit.* → com.cometchat.uikit.*); that migration is cometchat-android-v6-migration.

⚠️ Some docs snippets are ahead of / behind the shipped kit. Where a baked signature here differs from a docs page, the baked one was verified against the installed 6.0.5 source (gap logged internally). Compile before you trust a docs fence.

<!-- core is the companion the other android v6 skills read; it has no Companion block of its own. -->

Use this skill when

"add chat to my Android app", "set up CometChat credentials", "integrate CometChat in Kotlin/Compose", "show a conversations + messages screen", "build a chat app". An unscoped "add chat" means the production-ready core chat surface below — not a bare list, and not the whole tab-based app (that grows via cometchat-android-v6-{kotlin,compose}-placement).

Prerequisites & install

Pick ONE cohort — the app's existing UI stack decides:

kotlin
// settings.gradle.kts → dependencyResolutionManagement.repositories
maven("https://dl.cloudsmith.io/public/cometchat/cometchat/maven/")

// app/build.gradle.kts — repo/exclude/compileOptions are COHORT-NEUTRAL (the duplicate-class
// collision comes via chatuikit-core-android, which BOTH cohorts pull); only the artifact differs
configurations.all {
    // REQUIRED — without it the first build fails at dexing with ~40
    // "Duplicate class org.jetbrains.annotations.*" errors (docs getting-started-{kotlin,jetpack}).
    exclude(group = "org.jetbrains", module = "annotations-java5")
}

// gradle.properties — REQUIRED, both lines (why: dexing dup-class; references/troubleshooting.md):
//   android.useAndroidX=true   android.enableJetifier=true

dependencies {
    implementation("com.cometchat:chatuikit-kotlin-android:6.0.5")
    // implementation("com.cometchat:calls-sdk-android:5.0.4")   // only for voice/video
}
android {
    buildFeatures { viewBinding = true }
    compileOptions { sourceCompatibility = JavaVersion.VERSION_11; targetCompatibility = JavaVersion.VERSION_11 }
}
// JVM 11 (Kotlin 2.2+ rejects kotlinOptions{}). Fully-qualified: a mid-file .kts import won't compile.
kotlin { compilerOptions { jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) } }

Theme kit views under a CometChatTheme.DayNight-derived theme — REQUIRED (Views), not cosmetic. Kit views resolve ?attr/cometchat* at inflate time; outside such a theme the FIRST kit view crashes (IllegalArgumentException/InflateException on ?attr/cometchatPrimaryColor — verified on device). Greenfield → re-parent app-wide: <style name="AppTheme" parent="CometChatTheme.DayNight" /> + <application android:theme="@style/AppTheme">. Brownfield (app HAS its own theme) → do NOT re-parent (CometChatTheme.DayNight parents MaterialComponents, so Material3-only host attrs stop resolving — you'd break their screens); scope a derived style to the chat Activities (manifest android:theme) + ContextThemeWrapper for fragment/tab-embedded views — recipe: kotlin-placement Placement 2.

Compose cohort: swap the artifact for com.cometchat:chatuikit-compose-android:6.0.5 and use buildFeatures { compose = true } + the Kotlin Compose plugin. Build floors — all forced by the transitive androidx.core:core:1.18.0 and all failing with the SAME opaque checkDebugAarMetadata error, so bump them together: minSdk 28 · compileSdk 36 · AGP ≥ 8.9.1 · Gradle ≥ 8.11 · Kotlin ≥ 2.1 (exact error strings + fixes in -troubleshooting; verified on device). chatuikit-core-android and chat-sdk-android arrive transitively — never add the UI Kit twice, and never mix a v5 chat-uikit-android into the tree (version_conflict — STOP).

Setup & credentials (essentials — full detail: references/setup-credentials.md)

  1. Detect the project AND pick the cohort — never guess. npx @cometchat/skills detect --json (or READ the gradle files). The signals are android_variant ∈ compose · views · mixed · unknown (both Groovy and Kotlin DSL): compose → use Compose, don't offer Views · views → use Views · mixed/unknown → ASK and WAIT (recommend Compose for greenfield). Announce the cohort and why before writing code — the cohorts are different artifacts that must not coexist, so it is the one choice the user cannot cheaply undo. If existing_cometchat is true, resolve version_conflict FIRST (v4/v5 kit present ⇒ STOP + offer cometchat-android-v6-migration). Decision table + signals: references/setup-credentials.md §1.
  2. Credentials — OFFER to fetch from the dashboard FIRST, never default to "paste it yourself": (a) load the CometChat CLI on demand (npx @cometchat/skills-cli@3 auth login, provision list --json → ask which app, provision use --app-id <id> --json); or (b) manual paste from Dashboard → Your App → Credentials. Ask & wait — never guess.
  3. Write app/src/main/assets/cometchat-settings.json (the file initFromSettings reads) and gitignore it:
json
{ "appId": "APP_ID", "region": "REGION", "credentials": { "authKey": "AUTH_KEY" },
  "uiKit": { "subscribePresenceForAllUsers": true, "enableCalling": false } }

⚠️ enableCalling: true and the calls artifact go together or not at all — the flag without com.cometchat:calls-sdk-android crashes the app at launch. Why and symptoms: docs getting-started-{kotlin,jetpack} + calling-integration. Leave the flag false in an app without calling.

appId + region required (else ERR_SETTINGS_INVALID); missing file → ERR_SETTINGS_FILE_NOT_FOUND. Auth Key is dev-only — omit it in release builds and log in with a server-minted token (cometchat-android-v6-production).

Integration ordering (BAKED — invariant)

Docs warning, verbatim: "init() must resolve before you call login(). Calling login() before init completes will fail silently."

kotlin
import com.cometchat.chat.core.CometChat
import com.cometchat.chat.exceptions.CometChatException
import com.cometchat.chat.models.User
import com.cometchat.uikit.core.CometChatUIKit

// initFromSettings reads assets/cometchat-settings.json, persists integrationSource="ai-agent"
// for telemetry attribution, and auto-inits the Calls SDK when uiKit.enableCalling is true.
// Do NOT default to the classic UIKitSettingsBuilder + init() — it loses attribution.
CometChatUIKit.initFromSettings(this, object : CometChat.CallbackListener<String>() {
    override fun onSuccess(result: String) {                     // init resolved — only now login
        if (CometChatUIKit.getLoggedInUser() == null) {
            CometChatUIKit.login(uid, object : CometChat.CallbackListener<User>() {
                // ⚠️ inside this object, `this` is the LISTENER, not the Activity — navigating
                // with `Intent(this, …)` does not compile. Qualify it: `this@YourActivity`.
                override fun onSuccess(user: User) {
                    startActivity(Intent(this@MainActivity, ConversationActivity::class.java)); finish()
                }
                override fun onError(e: CometChatException) { /* render an error state */ }
            })
        } else { /* session already live — unlock */ }
    }
    override fun onError(e: CometChatException?) { /* render an error state; do NOT open chat */ }
})

Init once (Application or a splash gate), never per Activity. Which UID? login() needs a user that ALREADY exists — never invent one; take it from Dashboard → Users (fresh apps seed cometchat-uid-1…). Prod → loginWithAuthToken. Detail: references/lifecycle.md.

Sizing — fill the parent, handle insets and the keyboard

The kit fills the box you give it — a collapsed surface is a HOST sizing defect, never a kit bug. Four invariants (full recipe: references/layout.md):

  • Fill: match_parent / 0dp+layout_weight (Views) — never wrap_content for a list or the chat surface.
  • Insets: enableEdgeToEdge() plus consuming the insets. enableEdgeToEdge() ALONE draws the kit under the status bar — the toolbar title then collides with the clock (verified on device). Give the layout root an id and pad it:
    kotlin
    ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.root)) { v, insets ->
        val bars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
        val ime  = insets.getInsets(WindowInsetsCompat.Type.ime())      // message screen only
        v.setPadding(bars.left, bars.top, bars.right, maxOf(bars.bottom, ime.bottom))
        insets
    }
  • Keyboard: windowSoftInputMode="adjustResize" (Views) so the composer stays visible while typing.
  • Embedded in a host you do NOT own (a tab, a fragment, someone else's container): set the listener on YOUR subtree root, not the Activity root, and skip enableEdgeToEdge() — the host owns the window. Still consume insets: skipping them because "the host owns it" puts the toolbar back under the clock.
  • No load-transition reflow: the surface is full-size from frame 1; the kit renders its own loading/empty state inside it.

Component / API map (BAKED closed list — from catalogs/android-v6.json)

The closed list of shipped components lives in references/component-props.md (and catalogs/android-v6.json is the oracle). Emit ONLY symbols that appear there.

Import paths

…kotlin.presentation.<area>.ui.<Component> — except the 3 calling components (no .ui) and formatters (…kotlin.shared.formatters.*). Full table: references/component-props.md.

Callback names — Views uses setOnX(...), Compose uses onX =

Same component, same intent, different wiring. Full signature table (verified vs 6.0.5): references/component-props.md § Callback shapes.

⚠️ Docs drift — trust references/component-props.md, not the docs pages for callback shapes (the 3-arg thread callback and setParentMessage on the list are both wrong upstream).

Golden path — the production-ready core surface (Kotlin XML Views)

The default for an unscoped "add chat". One screen per Activity with a real back stack — never a web-style two-pane split. Host Activities must be lifecycle-aware (AppCompatActivity/ComponentActivity/FragmentActivity) and manifest-registered.

kotlin
// ConversationActivity.kt — the list, wired to open the message screen
class ConversationActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_conversation)          // hosts CometChatConversations at match_parent

        val conversations = findViewById<CometChatConversations>(R.id.conversations)
        conversations.setTitle("Chats")
        conversations.setOnItemClick { conversation ->
            val intent = Intent(this, MessageActivity::class.java)
            when (val entity = conversation.conversationWith) {
                is User -> intent.putExtra("user", entity)
                is Group -> intent.putExtra("group", entity)
            }
            startActivity(intent)
        }
        conversations.setOnSearchClick { startActivity(Intent(this, SearchActivity::class.java)) }
    }
}
kotlin
// MessageActivity.kt — header + list + composer, all bound to the SAME target
class MessageActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_message)               // vertical LinearLayout, list = 0dp + weight 1

        val header = findViewById<CometChatMessageHeader>(R.id.message_header)
        val list = findViewById<CometChatMessageList>(R.id.message_list)
        val composer = findViewById<CometChatMessageComposer>(R.id.message_composer)

        val user = intent.getParcelableExtra<User>("user")
        val group = intent.getParcelableExtra<Group>("group")
        user?.let { header.setUser(it); list.setUser(it); composer.setUser(it) }
        group?.let { header.setGroup(it); list.setGroup(it); composer.setGroup(it) }

        header.setBackButtonVisibility(View.VISIBLE)   // the callback is inert without this
        header.setOnBackPress { finish() }
        list.setOnThreadRepliesClick { parent ->                 // ONE arg (verified vs 6.0.5)
            startActivity(Intent(this, ThreadActivity::class.java).apply {
                putExtra("raw_json", parent.rawMessage.toString())
                user?.let { putExtra("user", it) }; group?.let { putExtra("group", it) }
            })
        }
    }
}
Show full SKILL.md (608 more words)Show less
The core surface is FOUR things, not two

contracts.android-v6.json → core-chat-surface mandates all four by default; a list ↔ message screen is half the surface:

CapabilityComponentWire
conversationsCometChatConversationssetOnItemClick
messagesCometChatMessageHeader + List + ComposersetUser/setGroup + setOnBackPress
threaded repliesCometChatThreadHeadersetOnThreadRepliesClick → push a thread Activity
searchCometChatSearchsetOnSearchClick → push a search Activity (global), and the in-chat case scoped with setUid/setGuid

On Android both are pushed screens, not side panels. The callbacks above are only entry points — the pushed screens are where the mandated components render. Emit both, or the surface has tap targets that lead nowhere:

kotlin
// ThreadActivity.kt — what setOnThreadRepliesClick pushes to.
// header takes the parent MESSAGE; list + composer take the parent message ID (Long).
val parent = BaseMessage.processMessage(JSONObject(intent.getStringExtra("raw_json")!!))
threadHeader.setParentMessage(parent)
threadList.setParentMessageId(parent.id)
threadComposer.setParentMessageId(parent.id)
// the thread list/composer ALSO need the conversation target, or replies silently never send:
user?.let { threadList.setUser(it); threadComposer.setUser(it) }
group?.let { threadList.setGroup(it); threadComposer.setGroup(it) }
// CometChatThreadHeader is DISPLAY-ONLY (no callbacks) → renders no back control; the HOST owns it
// here. Give the screen a toolbar back action (or say plainly it relies on system back) — a thread
// with no way out is a dead end.

SearchScope is REQUIRED for setSearchIn and lives in com.cometchat.uikit.core.constants — import it explicitly; it is not re-exported from the component's package.

kotlin
// SearchActivity.kt — global search; for IN-CHAT search scope it to the open conversation.
val search = findViewById<CometChatSearch>(R.id.search)
search.setSearchIn(listOf(SearchScope.CONVERSATIONS, SearchScope.MESSAGES))
user?.let { search.setUid(it.uid) }                    // in-chat scoping (omit for global)
group?.let { search.setGuid(it.guid) }
// CometChatSearch renders its OWN back arrow — without this it is inert (wire-or-hide).
search.setOnBackPressListener { finish() }
// Results must GO somewhere, carrying the SAME "user"/"group" extras the message screen reads.
// Passing the Conversation/BaseMessage itself navigates but never calls setUser/setGroup, so the
// screen loads forever ("no User/Group was set" — references/troubleshooting.md).
search.setOnConversationClick { openChat(it.conversationWith) }   // already the OTHER party
search.setOnMessageClick { m ->
    // group → the group; 1:1 → whoever is NOT me
    openChat(if (m.receiverType == CometChatConstants.RECEIVER_TYPE_GROUP) m.receiver
             else if (m.sender.uid == CometChatUIKit.getLoggedInUser()?.uid) m.receiver else m.sender)
}
// same when(entity) the conversations tap uses above — never push a screen with no target
private fun openChat(e: AppEntity?) = when (e) {
    is User -> startActivity(Intent(this, MessageActivity::class.java).putExtra("user", e))
    is Group -> startActivity(Intent(this, MessageActivity::class.java).putExtra("group", e))
    else -> Unit
}

Reuse existing navigation/theme/auth; add files + wiring only. Leave header call buttons and composer attach/emoji/voice as built-in defaults. Do NOT add tabs / detail screens / call logs / incoming call (placement growths) or gated extensions/AI unless asked — the thread and search screens ARE the default.

Jetpack Compose cohort: the same four capabilities as composable params (onItemClick =, onBackPress =, onThreadRepliesClick =) inside a NavHost + Scaffold + imePadding(). Compose recipes SHIP — use cometchat-android-v6-compose-{components,placement,customization}; fall back to references/docs-map.md for long-tail params.

⚠️ Compose "Auto — follow OS" (the default theming) is a CORE obligation, NOT automatic. Unlike Views (CometChatTheme.DayNight) and iOS, the Compose kit ignores the device dark setting unless you wrap the gate + NavHost + every kit screen in CometChatTheme(colorScheme = if (isSystemInDarkTheme()) darkColorScheme() else lightColorScheme()){ … } (from com.cometchat.uikit.compose.theme.*) — no wrapper ⇒ light defaults (verified; RULES.md §Ordering-invariants). This bare follow-OS wrapper is core; brand tokens are cometchat-android-v6-compose-customization §Theming.

Deep references (load only when the task needs them)

  • references/setup-credentials.md — detect, cohort, version_conflict, the CLI credential fetch, the settings file, UID rules.
  • references/lifecycle.md — where to init, the login guard, auth-token prod path, logout, config changes.
  • references/layout.md — the ONE mobile sizing standard (fill · insets · IME · no reflow · scroll containment).
  • references/component-props.md — baked per-cohort signatures for the four drop-ins + the request-builder hooks.
  • references/docs-map.md — intent → the exact docs .md twin (component table + SDK section + task guides).
  • references/anti-patterns.md — the real-bug list (hardcoded creds, login-before-init, leaked listeners, wrap_content collapse, dead affordances, mixed cohorts).
  • references/troubleshooting.md — symptom → cause → fix, the first stop when an integration renders wrong.

Common pitfalls

version_conflict (a v5 chat-uikit-android in the tree) · both cohorts installed · minSdk below 28 · credentials hardcoded instead of the gitignored settings file · classic init() instead of initFromSettings · login (or UI) before init's onSuccess · wrap_content on the chat surface · composer hidden by the IME · thread screen missing the user/group target (replies never send) · trusting the 3-arg thread callback from the docs.

Verify it works

Build + run → logcat shows init onSuccess then login onSuccess → conversations renders full-size; tap a conversation → the message screen loads for that user/group and messages send/receive; "reply in thread" opens the thread screen and back returns; the search entry point opens a real search screen and returns; the composer stays visible with the keyboard open; system bars don't overlap header/composer. Blank/stuck ⇒ something rendered before init resolved, wrong Region, or the Cloudsmith repo is missing. Compile gate: ./gradlew :app:assembleDebug # in YOUR app.

Explain what you built (REQUIRED close)

Tell the user briefly: (1) what I wired (3–5 bullets, NAME the files); (2) decisions & why, flagging dev-only AS dev-only (Auth Key → server token for prod; the <uid>; the cohort); (3) what I did NOT touch (additive — navigation/auth/styles intact). Then offer these THREE options and WAIT — do NOT auto-continue:

  • ① Add another feature → check what's already wired, ASK which Dashboard extensions are enabled, suggest 3–4 gaps (calls · push · AI · notification feed · polls/stickers/translation). Never suggest reactions or mentions — ON by default in v6. → cometchat-android-v6-features / -calls / -push.
  • ② Customize theming → ask for brand color / light-dark / Material3 design system → cometchat-android-v6-{kotlin,compose}-customization.
  • ③ Test it manually → hand it back so they run it on a device.

© cometchat, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files (references) in skills/cometchat-android-v6-core of cometchat/cometchat-skills.

  • SKILL.md
  • references/anti-patterns.md
  • references/component-props.md
  • references/docs-map.md
  • references/layout.md
  • references/lifecycle.md
  • references/setup-credentials.md
  • references/troubleshooting.md

Open the folder on GitHubat commit 911b108

Compare with similar skills

Cometchat Android V6 Core next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Cometchat Android V6 Core compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cometchat Android V6 Core this skillcometchat/cometchat-skills130—~5.5kAutomated safety check: PassMIT
Jetpack Compose Expertaldefy/compose-skill596—~4.8kAutomated safety check: PassCustom licence
Compose Multiplatform Patternsmonta-app/ocpp-emulator1805 repos~2kAutomated safety check: PassApache-2.0
Android Developmentdpconde/claude-android-skill336—~1.7kAutomated safety check: PassMIT
Stylesarindamxd/camerax-android1324 repos~2.3kAutomated safety check: PassApache-2.0
Claude Android NinjaDrjacky/claude-android-ninja124—~5.2kAutomated safety check: PassApache-2.0

Similar skills

  • Jetpack Compose Expert

    aldefy/compose-skill

    Guides Jetpack Compose and Compose Multiplatform work across Android, Desktop, iOS and web, plus Android TV, Material 3 motion, paging, navigation and design-to-code.

    596 GitHub stars~4.8k tokensUpdated 2 mo ago
    MobileAuto-check passed
  • Compose Multiplatform Patterns

    monta-app/ocpp-emulator

    Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.

    180 GitHub starsUsed in 5 repos~2k tokens
    MobileAuto-check passed
  • Android Development

    dpconde/claude-android-skill

    Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices.

    336 GitHub stars~1.7k tokensUpdated 10 mo ago
    MobileAuto-check passed
  • Styles

    arindamxd/camerax-android

    A skill your agent uses to integrate the Jetpack Compose Styles API into an Android project.

    132 GitHub starsUsed in 4 repos~2.3k tokens
    MobileAuto-check passed
  • Claude Android Ninja

    Drjacky/claude-android-ninja

    Build and migrate Android apps with Kotlin, Jetpack Compose, MVVM, Hilt, Room 3 (KSP, SQLiteDriver, Flow/suspend DAOs), Navigation3, and multi-module Gradle.

    124 GitHub stars~5.2k tokensUpdated 8 days ago
    MobileAuto-check passed
  • Jetpack Compose

    darriousliu/PiPixiv

    Jetpack Compose expert skill for Android UI development. An agent skill from darriousliu/PiPixiv.

    262 GitHub stars~1.5k tokensUpdated today
    MobileAuto-check passed

More from cometchat/cometchat-skills

All 97 skills in this repo
  • CometChat Android Calls SDK v5

    cometchat/cometchat-skills

    Adds voice and video calling to an Android app in Kotlin with the headless CometChat Calls SDK v5, covering meeting-style rooms, 1:1 ringing calls, call logs and recording.

    130 GitHub stars~5.2k tokensUpdated 2 days ago
    Auto-check passed
  • CometChat Android v5 Headless SDK

    cometchat/cometchat-skills

    Builds chat on Android with your own UI against the headless CometChat Chat SDK v5, covering install, Jetifier conflicts, credentials and init-before-login ordering.

    130 GitHub stars~4k tokensUpdated 2 days ago
    Auto-check passed
  • CometChat Angular Component Picker

    cometchat/cometchat-skills

    Picks and customizes CometChat's Angular UI Kit components by their verified component list, exact input and output event names, and the surfaces that have no kit component at all.

    130 GitHub stars~2.6k tokensUpdated 2 days ago
    Auto-check passed
  • CometChat Angular Features

    cometchat/cometchat-skills

    Enables or builds CometChat features such as polls, reactions, smart replies and pinned messages in an Angular app, first classifying how much client code each one needs.

    130 GitHub stars~2.6k tokensUpdated 2 days ago
    Auto-check passed
  • CometChat Angular Chat Placement

    cometchat/cometchat-skills

    Decides where CometChat chat UI goes in an Angular app: a dedicated route, a dashboard panel, a support widget or the full multi-pane app, with thread and search panels.

    130 GitHub stars~2.2k tokensUpdated 2 days ago
    Auto-check passed
  • Cometchat iOS V5 SDK

    cometchat/cometchat-skills

    Add voice & video calling to any iOS app FROM SCRATCH with the headless CometChat Calls SDK v5 (CometChatCallsSDK, via Swift Package Manager) — no UI Kit.

    130 GitHub stars~5.2k tokensUpdated 2 days ago
    Auto-check passed

Categories

Questions about Cometchat Android V6 Core

What does Cometchat Android V6 Core do?

Foundational rules for the CometChat Android UI Kit v6 — the two UI cohorts and their artifacts, credentials via the gitignored assets settings file, initFromSettings → login → render ordering, the…. Cometchat Android V6 Core is an agent skill from cometchat/cometchat-skills. Foundational rules for the CometChat Android UI Kit v6 — the two UI cohorts and their artifacts, credentials via the gitignored assets settings file, initFromSettings → login → render ordering, the component map, and the production-ready core chat surface.

When should I use Cometchat Android V6 Core?

Cometchat Android V6 Core fits situations like: tasks that involve Android development; tasks that involve Design systems.

How do I install Cometchat Android V6 Core in Claude Code?

Run `npx skills add cometchat/cometchat-skills --skill cometchat-android-v6-core -a claude-code`. Or copy the skill folder (skills/cometchat-android-v6-core in cometchat/cometchat-skills) into .claude/skills/cometchat-android-v6-core in your project. Claude Code loads it when a task matches its description.

How do I install Cometchat Android V6 Core in Codex?

Run `npx skills add cometchat/cometchat-skills --skill cometchat-android-v6-core -a codex`. Or copy the skill folder (skills/cometchat-android-v6-core in cometchat/cometchat-skills) into .agents/skills/cometchat-android-v6-core in your project. Codex loads it when a task matches its description.

Can I use Cometchat Android V6 Core in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cometchat/cometchat-skills --skill cometchat-android-v6-core -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cometchat-android-v6-core, .gemini/skills/cometchat-android-v6-core, .github/skills/cometchat-android-v6-core and .opencode/skills/cometchat-android-v6-core in your project.

What does Cometchat Android V6 Core need to run?

Going by SKILL.md and its folder, Cometchat Android V6 Core needs the command-line tools its instructions call (npx) and credentials named AUTH_KEY. Our summary lists: Node.js; A credential in AUTH_KEY. Compatibility (from SKILL.md): Android minSdk >=28; compileSdk >=36; Kotlin >=2.1; AGP >=8.9.1; JVM target 11; com.cometchat:chatuikit-kotlin-android ^6 (XML Views) OR com.cometchat:chatuikit-compose-android ^6 (Jetpack Compose) — 6.0.x, verified 6.0.5; com.cometchat:chat-sdk-android ^5 (5.0.x); optional com.cometchat:calls-sdk-android ^5.

Does Cometchat Android V6 Core access the network?

SKILL.md names 2 domains. In commands or code: dl.cloudsmith.io; the agent is likely to contact it when it follows the instructions. As links in the text: cometchat.com. This is read from the text; nothing was executed.

Is Cometchat Android V6 Core safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Cometchat Android V6 Core use?

Cometchat Android V6 Core is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cometchat Android V6 Core use?

About 5.5k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 16k tokens, read only when the agent opens those files.

What are the alternatives to Cometchat Android V6 Core?

Skills that share tags, products or a category with Cometchat Android V6 Core: Jetpack Compose Expert (aldefy/compose-skill, 596 stars), Compose Multiplatform Patterns (monta-app/ocpp-emulator, 180 stars), Android Development (dpconde/claude-android-skill, 336 stars) and Styles (arindamxd/camerax-android, 132 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cometchat Android V6 Core?

cometchat (a GitHub organization) maintains it in cometchat/cometchat-skills, which has 130 GitHub stars. The repository holds 97 skills in this directory. The repository was last updated on October 5, 2026.

Source: cometchat/cometchat-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.