Agent skill

Cometchat Angular V5 Calls

by cometchat in cometchat/cometchat-skills

Add voice and video calling to an Angular CometChat app — install the calls SDK, mount the incoming-call listener at app root, call buttons in the message header, and call logs.

MITAuto-check passedMobile

Install Cometchat Angular V5 Calls

skills CLI
$ npx skills add cometchat/cometchat-skills --skill cometchat-angular-v5-calls -a claude-code

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

GitHub CLI
$ gh skill install cometchat/cometchat-skills cometchat-angular-v5-calls --agent claude-code

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

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

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

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

Facts

Skill name
cometchat-angular-v5-calls
GitHub stars
129
Token cost
~2.9k tokens
SKILL.md length
1,041 words
Files
1
Skills in repo
97
Repo updated
First seen
Licence
MIT

At a glance

Add voice and video calling to an Angular CometChat app — install the calls SDK, mount the incoming-call listener at app root, call buttons in the message header, and call logs.

  • Works in 4 steps: Install the calls SDK (above). → Mount at APP ROOT — not in the chat page. → Add call buttons — the message header… → …
  • Mobile work in your project
  • SKILL.md covers Companion skills (read first), Use this skill when, Prerequisites & install —… and ⚠️ Installing the package is…, plus 9 more sections
  • Calls npm

What it does

Cometchat Angular V5 Calls is an agent skill from cometchat/cometchat-skills. Add voice and video calling to an Angular CometChat app — install the calls SDK, mount the incoming-call listener at app root, call buttons in the message header, and call logs. Triggers: 'add voice calling', 'add video calls', 'enable calling', 'show call history', 'incoming call not ringing'.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: @cometchat/chat-uikit-angular ^5 (5.1.0–5.2.0 verified) + @cometchat/calls-sdk-javascript ^5.0.3; Angular 17-21

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

When your agent uses it

  • Mobile work in your project

Example prompts

  • “add voice calling”
  • “add video calls”
  • “enable calling”
  • “/cometchat-angular-v5-calls”

Requirements

  • Node.js
  • Compatibility (from SKILL.md): @cometchat/chat-uikit-angular ^5 (5.1.0–5.2.0 verified) + @cometchat/calls-sdk-javascript ^5.0.3; Angular 17-21

Workflow steps

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

  1. Install the calls SDK (above).
  2. Mount at APP ROOT — not in the chat page.
  3. Add call buttons — the message header renders them by default.
  4. Optionally add call logs.

What it can do on your machine

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

  • Tool permissions

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

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm

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

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

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

  • Compatibility

    @cometchat/chat-uikit-angular ^5 (5.1.0–5.2.0 verified) + @cometchat/calls-sdk-javascript ^5.0.3; Angular 17-21

    From compatibility in the SKILL.md frontmatter.

Context cost

Cometchat Angular V5 Calls loads about 2.9k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 1,041 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~81
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k

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

Safety

Auto-check passed

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

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

SKILL.md

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

Download SKILL.mdSave it as .claude/skills/cometchat-angular-v5-calls/SKILL.md (or your agent's skills folder).
name
cometchat-angular-v5-calls
description
Add voice and video calling to an Angular CometChat app — install the calls SDK, mount the incoming-call listener at app root, call buttons in the message header, and call logs. Triggers: 'add voice calling', 'add video calls', 'enable calling', 'show call history', 'incoming call not ringing'.
compatibility
@cometchat/chat-uikit-angular ^5 (5.1.0–5.2.0 verified) + @cometchat/calls-sdk-javascript ^5.0.3; Angular 17-21
license
MIT
metadata.author
CometChat
metadata.version
1.0.0
metadata.tags
cometchat angular calls v5 voice video calling webrtc call-logs

Ground truth: calling UI ships INSIDE @cometchat/chat-uikit-angular@5 — there is no separate calls-UI package — but the WebRTC engine is a SEPARATE, NOT-bundled peer: @cometchat/calls-sdk-javascript@^5.0.3 (major 5, distinct from the chat SDK's v4). Every CometChat* symbol below exists in the angular-v5 catalog. Exhaustive inputs/outputs and advanced call surfaces are FETCHED, not baked — {DOCS_BASE}/ui-kit/angular/call-features.md, the per-component pages (/components/cometchat-incoming-call, -call-buttons, -call-logs, -outgoing-call), and /guides/call-log-details; base + paths in cometchat-angular-v5-core/references/docs-map.md. APPEND to the user's app — additive wiring only (RULES.md).

Companion skills (read first)

  • cometchat-angular-v5-core — install, credentials, init→login→render. Assumed.
  • cometchat-angular-v5-placement — where the incoming-call listener mounts.

Use this skill when

Adding voice/video calling, or diagnosing calls that never ring.

Prerequisites & install — calls needs a second package

bash
npm install @cometchat/calls-sdk-javascript@^5

It is an optional peer of the UI Kit (^5.0.3), so it is not installed by default. Without it the call components are inert and CometChatUIKit.isCallingEnabled() returns false.

Calling must also be enabled for the app in the dashboard. Code alone is not enough.

⚠️ Installing the package is NOT what turns calling on

core inits with initFromSettings, and on that path the kit derives calling from the settings object:

ts
// verified in the shipped 5.1.0 bundle
const callingEnabled = !!settings.uiKit?.['callsSDK'];
if (callingEnabled) builder.setCallingEnabled(true);

So you must declare a uiKit.callsSDK block or calling stays off no matter what you installed:

ts
CometChatUIKit.initFromSettings({
  appId, region,
  credentials: { authKey },
  chatSDK: { presenceSubscription: { type: 'ALL_USERS' } },
  uiKit: { callsSDK: {} },          // ← REQUIRED for calling on the initFromSettings path
});

Symptom if you miss it: <cometchat-call-buttons> renders as a zero-size empty element and the message header shows no call buttons. Nothing errors, nothing logs, and the package is installed — so it reads as a layout or CSS bug. CometChatUIKit.isCallingEnabled() returns false; check that first.

The docs' builder path uses .setCallingEnabled(true) on UIKitSettingsBuilder instead. Both are correct for their own init — see cometchat-angular-v5-core/references/lifecycle.md. Do not mix them.

The four things, in order

  1. Install the calls SDK (above).
  2. Mount <cometchat-incoming-call> at APP ROOT — not in the chat page.
  3. Add call buttons — the message header renders them by default.
  4. Optionally add call logs.

Step 2 is the one that goes wrong.

Incoming calls — app root, not the chat route

html
<!-- app.component.html -->
<cometchat-incoming-call
  (callAccepted)="onAccepted($event)"
  (callDeclined)="onDeclined($event)"
  (error)="onError($event)">
</cometchat-incoming-call>
<router-outlet></router-outlet>

Mounted inside the chat page it unmounts the moment the user navigates elsewhere, so calls stop ringing anywhere except that one route. It looks like the calls SDK is broken; it is a placement bug.

Remember CometChatIncomingCallComponent in the root component's imports: [].

Call buttons

<cometchat-message-header> renders voice and video buttons itself — check the running app before adding your own. Suppress with [hideVoiceCallButton]="true" / [hideVideoCallButton]="true".

The default is not hardcoded: the header reads COMETCHAT_GLOBAL_CONFIG and tracks whether you set the input explicitly, so an app-wide config can hide the buttons even though nothing on the component says so. If they are missing, check the global config before concluding the header does not render them — and if they are present, do not add <cometchat-call-buttons> alongside or you get two sets.

Standalone, elsewhere in your UI:

html
<cometchat-call-buttons [user]="activeUser()" [group]="activeGroup()" (error)="onError($event)"></cometchat-call-buttons>

Both call components must be in the consuming component's imports: [] — omitted, they render nothing and never ring. Mount <cometchat-incoming-call> at the app root, not inside a route, or it stops ringing the moment the user navigates away:

ts
import { Component, inject, computed } from '@angular/core';
import { CommonModule } from '@angular/common';
import {
  ChatStateService,
  CometChatCallButtonsComponent,
  CometChatIncomingCallComponent,
  CometChatUIKitCalls,
} from '@cometchat/chat-uikit-angular';

@Component({
  selector: 'app-root',
  standalone: true,
  imports: [CommonModule, CometChatCallButtonsComponent, CometChatIncomingCallComponent],
  template: `
    <cometchat-incoming-call (callAccepted)="onAccepted($event)"></cometchat-incoming-call>
    <cometchat-call-buttons [user]="activeUser()" [group]="activeGroup()"></cometchat-call-buttons>
  `,
})
export class AppRootComponent {
  private readonly chatState = inject(ChatStateService);
  readonly activeUser = computed(() => this.chatState.activeUser() ?? undefined);
  readonly activeGroup = computed(() => this.chatState.activeGroup() ?? undefined);
  // CometChatUIKitCalls is the calls-SDK accessor the kit exposes; it is null until the
  // SDK has loaded, so never touch it during construction.
  readonly calls = CometChatUIKitCalls;
  onAccepted(_call: unknown) { /* route to your ongoing-call screen */ }
}

Ongoing and outgoing

The kit drives these once a call is accepted. Outputs, if you need to react:

ComponentOutputs
<cometchat-incoming-call>callAccepted callDeclined error
<cometchat-outgoing-call>callCanceled error
<cometchat-ongoing-call>callEnded error
<cometchat-call-buttons>error
<cometchat-call-logs>itemClick callButtonClicked
<cometchat-call-bubble>buttonClick

<cometchat-ongoing-call> takes [sessionID] and optionally [callSettingsBuilder] / [isAudioOnly]. Do not build your own call screen — WebRTC state, permissions and teardown are handled.

Show full SKILL.md (501 more words)Show less

Call history

⚠️ <cometchat-call-logs> HARD-CRASHES if it mounts before the Calls SDK has loaded. Its ngOnInit synchronously runs new CometChatUIKitCalls.CallLogRequestBuilder(), but CometChatUIKitCalls is null until the lazily-loaded Calls SDK resolves — so on a fresh initFromSettings app the tab renders an "OOPS! / Retry" error state and logs [CometChatCallLogs] Error: TypeError: Cannot read properties of null (reading 'CallLogRequestBuilder'). Retry does NOT recover it. This is the same "CometChatUIKitCalls is null until the SDK has loaded, so never touch it during construction" trap as the standalone accessor above — it just bites INSIDE the kit's own component. GATE the call-logs surface on the calls-SDK namespace ACTUALLY being populated — not on callingReady alone. Verified live (AUDIT-163): CometChatUIKit.callingReady defaults to a pre-resolved Promise.resolve(), and even after initCalling() runs the lazily-loaded CometChatUIKitCalls namespace can still be null (e.g. the calls chunk never loaded) — so a callingReady-ONLY gate STILL crashes. Await callingReady, THEN confirm CometChatUIKitCalls is non-null before mounting:

ts
// component
import { CometChatUIKit, CometChatUIKitCalls } from '@cometchat/chat-uikit-angular';
readonly callsReady = signal(false);
constructor() {
  CometChatUIKit.callingReady
    .then(() => this.callsReady.set(!!CometChatUIKitCalls))   // namespace must be populated, not just "ready"
    .catch(() => this.callsReady.set(false));
}
html
<!-- Do NOT mount <cometchat-call-logs> unguarded — it NPEs on CometChatUIKitCalls being null. -->
<cometchat-call-logs *ngIf="callsReady()" (itemClick)="openCall($event)"></cometchat-call-logs>
<div *ngIf="!callsReady()">Loading call history…</div>

STOPGAP (remove once the kit component awaits getCometChatCalls() / null-guards CometChatUIKitCalls itself — filed as a UIKit bug; the docs page also omits this prerequisite — DOCS-BACKLOG). isCallingEnabled() is the sync settings check; callingReady + a CometChatUIKitCalls null-check is what actually guards the mount (callingReady alone is NOT enough — proven live).

Also available: CallLogsService for headless querying, and guides/call-log-details for a detail view.

Environment requirements

  • HTTPS or localhost. getUserMedia is blocked on plain HTTP, so calls fail on a LAN IP over http.
  • Microphone/camera permission is a user-gesture prompt — trigger it from a click, never on load.
  • CometChatUIKit.callingReady is a promise that resolves once calling is initialised; isCallingEnabled() is the synchronous check.

Common pitfalls

  1. Listener in the chat page → calls ring only on that route.
  2. uiKit.callsSDK missing from initFromSettings → calling silently off; call buttons render as zero-size empty elements. Installing the package is not enough.
  3. Calls SDK not installed → components inert, no error.
  4. Calling not enabled in the dashboard → code correct, nothing happens.
  5. Plain HTTP → getUserMedia blocked.
  6. Duplicate call buttons → the header already renders them.
  7. Hand-rolled call screen → loses WebRTC teardown; use <cometchat-ongoing-call>.
  8. No zero-height container — the ongoing-call surface needs real dimensions like any other component.

Verify it works

Two browsers, two users, HTTPS or localhost · caller sees outgoing UI, callee's device rings from any route · accepting connects audio/video both ways · ending returns both to chat · the call appears in call logs · no console errors.

Explain what you built (REQUIRED close)

Tell the developer what changed, naming the files: calling — the packages added, that uiKit: { callsSDK: {} } is what switches it on, and where <cometchat-incoming-call> is mounted. Flag anything dev-only as dev-only, and say what you did not touch — this is additive.

Then offer these THREE options as a SELECTABLE choice and WAIT for the pick — never auto-continue (RULES.md §19):

  1. Add another feature → call-log details, or another grow-set feature from features.angular-v5.json. Never offer an auto entry (reactions, mentions, receipts, typing, media) — those are core in v5 and already on.
  2. Customize theming → cometchat-angular-v5-customization.
  3. Test it manually → do nothing further; hand back so the user runs it.

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

Files

Just SKILL.md in skills/cometchat-angular-v5-calls of cometchat/cometchat-skills.

Open the folder on GitHubat commit 911b108

Compare with similar skills

Cometchat Angular V5 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.

Cometchat Angular V5 Calls compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cometchat Angular V5 Calls this skillcometchat/cometchat-skills129—~2.9kAutomated safety check: PassMIT
Ionic FrameworkLeoYeAI/openclaw-master-skills2.2k—~5.5kAutomated safety check: PassMIT
Screenmapaleqsio/screenmap239—~7.2kAutomated safety check: PassMIT
Iphone Duo Capacitormirzaaghazadeh/iphone-duo-skills137—~1.5kAutomated safety check: PassCustom licence
Add Error Trackinggotempsh/temps822—~4.2kAutomated safety check: NotesApache-2.0
Stream Docsadrianhajdin/react-native-lingua150—~6.6kAutomated safety check: PassNone

Similar skills

  • Ionic Framework

    LeoYeAI/openclaw-master-skills

    Comprehensive Ionic Framework expert skill consolidating core concepts, component reference, CLI usage, theming, layout, page lifecycle, framework-specific patterns for Angular/React/Vue…

    2.2k GitHub stars~5.5k tokensUpdated 2 mo ago
    MobileAuto-check passed
  • Screenmap

    aleqsio/screenmap

    Generate a visual navigation map of an Expo / React Native or NativeScript app.

    239 GitHub stars~7.2k tokensUpdated 2 days ago
    MobileAuto-check passed
  • Iphone Duo Capacitor

    mirzaaghazadeh/iphone-duo-skills

    Adapt a Capacitor or Ionic app to iPhone Duo, Apple's first foldable iPhone — why the standard Device Posture and Viewport Segments CSS does not reach a web view, what CSS gives you today, and how…

    137 GitHub stars~1.5k tokensUpdated 6 days ago
    MobileAuto-check passed
  • Add Error Tracking

    gotempsh/temps

    Add Temps error tracking to applications using the Sentry-compatible SDK.

    822 GitHub stars~4.2k tokensUpdated today
    MobileAuto-check: notes
  • Stream Docs

    adrianhajdin/react-native-lingua

    Search live Stream SDK documentation for Chat, Video, Feeds, and Moderation.

    150 GitHub stars~6.6k tokensUpdated 4 mo ago
    MobileAuto-check passed
  • Lunora Realtime

    anolilab/lunora

    Wires Lunora's live data into a client. An agent skill from anolilab/lunora.

    283 GitHub stars~2.4k tokensUpdated today
    MobileAuto-check passed

More from cometchat/cometchat-skills

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

    cometchat/cometchat-skills

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

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

    cometchat/cometchat-skills

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

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

    cometchat/cometchat-skills

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

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

    cometchat/cometchat-skills

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

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

    cometchat/cometchat-skills

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

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

    cometchat/cometchat-skills

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

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

Categories

Questions about Cometchat Angular V5 Calls

What does Cometchat Angular V5 Calls do?

Add voice and video calling to an Angular CometChat app — install the calls SDK, mount the incoming-call listener at app root, call buttons in the message header, and call logs. Cometchat Angular V5 Calls is an agent skill from cometchat/cometchat-skills. Add voice and video calling to an Angular CometChat app — install the calls SDK, mount the incoming-call listener at app root, call buttons in the message header, and call logs.

When should I use Cometchat Angular V5 Calls?

Cometchat Angular V5 Calls fits situations like: mobile work in your project.

How do I install Cometchat Angular V5 Calls in Claude Code?

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

How do I install Cometchat Angular V5 Calls in Codex?

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

Can I use Cometchat Angular V5 Calls in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cometchat/cometchat-skills --skill cometchat-angular-v5-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-angular-v5-calls, .gemini/skills/cometchat-angular-v5-calls, .github/skills/cometchat-angular-v5-calls and .opencode/skills/cometchat-angular-v5-calls in your project.

What does Cometchat Angular V5 Calls need to run?

Going by SKILL.md and its folder, Cometchat Angular V5 Calls needs the command-line tools its instructions call (npm). Our summary lists: Node.js. Compatibility (from SKILL.md): @cometchat/chat-uikit-angular ^5 (5.1.0–5.2.0 verified) + @cometchat/calls-sdk-javascript ^5.0.3; Angular 17-21.

Does Cometchat Angular V5 Calls access the network?

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.

Is Cometchat Angular V5 Calls safe to install?

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

What licence does Cometchat Angular V5 Calls use?

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

How many tokens does Cometchat Angular V5 Calls use?

About 2.9k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Cometchat Angular V5 Calls?

Skills that share tags, products or a category with Cometchat Angular V5 Calls: Ionic Framework (LeoYeAI/openclaw-master-skills, 2.2k stars), Screenmap (aleqsio/screenmap, 239 stars), Iphone Duo Capacitor (mirzaaghazadeh/iphone-duo-skills, 137 stars) and Add Error Tracking (gotempsh/temps, 822 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cometchat Angular V5 Calls?

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.