Rnn Codebase
wix/react-native-navigation
Navigate and work with the react-native-navigation (RNN) codebase.
Voice and video calling in the CometChat React Native UI Kit v5 — the RN calls SDK, the native permissions and version floors it needs, and why installing the package is itself the enable switch.
$ npx skills add cometchat/cometchat-skills --skill cometchat-react-native-calls -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cometchat/cometchat-skills cometchat-react-native-calls --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-calls .claude/skills/cometchat-react-native-calls && 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-calls" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-react-native-calls into .claude/skills/cometchat-react-native-calls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-react-native-calls", 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-callsType 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-calls -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cometchat/cometchat-skills cometchat-react-native-calls --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-calls .agents/skills/cometchat-react-native-calls && 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-calls" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-react-native-calls into .agents/skills/cometchat-react-native-calls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-react-native-calls", 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-calls -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cometchat/cometchat-skills cometchat-react-native-calls --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-calls .cursor/skills/cometchat-react-native-calls && 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-calls" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-react-native-calls into .cursor/skills/cometchat-react-native-calls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-react-native-calls", 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-calls--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-calls -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cometchat/cometchat-skills cometchat-react-native-calls --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-calls .gemini/skills/cometchat-react-native-calls && 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-calls" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-react-native-calls into .gemini/skills/cometchat-react-native-calls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-react-native-calls", 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-callsInstalls 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-calls -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-calls .github/skills/cometchat-react-native-calls && 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-calls" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-react-native-calls into .github/skills/cometchat-react-native-calls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-react-native-calls", 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-calls -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-calls --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-calls .opencode/skills/cometchat-react-native-calls && 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-calls" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-react-native-calls into .opencode/skills/cometchat-react-native-calls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-react-native-calls", 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-callsVoice and video calling in the CometChat React Native UI Kit v5 — the RN calls SDK, the native permissions and version floors it needs, and why installing the package is itself the enable switch.
Cometchat React Native Calls is an agent skill from cometchat/cometchat-skills. Voice and video calling in the CometChat React Native UI Kit v5 — the RN calls SDK, the native permissions and version floors it needs, and why installing the package is itself the enable switch. Triggers: add video calling React Native, CometChat voice call RN, incoming call screen RN, calls not ringing React Native, webrtc CometChat.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: React Native =0.77; @cometchat/chat-uikit-react-native ^5.4.0; @cometchat/calls-sdk-react-native ^5.0.4; Android minSdk 24; iOS 13.0
It sits in Mobile, covering Cross-platform mobile apps and Design systems. It works with CometChat, React Native, Android and iOS. 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.
6 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:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
React Native >=0.77; @cometchat/chat-uikit-react-native ^5.4.0; @cometchat/calls-sdk-react-native ^5.0.4; Android minSdk 24; iOS 13.0
From compatibility in the SKILL.md frontmatter.
Cometchat React Native Calls loads about 2.6k tokens when it runs. Until then it costs about 92 tokens; SKILL.md has 660 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 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.
The full file from cometchat/cometchat-skills at commit 911b108, republished under its MIT licence (© cometchat). 660 words, ~2,557 tokens.
.claude/skills/cometchat-react-native-calls/SKILL.md (or your agent's skills folder).Ground truth:
@cometchat/calls-sdk-react-native@5+ catalogrn-calls-v5.json(58 symbols) +features.rn-v5.json→voice-video-calls. Docs:/ui-kit/react-native/calling-integration·call-features·call-buttons·call-logs·incoming-call·outgoing-call.
cometchat-react-native-core — install, provider chain, init→login→render. Assumed, not repeated here.⚠️ React Native has its OWN calls SDK. @cometchat/calls-sdk-javascript is the web package and
will not work here.
npm install @cometchat/calls-sdk-react-native@5
# 6 REQUIRED peer deps — the SDK's declared peerDependencies. Versions are pinned; do NOT float them.
npm install @react-native-async-storage/async-storage@^2.1.2 react-native-background-timer@^2.4.1 \
react-native-performance@^5.1.2 react-native-svg@^15.12.0 react-native-url-polyfill@2.0.0 \
react-native-webrtc@124.0.7
# ⚠️ react-native-performance MUST stay 5.x — 6.x is published, and a floated `^6` makes every later
# `npm install` in the app fail with ERESOLVE. react-native-url-polyfill + react-native-performance
# are BUNDLE-critical: the UIKit does a module-scope require() of the calls SDK, so Metro resolves
# them even for a chat-only build — omit either and the bundle fails with "Unable to resolve module".
# (NOT react-native-community/netinfo or react-native-callstats — those are not declared peers.)
cd ios && pod install && cd .. # bare RN; Expo: npx expo run:iosInstalling the package IS the switch. The kit does a try { require("@cometchat/calls-sdk-react-native") }
at startup; if it resolves, calling is enabled automatically.
React's setCallingEnabled(true) does not exist in this kit — do not emit it. There is likewise no
opt-out on the initFromSettings golden path — the CometChatSettings file/object has no calling field,
and CometChatUIKit.initFromSettings() never reads one. disableCalling: true exists only as a field
on the UIKitSettings object you pass to the legacy CometChatUIKit.init(uiKitSettings) — so to disable
calling while the package stays installed you must switch to that init() entry point (or simply not
install the calls SDK).
Consequence worth knowing: a half-finished install (package added, pods not run) can leave calling "enabled" in JS while the native side is missing — which surfaces as a crash on first call rather than a clear error at startup.
| Platform | Requirement | Where |
|---|---|---|
| Android | minSdkVersion 24 | android/app/build.gradle |
| iOS | IPHONEOS_DEPLOYMENT_TARGET 13.0 | Xcode target or a Podfile post_install |
Bare RN — ios/<App>/Info.plist:
<key>NSCameraUsageDescription</key><string>Camera access for video calls</string>
<key>NSMicrophoneUsageDescription</key><string>Microphone access for voice/video calls</string>Android: CAMERA · RECORD_AUDIO · MODIFY_AUDIO_SETTINGS · BLUETOOTH_CONNECT (Android 12+, Bluetooth audio routing) in AndroidManifest.xml.
Expo — the same values go in app.json (ios.infoPlist, android.permissions), then rebuild.
Never hand-edit the generated native projects.
catalogs/rn-v5.json)| Component | Purpose |
|---|---|
CometChatCallButtons | audio/video triggers — the message header shows these by default |
CometChatIncomingCall | the ring screen — mount once above the navigator |
CometChatOutgoingCall | the dialling screen |
CometChatOngoingCall | the in-call surface (no React equivalent) |
CometChatCallLogs | call history list |
CometChatIncomingCall mounted inside one screen means calls only arrive while that screen is open —
the commonest "calls don't ring" cause after a missing permission.
The table above is not enough to copy — wire it:
// App.tsx — IncomingCall sits ABOVE the navigator so a call rings on any screen.
function App() {
const incomingCall = useRef<CometChat.Call | null>(null);
const [callReceived, setCallReceived] = useState(false);
useEffect(() => {
const listenerId = "APP_CALL_LISTENER";
CometChat.addCallListener(
listenerId,
new CometChat.CallListener({
onIncomingCallReceived: (call) => {
incomingCall.current = call;
setCallReceived(true);
},
onOutgoingCallRejected: () => setCallReceived(false),
onIncomingCallCancelled: () => setCallReceived(false),
}),
);
return () => CometChat.removeCallListener(listenerId); // or it fires after unmount
}, []);
return (
<GestureHandlerRootView style={{ flex: 1 }}>
<NavigationContainer>{/* … */}</NavigationContainer>
{callReceived && incomingCall.current ? (
<CometChatIncomingCall
call={incomingCall.current}
onDecline={() => { incomingCall.current = null; setCallReceived(false); }}
/>
) : null}
</GestureHandlerRootView>
);
}// Call triggers — the message header renders these by default; mount them yourself only
// when you build a custom header. onError is the ONLY callback: success is an event
// (ccOutgoingCall), not a promise.
<CometChatCallButtons user={user} group={group} onError={(e) => console.error(e)} />
// Dialling screen — driven by the Call object you created.
{call && <CometChatOutgoingCall call={call} />}
// Call history list. Detail screens do NOT ship (see below).
<CometChatCallLogs onItemPress={(log) => openCallDetail(log)} />// The in-call surface. sessionID comes from the accepted Call; callSettingsBuilder is a
// CometChatCalls builder, NOT a chat-SDK one.
<CometChatOngoingCall
sessionID={sessionId}
callSettingsBuilder={callSettings}
onError={(e) => console.error(e)}
/>DOCS GAP (RN-G15 — narrowed upstream, verified 2026-09-09):
CometChatOngoingCallis exported by the RN kit and is now listed on/ui-kit/react-native/call-features(the Components row), but it still has no dedicated props page — only Incoming / Outgoing / Buttons / Logs get their own pages. The fence above is a STOPGAP built from the kit's own types — replace it once a props page ships. Flagged for the docs team; do not conclude the component is unavailable on RN.
Kit v5 removed CometChatCallLogDetails / History / Participants / Recordings. For a custom detail
view, fetch the history yourself with the Calls-SDK CallLogRequestBuilder — a static on
CometChatCalls, reachable only from @cometchat/calls-sdk-react-native:
// Call history — CometChatCalls.CallLogRequestBuilder from the CALLS SDK.
// There is NO CallLogRequestBuilder on the Chat SDK (@cometchat/chat-sdk-react-native).
import { CometChat } from "@cometchat/chat-sdk-react-native";
import { CometChatCalls } from "@cometchat/calls-sdk-react-native";
// fetchNext() REJECTS without an auth token ("`Auth Token` is required") — no fallback. Pass the
// logged-in user's token, exactly as the kit's own CometChatCallLogs does.
const authToken = (await CometChat.getLoggedinUser())?.getAuthToken() ?? "";
const req = new CometChatCalls.CallLogRequestBuilder().setLimit(30).setAuthToken(authToken).build();
const logs = await req.fetchNext();
// Transcript opt-in — same builder + token. setHasTranscriptions(true) filters to transcribed calls
// AND makes the server attach each call's transcripts to the log.
const treq = new CometChatCalls.CallLogRequestBuilder().setLimit(30).setAuthToken(authToken).setHasTranscriptions(true).build();RN-G9 (verified 2026-09-10 vs
@cometchat/calls-sdk-react-native@5):CallLogRequestBuilderis a static onCometChatCalls(calls SDK) —new CometChatCalls.CallLogRequestBuilder(). It does not exist on the Chat SDK: there is noCometChat.CallLogRequestBuilderin@cometchat/chat-sdk-react-native(any version). Use the Calls-SDK builder for history, always with.setAuthToken(...)(without itfetchNext()rejects — verified in@cometchat/calls-sdk-react-native@5.0.5); addsetHasTranscriptions(true)only when you need transcripts. It is reachable as a static on the module, not as a bare named import.
Simulators and emulators cannot capture camera or microphone. A green simulator run proves the screens render, not that a call connects. Media, permissions and ringing must be checked on hardware.
setCallingEnabled(true) — does not exist; installation is the switch.CometChatIncomingCall inside a screen — calls only ring there.pod install / rebuild — crash on first call, not at startup.catalogs/rn-v5.json or catalogs/rn-calls-v5.json.npm run verify:fences:rn-v5 is green.© cometchat, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/cometchat-react-native-calls of cometchat/cometchat-skills.
Open the folder on GitHubat commit 911b108
Cometchat React Native Calls 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 Calls this skillcometchat/cometchat-skills | 129 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Rnn Codebasewix/react-native-navigation | 13k | — | ~2k | Automated safety check: Pass | MIT | |
| Expo Tailwind SetupCherryHQ/cherry-studio-app | 4k | 8 repos | ~3k | Automated safety check: Pass | MIT | |
| Screenmapaleqsio/screenmap | 239 | — | ~7.2k | Automated safety check: Pass | MIT | |
| Expo Brownfield Integrationmweinbach/agent-coworker | 156 | 2 repos | ~900 | Automated safety check: Notes | Custom licence | |
| Simulator Audio E2Ehyochan/react-native-nitro-sound | 961 | — | ~1.1k | Automated safety check: Pass | MIT |
wix/react-native-navigation
Navigate and work with the react-native-navigation (RNN) codebase.
CherryHQ/cherry-studio-app
Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling
aleqsio/screenmap
Generate a visual navigation map of an Expo / React Native or NativeScript app.
mweinbach/agent-coworker
Helps add Expo and React Native to an existing native iOS or Android app, and choose between a prebuilt AAR or XCFramework and a fully integrated build.
hyochan/react-native-nitro-sound
Build and run repeatable react-native-nitro-sound recorder/player regression tests on an iOS Simulator or Android emulator, with explicit virtual-device selection, microphone permission, Maestro…
gronxb/hot-updater
Automates interactions for iOS simulators/devices and Android emulators/devices.
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
Voice and video calling in the CometChat React Native UI Kit v5 — the RN calls SDK, the native permissions and version floors it needs, and why installing the package is itself the enable switch. Cometchat React Native Calls is an agent skill from cometchat/cometchat-skills. Voice and video calling in the CometChat React Native UI Kit v5 — the RN calls SDK, the native permissions and version floors it needs, and why installing the package is itself the enable switch.
Cometchat React Native Calls 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-calls -a claude-code`. Or copy the skill folder (skills/cometchat-react-native-calls in cometchat/cometchat-skills) into .claude/skills/cometchat-react-native-calls in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cometchat/cometchat-skills --skill cometchat-react-native-calls -a codex`. Or copy the skill folder (skills/cometchat-react-native-calls in cometchat/cometchat-skills) into .agents/skills/cometchat-react-native-calls 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-calls -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-calls, .gemini/skills/cometchat-react-native-calls, .github/skills/cometchat-react-native-calls and .opencode/skills/cometchat-react-native-calls in your project.
Going by SKILL.md and its folder, Cometchat React Native Calls needs the command-line tools its instructions call (npm). Our summary lists: Node.js. Compatibility (from SKILL.md): React Native >=0.77; @cometchat/chat-uikit-react-native ^5.4.0; @cometchat/calls-sdk-react-native ^5.0.4; Android minSdk 24; iOS 13.0.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Cometchat React Native Calls is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Cometchat React Native Calls: Rnn Codebase (wix/react-native-navigation, 13k stars), Expo Tailwind Setup (CherryHQ/cherry-studio-app, 4k stars), Screenmap (aleqsio/screenmap, 239 stars) and Expo Brownfield Integration (mweinbach/agent-coworker, 156 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.