Screenmap
aleqsio/screenmap
Generate a visual navigation map of an Expo / React Native or NativeScript app.
Foundational rules for the CometChat React Native UI Kit v5 — install and the exact native peer deps, the provider chain, init → login → render ordering, the component map, and the production-ready…
$ npx skills add cometchat/cometchat-skills --skill cometchat-react-native-core -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cometchat/cometchat-skills cometchat-react-native-core --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/cometchat/cometchat-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cometchat-react-native-core .claude/skills/cometchat-react-native-core && rm -rf skills-srcUse ~/.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/
Install the "cometchat-react-native-core" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-react-native-core into .claude/skills/cometchat-react-native-core/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-react-native-core", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-react-native-coreType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add cometchat/cometchat-skills --skill cometchat-react-native-core -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cometchat/cometchat-skills cometchat-react-native-core --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cometchat/cometchat-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cometchat-react-native-core .agents/skills/cometchat-react-native-core && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cometchat-react-native-core" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-react-native-core into .agents/skills/cometchat-react-native-core/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-react-native-core", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cometchat/cometchat-skills --skill cometchat-react-native-core -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cometchat/cometchat-skills cometchat-react-native-core --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cometchat/cometchat-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cometchat-react-native-core .cursor/skills/cometchat-react-native-core && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cometchat-react-native-core" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-react-native-core into .cursor/skills/cometchat-react-native-core/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-react-native-core", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/cometchat/cometchat-skills.git --path skills/cometchat-react-native-core--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add cometchat/cometchat-skills --skill cometchat-react-native-core -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cometchat/cometchat-skills cometchat-react-native-core --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cometchat/cometchat-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cometchat-react-native-core .gemini/skills/cometchat-react-native-core && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cometchat-react-native-core" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-react-native-core into .gemini/skills/cometchat-react-native-core/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-react-native-core", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install cometchat/cometchat-skills cometchat-react-native-coreInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add cometchat/cometchat-skills --skill cometchat-react-native-core -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cometchat/cometchat-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cometchat-react-native-core .github/skills/cometchat-react-native-core && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cometchat-react-native-core" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-react-native-core into .github/skills/cometchat-react-native-core/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-react-native-core", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cometchat/cometchat-skills --skill cometchat-react-native-core -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cometchat/cometchat-skills cometchat-react-native-core --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cometchat/cometchat-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cometchat-react-native-core .opencode/skills/cometchat-react-native-core && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cometchat-react-native-core" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-react-native-core into .opencode/skills/cometchat-react-native-core/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-react-native-core", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cometchat-react-native-coreFoundational rules for the CometChat React Native UI Kit v5 — install and the exact native peer deps, the provider chain, init → login → render ordering, the component map, and the production-ready…
Cometchat React Native Core is an agent skill from cometchat/cometchat-skills. Foundational rules for the CometChat React Native UI Kit v5 — install and the exact native peer deps, the provider chain, init → login → render ordering, the component map, and the production-ready core chat surface. Read this first for any React Native CometChat task. Triggers: add chat to my React Native app, CometChat React Native setup, Expo chat, RN chat UI kit, integrate CometChat RN, log out of chat RN, add a logout button, chat lifecycle React Native.
Its SKILL.md is about 4.6k 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/dependencies.md`). Compatibility notes: Node.js =18; React Native =0.77; @cometchat/chat-uikit-react-native ^5.4.0; @cometchat/chat-sdk-react-native ^4.0.28; optional…
It sits in Mobile, covering Cross-platform mobile apps and Design systems. It works with CometChat, React Native, Expo and React. 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.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 911b108. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
npmnpxtscxcrunadbFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
cometchat.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
AUTH_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Node.js >=18; React Native >=0.77; @cometchat/chat-uikit-react-native ^5.4.0; @cometchat/chat-sdk-react-native ^4.0.28; optional @cometchat/calls-sdk-react-native ^5.0.4
From compatibility in the SKILL.md frontmatter.
Cometchat React Native Core loads about 4.6k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 123 tokens; SKILL.md has 1,597 words of instructions outside code blocks.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
4. **Write env**: bare RN → `.env` (read via `react-native-config`); Expo → `.env` (read via `Constants.expoConfig.extraAutomated 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.
The full file from cometchat/cometchat-skills at commit 911b108, republished under its MIT licence (© cometchat). 1,597 words, ~4,582 tokens.
.claude/skills/cometchat-react-native-core/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Ground truth:
@cometchat/chat-uikit-react-native@5+ catalogrn-v5.json(216 public symbols) +features.rn-v5.json. Official docs: https://www.cometchat.com/docs/ui-kit/react-native/overview · scoped index…/ui-kit/react-native/llms-react-native-v5.md. Verify every symbol against the catalog; fetch signatures from docs (references/docs-map.md); never trust memory.⚠️ React Native is NOT React. Different package, different API, native views instead of DOM. A React UI Kit snippet will not compile here.
references/docs-map.mdends with the verified React → React Native name table — read it before porting anything.
cometchat-react-native-* skillOne package per platform. Never mix @cometchat/chat-uikit-react (web) into an RN app.
npm install @cometchat/chat-uikit-react-native@5 @cometchat/chat-sdk-react-native@4Then the native peer deps — required, not optional. Verified against 5.4.0 + the integration pages:
npm install @react-native-clipboard/clipboard \
react-native-gesture-handler react-native-svg react-native-video react-native-localize \
react-native-safe-area-context @react-native-async-storage/async-storage@^2.1.2 dayjs
# Expo also needs: punycodecd ios && pod install for bare RN. A missing native module fails at MOUNT, not at build — the
error names a NativeModule, not CometChat, so it reads as unrelated.
⚠️ React Native >= 0.87: RN removed InteractionManager from core and the kit (through 5.5.0)
still calls it in the composer's iOS send path, so sending a message throws on iOS — it builds,
typechecks and bundles clean. Fix and shim: cometchat-react-native-troubleshooting -> Sending a
message throws on iOS.
references/setup-credentials.md)app.json/app.config.js) or bare RN (metro.config.js). Reuse an existing .cometchat/config.json or env if present — skip re-setup.@cometchat/chat-uikit-react-native is already in package.json at a non-v5 major; reconcile first, never mix majors (RULES.md).npx @cometchat/skills-cli@3 auth login, pick an EXISTING app (provision list --json; never auto-create), provision use --app-id <id> --json writes .cometchat/config.json; (b) manual paste from Dashboard → Credentials (dev-only Auth Key). Then the SKILL writes the env (§4) — the CLI stops at the fetch; env-writing and codegen are the SKILL's job. Full flow: references/setup-credentials.md..env (read via react-native-config); Expo → .env (read via Constants.expoConfig.extra or process.env). Gitignore it; never echo the Auth Key. Prod → server-minted auth token, not the Auth Key. Nothing in a mobile bundle is secret (IPA/APK are readable) — see references/setup-credentials.md.initFromSettings then login both resolve; auth error is almost always the wrong Region.init() must resolve before login(). login() must resolve before you render any component.
Breaking it gives a blank screen, not an error.
Use initFromSettings, not the classic init — it persists integrationSource="ai-agent"
so CometChat can attribute the integration. The classic init does not (AUDIT-084), and a machine
gate enforces this.
import { CometChatUIKit } from "@cometchat/chat-uikit-react-native";
import { CometChat } from "@cometchat/chat-sdk-react-native";
const settings: CometChat.CometChatSettings = {
appId: APP_ID,
region: REGION,
credentials: { authKey: AUTH_KEY }, // dev only — production mints an auth token server-side
chatSDK: {
presenceSubscription: { type: "ALL_USERS" },
autoEstablishSocketConnection: true,
},
};
await CometChatUIKit.initFromSettings(settings);
await CometChatUIKit.login({ uid: UID }); // or ({ authToken }) in productionNote the shape: presence moves into chatSDK.presenceSubscription.type — it is not a
top-level field and not a builder call.
⚠️ Two shapes that differ from React and will not compile if ported:
UIKitSettingsBuilder export in RNlogin takes an object: login({ uid }), not login(uid)Use an existing UID from your dashboard (the sample apps seed cometchat-uid-1). Never invent one.
Outermost first. Verified against the integration + recipe pages:
<GestureHandlerRootView style={{ flex: 1 }}>
<SafeAreaProvider>
<CometChatI18nProvider>
<SafeAreaView style={{ flex: 1 }}>
<CometChatThemeProvider>
{/* screens */}
</CometChatThemeProvider>
</SafeAreaView>
</CometChatI18nProvider>
</SafeAreaProvider>
</GestureHandlerRootView>GestureHandlerRootView is outermost and must carry flex: 1. Omit it and swipe / long-press
silently do nothing — no error, no warning. It is the single most common "the UI renders but nothing
responds" cause on RN.
There is no 100dvh and no CSS. The rule: every ancestor of a kit component is flex: 1, and a
scrolling column also needs minHeight: 0. A fixed pixel height breaks when the soft keyboard opens.
The composer must remain visible with the keyboard up — verify on a device, not only a simulator.
catalogs/rn-v5.json)| Need | Component |
|---|---|
| conversation list | CometChatConversations |
| message pane | CometChatMessageHeader · CometChatMessageList · CometChatMessageComposer |
| compact composer | CometChatCompactMessageComposer |
| threads | CometChatThreadHeader |
| search | CometChatSearch |
| users / groups / members | CometChatUsers · CometChatGroups · CometChatGroupMembers |
| calls | CometChatCallButtons · CometChatIncomingCall · CometChatOutgoingCall · CometChatOngoingCall · CometChatCallLogs |
| theming / i18n | CometChatThemeProvider + useTheme() · CometChatI18nProvider |
| extension chain | ChatConfigurator + DataSourceDecorator |
Anything not in catalogs/rn-v5.json does not exist — do not emit it. Notably absent in v5:
CometChatErrorBoundary, CometChatDetails, CometChatAddMembers, CometChatBannedMembers,
CometChatTransferOwnership, and every *WithMessages composite. See references/docs-map.md
for the SDK-fallback path for each.
Press, not Click| Component | Wire these |
|---|---|
CometChatConversations | onItemPress · onSearchBarClicked · onError |
CometChatMessageList | onThreadRepliesPress · onError |
CometChatMessageHeader | showBackButton (default false) + onBack · onError |
CometChatSearch | onBack · onConversationClicked · onMessageClicked |
React's onItemClick / onThreadRepliesClick do not exist here.
⚠️ On
CometChatGroupMembers,onErrortakes NO argument in kits up to 5.5.0 —onError?: () => void, unlike every other list. Type the handler with a parameter there and it fails with TS2322. WriteonError={() => …}and show the failure with theErrorViewslot, which needs no error object. Fixed in the kit (uikit-react-native#1452); once that ships, the parameter is available and this note goes away.
The default for an unscoped "add chat". One screen per route on a stack navigator with a real back button — never two panes side by side, and never a web-style side panel.
// ChatScreen.tsx — the message pane
import {
CometChatMessageHeader, CometChatMessageList, CometChatMessageComposer,
} from "@cometchat/chat-uikit-react-native";
import { CometChat } from "@cometchat/chat-sdk-react-native";
import { View } from "react-native";
export const ChatScreen = ({ user, group, onBack }: {
user?: CometChat.User; group?: CometChat.Group; onBack: () => void;
}) => (
<View style={{ flex: 1 }}>
{/* showBackButton defaults to FALSE on RN — without it onBack never fires */}
<CometChatMessageHeader user={user} group={group} showBackButton onBack={onBack} />
<CometChatMessageList user={user} group={group} />
<CometChatMessageComposer user={user} group={group} />
</View>
);// ConversationsScreen.tsx — the list, wired to open the pane
import { CometChatConversations, CometChatUiKitConstants } from "@cometchat/chat-uikit-react-native";
import { CometChat } from "@cometchat/chat-sdk-react-native";
export const ConversationsScreen = ({ onOpen }: {
onOpen: (user?: CometChat.User, group?: CometChat.Group) => void;
}) => (
<CometChatConversations
onItemPress={(conversation: CometChat.Conversation) => {
const isUser =
conversation.getConversationType() ===
CometChatUiKitConstants.ConversationTypeConstants.user;
isUser
? onOpen(conversation.getConversationWith() as CometChat.User, undefined)
: onOpen(undefined, conversation.getConversationWith() as CometChat.Group);
}}
/>
);contracts.rn-v5.json → core-chat-surface mandates all four by default, and the reviewer's G1
gate fails an emit that ships fewer. A list ↔ message pane is half the surface:
| Capability | Component | Wire |
|---|---|---|
| conversations | CometChatConversations | onItemPress |
| messages | CometChatMessageHeader + List + Composer | showBackButton + onBack |
| threaded replies | CometChatThreadHeader | onThreadRepliesPress → push a thread screen |
| search | CometChatSearch | showSearchBar={true} + onSearchBarClicked → push a search screen |
On RN both are pushed screens, not side panels. Search is opt-out only, and must cover the global (list) case and the in-chat case scoped to the open conversation.
// message pane — thread entry point
<CometChatMessageList
user={user}
group={group}
onThreadRepliesPress={(message) => openThread(message)}
/>
// conversation list — search entry point.
// showSearchBar defaults to FALSE on RN (it is true on React), so the callback alone
// silently ships a surface with no search. Both props, always.
<CometChatConversations
onItemPress={open}
showSearchBar={true}
onSearchBarClicked={() => openSearch()}
/>The callbacks above are only the entry points. openThread and openSearch push screens, and
those screens are where the two mandated components actually render — emit both, or the surface
has tap targets that lead nowhere:
// ThreadScreen — what openThread(message) pushes to.
// parentMessageId is typed `string` on the list and `string | number` on the composer,
// so the list needs .toString().
function ThreadScreen({ route, navigation }) {
const { parentMessage, user, group } = route.params;
return (
<View style={{ flex: 1, minHeight: 0 }}>
<CometChatThreadHeader parentMessage={parentMessage} />
<CometChatMessageList
user={user}
group={group}
parentMessageId={parentMessage.getId().toString()}
/>
<CometChatMessageComposer
user={user}
group={group}
parentMessageId={parentMessage.getId()}
/>
</View>
);
}// SearchScreen — what openSearch() pushes to.
// Omit uid/guid for the GLOBAL case (from the conversation list); pass one to scope the
// search to the open conversation. Both cases are mandated — one screen serves both.
function SearchScreen({ route, navigation }) {
const { user, group } = route.params ?? {};
return (
<CometChatSearch
onBack={() => navigation.goBack()}
uid={user?.getUid()}
guid={group?.getGuid()}
onConversationClicked={(conversation) => navigation.navigate("Messages", { conversation })}
onMessageClicked={(message) => navigation.navigate("Messages", { message })}
onError={(e) => console.error(e)}
/>
);
}Search:
CometChatSearchis documented at{DOCS_BASE}/ui-kit/react-native/search(fetch it viareferences/docs-map.md); wireonConversationClicked/onMessageClickedand itsonBack. (Formerly tracked as gap RN-G1 — the page has since been published.)
Every affordance that is visible by default is wired or hidden. A tap target that does nothing is
a defect, and so is an opened surface with no way back — if you open search or a thread, wire its
onBack in the same edit.
references/docs-map.md — intent → the exact docs page; the SDK-fallback table; the React→RN name table. Read before porting any React snippet.references/component-props.md — baked props + PascalCase view slots per drop-in, and the defaults that differ from React (showSearchBar is false here). Read before placing custom UI — it goes in a slot, never as a sibling.references/anti-patterns.md — the 13 failures that actually break an RN integration, each with why its error names the wrong thing.references/lifecycle.md — initFromSettings → login → render, and the promise-cached boot guard (a boolean flag does not work).references/layout.md — the four sizing invariants the core-chat-surface contract gates on.references/dependencies.md — the exact peer set + the native config that is not optional (Podfile modular headers, gesture-handler import order).references/setup-credentials.md — dev vs production auth, and why nothing in a mobile bundle is secret.GestureHandlerRootView — gestures silently dead. Outermost, flex: 1.login() resolves — blank screen, no error.UIKitSettingsBuilder, login(uid), onItemClick, CSS, document.*: none exist here.flex: 1 + minHeight: 0.catalogs/rn-v5.json.npm run verify:fences:rn-v5.npm run verify:sync:rn-v5.tsc --noEmit in the APP is not clean, and that is not the app's bug. The kit ships raw
src/*.tsx as its main/module with no built declarations, so TypeScript follows the import and
typechecks the kit itself (NodeJS namespace, implicit any, isolatedModules re-exports,
User | null, and on RN 0.87 a RefObject<TextInputType> mismatch). Gate on the Metro bundle
instead — npx react-native bundle --platform ios|android --dev false --entry-file index.js --bundle-output /dev/null — and if you want a typecheck, filter the kit's own files out of the
output. Never "fix" node_modules, and never report the app as failing typecheck because of them.Invariant Violation: TurboModuleRegistry.getEnforcing('PlatformConstants') — a version
mismatch that reads like a missing native module. iOS: point the app at your packager with
xcrun simctl spawn <udid> defaults write <bundle-id> RCT_jsLocation "localhost:<port>"
(RCT_METRO_PORT does not change the runtime URL). Android: adb reverse tcp:8081 tcp:<port>, and
when that silently does nothing — it does on some emulators — embed the bundle instead:
npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res, then
run-android. Remove that file before going back to Fast Refresh.Tell the user briefly: (1) what I wired (3–5 bullets, NAME the files); (2) decisions & why, flagging dev-only AS dev-only (the Auth Key is dev-only → server-minted auth token for production; the <uid> you used; Expo vs bare RN path); (3) what I did NOT touch (additive — navigation/auth/styles intact). Then offer these THREE options as a selectable choice and WAIT — do not auto-continue:
cometchat-react-native-features / cometchat-react-native-calls / cometchat-react-native-push.cometchat-react-native-customization.© cometchat, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files (references) in skills/cometchat-react-native-core of cometchat/cometchat-skills.
Open the folder on GitHubat commit 911b108
Cometchat React Native 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cometchat React Native Core this skillcometchat/cometchat-skills | 129 | — | ~4.6k | Automated safety check: Notes | MIT | |
| Screenmapaleqsio/screenmap | 239 | — | ~7.2k | Automated safety check: Pass | MIT | |
| ThemingCode-with-Beto/skills | 141 | — | ~2.5k | Automated safety check: Pass | None | |
| Fishjam React Native Clientsoftware-mansion-labs/skills | 291 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Expo Design Systempproenca/dot-skills | 214 | — | ~3.5k | Automated safety check: Pass | MIT | |
| React Native ExpoMicrock/ordinary-claude-skills | 401 | — | ~6.3k | Automated safety check: Pass | Custom licence |
aleqsio/screenmap
Generate a visual navigation map of an Expo / React Native or NativeScript app.
Code-with-Beto/skills
Scaffold a unified, cross-platform color theme system into an Expo Router app.
software-mansion-labs/skills
React Native / Expo SDK for Fishjam — video/audio streaming on iOS and Android.
pproenca/dot-skills
Airbnb-DLS-aligned design system engineering for Expo / React Native apps targeting both web and native iOS, built on Unistyles v3, Reanimated, Skia, and FlashList.
Microck/ordinary-claude-skills
Build React Native 0.76+ apps with Expo SDK 52. An agent skill from Microck/ordinary-claude-skills.
Ohh-889/skyroc
Uniwind — Tailwind CSS v4 styling for React Native. An agent skill from Ohh-889/skyroc.
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.
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.
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.
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.
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.
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.
Works with
Categories
Foundational rules for the CometChat React Native UI Kit v5 — install and the exact native peer deps, the provider chain, init → login → render ordering, the component map, and the production-ready…. Cometchat React Native Core is an agent skill from cometchat/cometchat-skills. Foundational rules for the CometChat React Native UI Kit v5 — install and the exact native peer deps, the provider chain, init → login → render ordering, the component map, and the production-ready core chat surface.
Cometchat React Native Core fits situations like: tasks that involve Cross-platform mobile apps; tasks that involve Design systems.
Run `npx skills add cometchat/cometchat-skills --skill cometchat-react-native-core -a claude-code`. Or copy the skill folder (skills/cometchat-react-native-core in cometchat/cometchat-skills) into .claude/skills/cometchat-react-native-core in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cometchat/cometchat-skills --skill cometchat-react-native-core -a codex`. Or copy the skill folder (skills/cometchat-react-native-core in cometchat/cometchat-skills) into .agents/skills/cometchat-react-native-core in your project. Codex loads it when a task matches its description.
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-react-native-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-react-native-core, .gemini/skills/cometchat-react-native-core, .github/skills/cometchat-react-native-core and .opencode/skills/cometchat-react-native-core in your project.
Going by SKILL.md and its folder, Cometchat React Native Core needs the command-line tools its instructions call (npm, npx, tsc, xcrun and adb) and credentials named AUTH_KEY. Our summary lists: Node.js; A credential in AUTH_KEY. Compatibility (from SKILL.md): Node.js >=18; React Native >=0.77; @cometchat/chat-uikit-react-native ^5.4.0; @cometchat/chat-sdk-react-native ^4.0.28; optional @cometchat/calls-sdk-react-native ^5.0.4.
SKILL.md names 1 domain. As links in the text: cometchat.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Cometchat React Native Core is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.6k tokens (SKILL.md is roughly 18k 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 7.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Cometchat React Native Core: Screenmap (aleqsio/screenmap, 239 stars), Theming (Code-with-Beto/skills, 141 stars), Fishjam React Native Client (software-mansion-labs/skills, 291 stars) and Expo Design System (pproenca/dot-skills, 214 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cometchat (a GitHub organization) maintains it in cometchat/cometchat-skills, which has 129 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.