Screenmap
aleqsio/screenmap
Generate a visual navigation map of an Expo / React Native or NativeScript app.
Migrate an app from Sendbird to CometChat end-to-end in ONE prompt, on any platform in this pack (React, Angular, React Native/Expo, iOS, Android, Flutter).
$ npx skills add cometchat/cometchat-skills --skill cometchat-migrate-from-sendbird -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cometchat/cometchat-skills cometchat-migrate-from-sendbird --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-migrate-from-sendbird .claude/skills/cometchat-migrate-from-sendbird && 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-migrate-from-sendbird" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-migrate-from-sendbird into .claude/skills/cometchat-migrate-from-sendbird/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-migrate-from-sendbird", 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-migrate-from-sendbirdType 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-migrate-from-sendbird -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cometchat/cometchat-skills cometchat-migrate-from-sendbird --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-migrate-from-sendbird .agents/skills/cometchat-migrate-from-sendbird && 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-migrate-from-sendbird" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-migrate-from-sendbird into .agents/skills/cometchat-migrate-from-sendbird/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-migrate-from-sendbird", 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-migrate-from-sendbird -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cometchat/cometchat-skills cometchat-migrate-from-sendbird --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-migrate-from-sendbird .cursor/skills/cometchat-migrate-from-sendbird && 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-migrate-from-sendbird" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-migrate-from-sendbird into .cursor/skills/cometchat-migrate-from-sendbird/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-migrate-from-sendbird", 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-migrate-from-sendbird--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-migrate-from-sendbird -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cometchat/cometchat-skills cometchat-migrate-from-sendbird --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-migrate-from-sendbird .gemini/skills/cometchat-migrate-from-sendbird && 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-migrate-from-sendbird" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-migrate-from-sendbird into .gemini/skills/cometchat-migrate-from-sendbird/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-migrate-from-sendbird", 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-migrate-from-sendbirdInstalls 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-migrate-from-sendbird -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-migrate-from-sendbird .github/skills/cometchat-migrate-from-sendbird && 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-migrate-from-sendbird" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-migrate-from-sendbird into .github/skills/cometchat-migrate-from-sendbird/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-migrate-from-sendbird", 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-migrate-from-sendbird -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-migrate-from-sendbird --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-migrate-from-sendbird .opencode/skills/cometchat-migrate-from-sendbird && 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-migrate-from-sendbird" agent skill from https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-migrate-from-sendbird into .opencode/skills/cometchat-migrate-from-sendbird/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cometchat-migrate-from-sendbird", 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-migrate-from-sendbirdMigrate an app from Sendbird to CometChat end-to-end in ONE prompt, on any platform in this pack (React, Angular, React Native/Expo, iOS, Android, Flutter).
Cometchat Migrate From Sendbird is an agent skill from cometchat/cometchat-skills. Migrate an app from Sendbird to CometChat end-to-end in ONE prompt, on any platform in this pack (React, Angular, React Native/Expo, iOS, Android, Flutter). Inventories every Sendbird usage (Chat SDK v3/v4, UIKit, Calls, Desk, push, server Platform API, webhooks), swaps each supported feature for its CometChat equivalent, REMOVES features CometChat has no equivalent for (code, UI, deps), writes a data-migration script for users/groups/history, uninstalls Sendbird, verifies the build, and ends with a report…
Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `references/concept-map.md`, `references/data-migration.md` and `references/data-only.md`). Compatibility notes: FROM Sendbird Chat SDK v3 (sendbird) / v4 (@sendbird/chat, SendbirdChatSDK, com.sendbird.sdk, sendbirdchatsdk), Sendbird UIKit (React, React Native, iOS…
It sits in Mobile, covering Cross-platform mobile apps, Webhooks and Database migrations. It works with CometChat, Angular, Expo and Flutter. 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.
11 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:
gitnpxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
cometchat.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SENDBIRD_API_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
FROM Sendbird Chat SDK v3 (`sendbird`) / v4 (`@sendbird/chat`, SendbirdChatSDK, com.sendbird.sdk, sendbird_chat_sdk), Sendbird UIKit (React, React Native, iOS UIKit/SwiftUI, Android Views/Compose, Flutter), Sendbird Calls → TO the CometChat family this pack detects (peers.yaml): React UI Kit v7, Angular v5, React Native v5, iOS v5, Android v6, Flutter v6, plus the headless Chat/Calls SDKs. Node >=18 for the data-migration script.
From compatibility in the SKILL.md frontmatter.
Cometchat Migrate From Sendbird loads about 5.2k tokens when it runs, and up to ~18k if it reads all its reference files. Until then it costs about 237 tokens; SKILL.md has 2,783 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.
variant the framework reads (Vite/Next `.env.local`, Android `local.properties`, …) and keep placeholders in the trackeAutomated 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). 2,783 words, ~5,237 tokens.
.claude/skills/cometchat-migrate-from-sendbird/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Ground truth: the SENDBIRD side (what to look for) is baked in
references/inventory.md+references/feature-map.md— confirm each hit by reading the user's code. The COMETCHAT side is never from memory: symbols come from the target family's skills + catalog, feature existence from that family'sfeatures.json, signatures from the docs via the family's-core/references/docs-map.md(Docs MCP first —RULES.md→ Fetch discipline). REST pages live underDOCS_BASE=https://www.cometchat.com/docs.
cometchat-<family>-core — the init → login → render the migrated app lands on. <family> is resolved in step 1; this skill ASSUMES that core and never restates its code.cometchat-<family>-components / -features / -calls / -push / -customization — pulled in only for the Sendbird features the inventory finds.The user asks to move an app off Sendbird: "migrate my app from Sendbird to CometChat", "replace Sendbird", "switch to CometChat", or "migrate my app to CometChat" when npx @cometchat/skills detect --json reports migrate_from with vendor sendbird. Stream/GetStream apps → cometchat-migrate-from-getstream. An app with BOTH vendors: run both skills, one after the other, into one report.
Data only ("migrate only my data", "import my Sendbird users and messages", "don't change my code", or the app already runs on CometChat) → follow references/data-only.md INSTEAD of the workflow below: it writes and runs the data script and changes nothing else.
The migration request IS the approval (RULES.md → Competitor migration). Run every step below to the end in this one turn:
git switch -c cometchat-migration (carries any uncommitted work along; mention that in the report). Never commit, push, or rewrite history. No git → proceed and say so in the report.RULES.md's append-never-replace does not protect Sendbird code. It still protects everything else: touch non-chat code only to rewire it..cometchat/config.json or existing CometChat env values if present; otherwise write the family's env/settings file with clearly-named placeholders so the build still compiles, and make "add your CometChat credentials" action item #1. Never write a real key into a git-tracked file: check git ls-files <file> first. If the file is tracked, put real values in the untracked local variant the framework reads (Vite/Next .env.local, Android local.properties, …) and keep placeholders in the tracked file. Adding a tracked file to .gitignore does NOT untrack it. The server's REST API key only ever goes into an untracked file or the hosting env.cometchat; (2) the app's platform has no family in this pack (Vue, Unity, .NET, …) → deliver the inventory + feature map as the report, change nothing; (3) the build was already failing before you started → record the pre-existing errors, migrate anyway, and label them as pre-existing.Every step applies to every app, however small: a 3-file sample still has vendor users and history, so steps 4 (toCometChatId) and 8 (data script) are ALWAYS delivered. Only a step whose subject truly doesn't exist (no server → step 7) may be skipped, and it's listed under Defaults taken as skipped: <why>. A silent skip is a failed migration.
npx @cometchat/skills detect --json → framework, android_variant, existing_cometchat, migrate_from. Resolve <family> exactly like the router (peers.yaml dir_prefix; per-platform targets in references/inventory.md §Target family). Monorepo: migrate every package that uses Sendbird, including the server. existing_cometchat: true + Sendbird still present = a half-finished migration: resume it, don't redo it. Read .cometchat/config.json if it exists: its appId/region/authKey are THE credentials. Write them into the family's untracked env/settings file (single-prompt contract), never ask. Before editing anything, run the app's build once and record whether it passed.references/inventory.md (packages, imports, init/connect, UIKit components, handlers, collections, push registration, Calls, Desk, env vars, server Platform API calls, webhooks, tests/mocks). Record every hit as file:line → what it does. Classify the app: UIKit mode (Sendbird UIKit renders the chat) → the family's CometChat UI Kit replaces it; SDK mode (own UI on the Sendbird Chat SDK) → KEEP the app's UI and port its data layer to the family's CometChat Chat SDK; mixed → both.references/feature-map.md, then check the listed CometChat id in the TARGET family's features.json. Present → migrate. Absent → check BOTH levels — UI Kit (search_cometchat_docs "<feature> <platform> ui kit") AND Chat SDK/REST (… SDK); documented at either → migrate (no UI Kit drop-in is NOT unsupported), built with the SDK method in the app's own UI (RULES.md → UI Kit first, SDK fallback). Mark UNSUPPORTED only when NEITHER has it — and an empty MCP search is NOT proof: follow the verification ladder (re-query with CometChat vocabulary → live-fetch the likely docs page → cross-check the family CATALOG) in references/feature-map.md §Deciding unsupported, before any REMOVE. Never call a feature unsupported from memory or invent an API; if it truly can't be verified, KEEP it as needs-verification. Every UNSUPPORTED row needs evidence in the report — the features.json result + the exact UI Kit AND SDK queries you ran.cometchat-<family>-core (its install, initFromSettings, login gate, render order, env file). Identity: the CometChat UID is the app's existing Sendbird user ID passed through ONE shared toCometChatId() (references/concept-map.md §IDs) — used by the client login, the server token endpoint, AND the data script, so all three agree. Login: the app minted Sendbird session/access tokens on a server → migrate that endpoint (step 7) and use the auth-token login; the app connected with only a user ID → Auth Key login (dev only) + an action item to switch to tokens before production. Keep every identity source, in the same order: whatever decides the current user today (URL params, env vars like VITE_USER_ID, the auth provider, a stored ID, a demo fallback) still decides it after the migration. Only the Sendbird-token-derived path becomes the CometChat auth token. Dropping one silently logs a configured deployment in as someone else. NEVER replace a seeded identity with a placeholder. If the app ships a concrete default user (default_user_id/USER_ID/a demo fallback in strings, env or constants), that exact value STAYS — pass it through toCometChatId(), do not overwrite it with cometchat-uid-1, Cometchat User 1 or any YOUR_* stand-in. The core skill's placeholder UID is for an app that has NO identity yet; an app being migrated always has one. Getting this wrong is silent: the build passes, the app launches, and every migrated user signs in as a stranger with an empty inbox while the data script imported their history under their real id. Before you finish, diff every identity default you touched against its pre-migration value and confirm it is unchanged. Returning users: the app already persists who is signed in (localStorage, keychain, prefs, a cookie) from the vendor era. Gate the chat on CometChat's logged-in user, NOT that cached ID. On start, a stored ID with no CometChat session → run the same login path before rendering any CometChat component; if that fails → the sign-in screen. Otherwise every user who was signed in before the upgrade lands on a broken chat. No UI Kit family for this app? A headless / vanilla-JS app that draws its own UI on SendbirdChat / sendbird (no framework the pack ships a UI Kit for) has no -core to wire — do NOT stop. Install the CometChat Chat SDK for the platform (web → @cometchat/chat-sdk-javascript) and migrate the data layer straight onto it, taking every method from the SDK docs (/sdk/<platform>/*). Keep the app's own UI; there is no UI Kit to install. This is client/SDK mode with no framework core — the concept map's SDK/client-mode section still applies.references/concept-map.md: Sendbird init/connect → CometChat init/login; channel list → conversations; group channel / 1:1 distinct channel → group / user conversation; handlers → listeners (remove them on unmount); message send/receive/edit/delete/threads → the core + -features skill; UIKit screens → the family's components (-components/-placement); theme/string sets → -customization; Calls → -calls (or the headless calls peer); push → -push. Remove each Sendbird import as you replace its last use. Both modes fetch from docs only: UI Kit component props AND SDK method signatures come from the live docs (the family core's docs-map.md), verified against the catalog — never written from memory or ported from the vendor's API shape./rest-api/auth-tokens, REST API key from server env only). Map Sendbird webhooks to CometChat webhooks (/rest-api/management-apis/webhooks/overview); drop or list any event with no equivalent. Replace other Platform API calls with CometChat REST, or remove + list them (step 6).scripts/cometchat-migration/ per references/data-migration.md: export users, channels, members and messages from the Sendbird Platform API → transform with the same toCometChatId() → import through the CometChat Data Import API. When the code migration is done, tell the user the data-import script is ready and ask for the credentials it needs — the source keys (SENDBIRD_APP_ID, SENDBIRD_API_TOKEN) and the CometChat App ID, Region and full-access REST API key. (Asking for these is the ONE question the single-prompt contract allows; everything else still takes the documented default.) As soon as the user provides them, RUN the import yourself from env vars — never write the secrets into a repo file: a --dry-run first (show the users / groups / members / messages counts), then the real import, then report what landed and what failed. Only messages within CometChat's 6-month retention window import — tell the user to reach out to CometChat to import messages older than 6 months. If the user does not share credentials, leave running the script as an action item.Package.swift/*.podspec at the repo root, not just in the app's .xcodeproj — remove the dependency there AND delete any vendored Framework/*.xcframework, or the vendor package is still declared after every call site is gone. Update the app's OWN docs (README, setup/deploy guides, .env.example): setup steps, env var names and screenshots captions that describe Sendbird now describe CometChat. Rename Sendbird-named identifiers (sendbirdUserId → userId).RULES.md → Verification scope).COMETCHAT_MIGRATION.md at the repo root from references/report-template.md, then END your reply with its two lists pasted in full: Removed — not available in CometChat and Your action items. This final list is the deliverable the user asked for; never skip it, even if nothing was removed (say "none").CometChatProvider (and, on web, CometChatErrorBoundary) render wrapper elements exactly where the vendor's provider sat. If they now wrap the app's own shell/header, each wrapper needs a height in the chain, or the chat renders at 0px while the build passes. Follow the core's layout reference, and check the chain from the root element down to the conversation list.a-z 0-9 - _), max 100 characters, and lowercased. Sendbird IDs can contain @, ., spaces or uppercase. Sanitize with one deterministic function and use it everywhere, or users log in to empty inboxes.receiverType: user), not a two-person group.ChannelHandler/GroupChannelHandler/ConnectionHandler needs a CometChat listener that is also removed on unmount/dispose. Missing removals cause duplicate messages.RULES.md → Default-on affordances). Remove the entry point too.GroupChannelCollection/MessageCollection gave offline cache and auto-sync. Port them to the CometChat request builders + listeners and note the behavior change. Don't re-invent a cache.Native builds (Android/iOS/Flutter) have extra REQUIRED steps beyond editing code — bump the sample toolchain to the -core build floors, add the kit dep AND wire initFromSettings in the app entry, port toCometChatId to the client language, edit .pbxproj/.xcscheme as structured build graphs (never a text scrub), and RUN the platform build. A native migration is NOT done until you have followed references/native-build.md in full — open it and work through every step; it is mandatory, not optional.
flutter logs. Fix EVERY runtime error you introduced before declaring done — a Cannot read properties of undefined from a half-migrated reference, or an SDK enum/class read at module-load before the SDK is ready, is a migration bug, not the user's problem (hand off to cometchat-<family>-troubleshooting for symptom → fix). If the app genuinely can't be started here (no dev env / needs a device), SAY SO and give the user the exact run command + what to watch for — never silently skip this.grep -rIilE 'sendbird' . --exclude-dir=node_modules --exclude-dir=.git --exclude-dir=dist --exclude-dir=build --exclude-dir=.claude --exclude-dir=Pods --exclude-dir=.dart_tool --exclude-dir=.gradle | grep -vE 'COMETCHAT_MIGRATION.md|scripts/cometchat-migration' → must print nothing (repeated --exclude-dir= flags on purpose: a {a,b} brace list is rejected by the coding agent's command-permission parser, so the check silently never runs). The ONE allowed mention is a single provenance comment above toCometChatId(); code identifiers, README lines and env names are residue, not "expected". This includes a "migrated from <vendor>" line in the README or any doc you write — a provenance note reads as helpful and is still residue; the migration report is where that belongs, and it is already exempt. Rewrite the app's own README so it describes CometChat, naming the vendor nowhere. The same goes for every other doc the repo ships — CHANGELOG.md, docs/, changelogs/, a vendored SDK's own release notes: if a file is not the migration report, it must not name the vendor. Delete the ones that document the vendor's product rather than your app. Clearing residue out of project.pbxproj / *.xcscheme is a structured edit, never a text scrub — remove the vendor's SPM package reference and its build-phase entries as whole blocks, and keep the project's own product and target structure (see the native block above).scripts/cometchat-migration/migrate.mjs + README.md exist — even for a demo/sample app with no data of its own (the script is a deliverable for the user's real data, not for this checkout; step 8 is never skipped).features.json or the docs. Every UNSUPPORTED item is in the report's Removed list with its files.toCometChatId().git ls-files each file you wrote credentials to).© 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-migrate-from-sendbird of cometchat/cometchat-skills.
Open the folder on GitHubat commit 911b108
Cometchat Migrate From Sendbird 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 Migrate From Sendbird this skillcometchat/cometchat-skills | 129 | — | ~5.2k | Automated safety check: Notes | MIT | |
| Screenmapaleqsio/screenmap | 239 | — | ~7.2k | Automated safety check: Pass | MIT | |
| Fishjamsoftware-mansion-labs/skills | 291 | — | ~928 | Automated safety check: Pass | MIT | |
| Expoericrisco/rsc-harness | 156 | — | ~2.9k | Automated safety check: Notes | MIT | |
| React Nativeericrisco/rsc-harness | 156 | — | ~3k | Automated safety check: Pass | MIT | |
| Olore Rive Latestolorehq/olore | 103 | — | ~465 | Automated safety check: Pass | MIT |
aleqsio/screenmap
Generate a visual navigation map of an Expo / React Native or NativeScript app.
software-mansion-labs/skills
Software Mansion's Fishjam — hosted WebRTC platform for video, audio, and one-to-many livestreaming.
ericrisco/rsc-harness
A skill your agent uses when shipping a React Native app with Expo — EAS Build/Submit/Update, eas.json profiles and channels, config plugins, prebuild/CNG, runtime-version policy, OTA updates that…
ericrisco/rsc-harness
A skill your agent uses when writing the JS/TS inside a React Native or Expo app — screens, Expo Router navigation, lists, Reanimated gestures, platform forks, offline state, native modules — or…
olorehq/olore
Local Rive documentation reference (latest). An agent skill from olorehq/olore.
MaxHan7/frontend-ui-standards-skill
A skill your agent uses when implementing, refactoring, or reviewing frontend UI across SwiftUI, React, React Native, Flutter, web, or mobile apps.
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.
Categories
Migrate an app from Sendbird to CometChat end-to-end in ONE prompt, on any platform in this pack (React, Angular, React Native/Expo, iOS, Android, Flutter). Cometchat Migrate From Sendbird is an agent skill from cometchat/cometchat-skills. Migrate an app from Sendbird to CometChat end-to-end in ONE prompt, on any platform in this pack (React, Angular, React Native/Expo, iOS, Android, Flutter).
Cometchat Migrate From Sendbird fits situations like: tasks that involve Cross-platform mobile apps; tasks that involve Webhooks; tasks that involve Database migrations.
Run `npx skills add cometchat/cometchat-skills --skill cometchat-migrate-from-sendbird -a claude-code`. Or copy the skill folder (skills/cometchat-migrate-from-sendbird in cometchat/cometchat-skills) into .claude/skills/cometchat-migrate-from-sendbird in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cometchat/cometchat-skills --skill cometchat-migrate-from-sendbird -a codex`. Or copy the skill folder (skills/cometchat-migrate-from-sendbird in cometchat/cometchat-skills) into .agents/skills/cometchat-migrate-from-sendbird 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-migrate-from-sendbird -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-migrate-from-sendbird, .gemini/skills/cometchat-migrate-from-sendbird, .github/skills/cometchat-migrate-from-sendbird and .opencode/skills/cometchat-migrate-from-sendbird in your project.
Going by SKILL.md and its folder, Cometchat Migrate From Sendbird needs the command-line tools its instructions call (git and npx) and credentials named SENDBIRD_API_TOKEN. Our summary lists: Node.js. Compatibility (from SKILL.md): FROM Sendbird Chat SDK v3 (`sendbird`) / v4 (`@sendbird/chat`, SendbirdChatSDK, com.sendbird.sdk, sendbird_chat_sdk), Sendbird UIKit (React, React Native, iOS UIKit/SwiftUI, Android Views/Compose, Flutter), Sendbird Calls → TO the CometChat family this pack detects (peers.yaml): React UI Kit v7, Angular v5, React Native v5, iOS v5, Android v6, Flutter v6, plus the headless Chat/Calls SDKs. Node >=18 for the data-migration script..
SKILL.md names 1 domain. In commands or code: cometchat.com; the agent is likely to contact it when it follows the instructions. 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 Migrate From Sendbird is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.2k tokens (SKILL.md is roughly 21k 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 13k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Cometchat Migrate From Sendbird: Screenmap (aleqsio/screenmap, 239 stars), Fishjam (software-mansion-labs/skills, 291 stars), Expo (ericrisco/rsc-harness, 156 stars) and React Native (ericrisco/rsc-harness, 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.